33 lines
669 B
Plaintext
33 lines
669 B
Plaintext
def check_value(data: bytes) -> int:
|
|
# 初始化crc为0xFFFF
|
|
crc = 0xFFFF
|
|
|
|
length = len(data)
|
|
if length % 2 != 0:
|
|
return 0
|
|
|
|
for i in range(0, length, 2):
|
|
val = data[i] * 256 + data[i + 1]
|
|
crc = crc ^ val
|
|
|
|
# 返回最终的crc值
|
|
return crc
|
|
|
|
def check(data: bytes) -> int:
|
|
if len(data) < 2:
|
|
return False
|
|
# 初始化crc为0xFFFF
|
|
crc = 0xFFFF
|
|
|
|
length = len(data)
|
|
if length % 2 != 0:
|
|
return 0
|
|
|
|
for i in range(0, length, 2):
|
|
val = data[i] * 256 + data[i + 1]
|
|
crc = crc ^ val
|
|
|
|
# 返回最终的crc值
|
|
if crc == 0 :
|
|
return True
|
|
return False |