我想在tcl脚本中计算此帧的CRC:
00000A00080000000A00090000004500002E0000000040117AC00000000000000000003F003F001AB6EB000102030405060708090A0B0C0D0E0F1011
预期的CRC为0x1652255A。我尝试了以下(找到here):
% set string \x00\x00\x0A\x00\x08\x00\x00\x00\x0A\x00\x09\x00\x00\x00\x45\x00\x00\x2E\x00\x00\x00\x00\x40\x11\x7A\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3F\x00\x3F\x00\x1A\xB6\xEB\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\
x0D\x0E\x0F\x10\x11
% package require crc32
1.3
% crc::crc32 -format %X $string
690CE0EE ;# not good
% set string 00000A00080000000A00090000004500002E0000000040117AC00000000000000000003F003F001AB6EB000102030405060708090A0B0C0D0E0F1011
% set bin [binary format H* $string]
% crc::crc32 -format %X $bin
690CE0EE ;# same than previous one
我不明白这个过程,我不确定它是否正常工作,因为结果总是一样的:
% crc::crc32 -format %X foo
690CE0EE
% crc::crc32 -format %X somethingdifferent
690CE0EE
如果我继续this online tool,如果找到预期的结果......
问题是来自我还是来自包裹?
答案 0 :(得分:1)
我没看到你所看到的。
% set string \x00\x00\x0A\x00\x08\x00\x00\x00\x0A\x00\x09\x00\x00\x00\x45\x00\x00\x2E\x00\x00\x00\x00\x40\x11\x7A\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3F\x00\x3F\x00\x1A\xB6\xEB\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11
E.@zÀ??¶ë
% package require crc32
1.3.1
% crc::crc32 -format %X $string
1652255A