【发布时间】:2012-09-10 10:09:33
【问题描述】:
我用 Java 编写了一个小程序,它从串行端口读取信息(一些文本消息和一些二进制数据,混合),然后通过 TCP 套接字发送。
起初我尝试将数据放入缓冲区,并在“/n”到达时发送所有内容,但二进制数据不能那样工作。
我的第二个想法是一直按字节发送数据。但是它变得太慢了,我想我在发送数据时会丢失数据,即使我使用了线程。
下一个想法是当我存储达到 100 个字节时发送数据,但这是一个肮脏的修复。
我的串行数据来自 GPS 接收器,这些设备通常每秒发送许多句数据(文本和二进制)(或可配置为 10、50、100Hz,具体取决于型号)。无论如何,接收数据存在时间间隔,而没有接收到数据的时间间隔则相当大。我想摆脱我的数据的最佳方法是检测该间隙并发送所有存储的数据,然后在间隙结束时新数据到达之前发送。
我怎样才能检测到这种事件?
编辑:我使用 RXTX 包来摆脱串行端口,并且我正在使用 Windows 7 64 位
【问题讨论】:
-
你用什么包来访问串口?在哪个平台上?
-
@AlexeiKaigorodov 刚刚使用该信息进行了编辑
标签: java serial-port byte