我正在使用x-modem协议和133字节数据包从serialport读取文件。我正在阅读 在那
1 byte is SOH
2 byte packet number
3 byte nagative of packet number
next 128 bytes data
2 bytes CRC sent from other side.
我必须计算128字节数据的CRC和从另一侧发送的2字节crc,我必须使其成为单字节,并且必须与我计算的crc共同计算。我怎么能在java中这样做?
答案 0 :(得分:5)
尝试使用Jacksum。
答案 1 :(得分:1)
Sun JDK 1.6包含sun.misc.CRC16,但是有可能这不是您正在寻找的CRC16,因为有几种不同的多项式在使用。
答案 2 :(得分:1)
这是我的C代码,移植到Java很简单 - 您可以随意使用它。对word的引用是针对16位无符号值的 - 您应该能够在Java中使用char。
自从我使用16位CRC以来已经太久了所以我不记得是否存在基于种子的变化。我很确定我在X-Modem的C实现中使用了这段代码。
来源发布在tech.dolhub.com。