我写了一个Java程序,它从串口读取信息(一些文本消息和一些二进制数据,混合),然后通过TCP套接字发送。重定向串口输出到插座
起初我试图将数据放入缓冲区,并在'/ n'到达时发送所有内容,但二进制数据不能以这种方式工作。
我的第二个想法是一直一字节地发送数据。但它变得太慢了,我想我在发送数据时会丢失数据,甚至认为我使用了线程。
下一个想法是当我存储100个字节时发送数据,但它是一个肮脏的修复。我的串行数据来自GPS接收器,这些设备通常每秒钟发送很多句子(文本和二进制数据)(或可配置为10,50,100Hz,取决于型号)。无论如何,收到数据的时间是空白的,而且在没有收到任何数据时,时间差距会更大。我想最奇妙的方式来摆脱我的数据将检测到的差距,并发送所有存储的数据,然后在新的数据到达时,间隙结束。
我怎么能检测到这种事件?
编辑:我使用RXTX包摆脱串口,和我工作过的Windows 7 64位
你用什么软件包访问串口?在哪个平台上? –
@AlexeiKaigorodov刚刚用该信息编辑 –