File tree Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -46,18 +46,23 @@ class CRC:
46
46
def __init__ (self , file ):
47
47
self .result = 0xFFFF
48
48
self .file = file
49
+
50
+ def crc_update (crc , data ):
51
+ crc = crc & 0xFFFF
52
+ data = data & 0xFF
53
+ data = data ^ (crc & 0xFF )
54
+ tmp = (data << 4 ) & 0xFF
55
+ data = data ^ tmp
56
+ hi8 = (crc >> 8 ) & 0xFF
57
+ return (((data << 8 ) | hi8 ) ^ (data >> 4 ) ^ (data << 3 )) & 0xFFFF
49
58
50
59
def write (self , data ):
51
60
while len (data ) > 0 :
52
61
if not self .file is None :
53
62
self .file .write (data [0 ])
54
- tmp = data
55
- tmp = chr (ord (tmp [0 ]) ^ (self .result & 0xFF ))
56
- tmp = chr (ord (tmp [0 ]) ^ ((ord (tmp [0 ]) << 4 ) & 0xFF ))
57
- self .result = (((ord (tmp [0 ]) << 8 ) & 0xFFFF ) | (self .result >> 8 )) ^ ((ord (tmp [0 ]) >> 4 ) & 0xFF ) ^ ((ord (tmp [0 ]) << 3 ) & 0xFFFF )
63
+ self .result = self .crc_update (self .result , ord (data [0 ]))
58
64
data = data [1 :]
59
65
60
-
61
66
def write_crc (self ):
62
67
#print hex(self.result)
63
68
stdout .write (chr (self .result >> 8 ))
You can’t perform that action at this time.
0 commit comments