我正在使用带有外部设备的名为 jSSC(java-simple-serial-connector)的库在 Java 中编写串行端口通信应用程序。
发送消息并等待其返回后,如果在一定时间(2 秒)后没有读取,我会超时,将中止读取。如果发生这种情况,端口将关闭并重新打开以进行进一步的消息交换。
我注意到的是,如果由于某种原因发生超时,并且端口被关闭并重新打开,则会干扰从端口读取的进一步消息(即无法解码读取的消息)。看起来好像来自设备的先前消息仍然在线并继续进入下一个读取操作。
我对串口不是很熟悉,所以我不完全确定是否是这种情况。我认为(但很可能是错误的)在我关闭我这边的连接后(如在 TCP/IP 通信中),另一部分发送的先前消息将被丢弃。
关于关闭/重新打开后串行端口的行为如何,任何人都可以对这个主题有所了解吗?即使在我关闭应用程序中的连接后,另一部分(设备)是否可以继续发送旧消息?