COM端口通信中CRC中缺少字节



我正在通过COM端口与分配器进行通信。

它发送DLE-STX-DATA-DLE-ETX-CRC.如果 2 字节 CRC 不同,我会用NAK回应,否则用ACK回应。目前为止,一切都好。但是,如果缺少 2 字节 CRC 中的字节怎么办。那我该怎么办?它还包含两个字节。

例如,预期的 CRC0x11 0x31,但它返回0x31 0x10(即使没有我发送NAK,它也0x10已经是它尝试返回DLE-STX-DATA-DLE-ETX-CRC的一部分!

对于CRC本身缺少字节,我该怎么办?

如何恢复?

预期行为

  • 设备:DLE-STX-DATA-DLE-ETX-CRC1-CRC2
  • 结直肠癌不匹配
  • 我:NAK
  • 设备:DLE-STX-DATA-DLE-ETX-CRC1-CRC2

实际行为

  • 设备:DLE-STX-DATA-DLE-ETX-(missing byte)-CRC2-DLE
  • 结直肠癌不匹配
  • 我:NAK
  • 设备:STX-DATA-DLE-ETX-CRC1-CRC2

事实证明这是无法解决的。即使是富士通官方实用程序也无法处理这种情况。即使处理了COM端口也变得不可用,并且需要重新启动计算机。您只能因此错误而正常失败。

最新更新