我正在尝试对工程师进行反向BLE写入以校验和结尾的值(crc8?)
例如:
[02FD 1000 2322 4978 0140 00AF 6000 0000 0000 F9
(校验和F9
)] >>
[02FD 1000 D82E 4F76 0189 00AF FA14 0000 0000 E4
(校验和E4
)] >>
有人知道如何使用JS生成此校验和吗?
[我正在尝试使工程师BLE写入以校验和结尾的值(crc8?),例如:02FD 1000 2322 4978 0140 00AF 6000 0000 0000 F9(校验和F9)02FD 1000 D82E 4F76 0189 00AF FA14 0000 ...
JavaScript中的校验和计算在默认情况下数字为双浮点数的语言中进行整数位数学运算可能会非常困难。您的代码必须确保数字保留为整数,甚至可能保持无符号且在特定的位范围(16位,32位)内。这些额外的步骤可能会使事情复杂化。
技巧通过将AND运算符与位掩码一起使用以确保该范围内的所有位,可以使用一些技巧来确保数字是x位整数。例如确保可以通过数字&= 0xffff;完成16位数字。此外,我使用num | 0或num >>> 0,以确保它是一个32位整数(带符号或无符号)。这是必需的,以防止产生负面结果,当以十六进制显示校验和时,这看起来特别奇怪。