COM 端口通信中的 CRC 缺失字节

Missing byte in CRC in COM port communication

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

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

例如,预期的 CRC 是 0x11 0x31,但它 returned 0x31 0x10(其中 0x10 已经是 DLE-STX-DATA-DLE-ETX-CRC 的一部分,它试图 return,即使没有我发送 NAK!)。

如何处理 CRC 本身丢失的字节?

如何恢复?

预期行为

实际行为

原来这是无解的。即使是官方的 Fujitsu 实用程序也无法处理这种情况。即使进行了处理,COM 端口也变得不可用,并且需要重新启动计算机。您只能从这个错误中优雅地失败。