javascript - Python CRC for cashcode driver (From JS to Python) -


i try re-write ccnet driver cashcode, node python. but, realy can`t run crc generator.

you can find "working" code on github repo

here js function:

function getcrc16(bufdata) {     var polynomial = 0x08408;     var sizedata = bufdata.length;     var crc, i, j;     crc = 0;     (i = 0; < sizedata; i++) {         crc ^= bufdata[i];         (j = 0; j < 8; j++) {             if (crc & 0x0001) {                 crc >>= 1;                 crc ^= polynomial;             } else crc >>= 1;         }     }      var buf = new buffer(2);     buf.writeuint16be(crc, 0);     crc = buf;      return array.prototype.reverse.call(crc); } 

i try crcmod , it`s not predefined function, , when try set polynominal, error

here sometime working code:

@staticmethod     def getcrc16(data):         crc = 0         in range(0, len(data), 2):             crc ^= int(str(data[i:(i+2)]), 16)             j in range(8):                 if (crc & 0x0001):                     crc >>= 1                     crc ^= 0x8408                 else:                     crc >>= 1         crc = format(crc, '02x')         return crc[2:4] + crc[0:2] 

and

crc ^= int(str(data[i:(i+2)]), 16) valueerror: invalid literal int() base 16: '\x02\x03' 

help me function. (input binary/integers or hex-strings)

upd: : works bytearray.fromhex(data) . thanks)

@staticmethod  def getcrc16(data):     data = bytearray.fromhex(data)     crc = 0     bit in data:         crc ^= bit         j in range(0, 8):             if (crc & 0x0001):                 crc >>= 1                 crc ^= 0x8408             else:                 crc >>= 1     crc = format(crc, '02x')     return crc[2:4] + crc[0:2] 

you need

my_int = struct.unpack("h",data[i:i+2]) # my_int = 770 ? 

you need truncate result anding 0xffff (i think) (since python ints keep going forever)


Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

Nuget pack csproj using nuspec -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -