我正在使用JSSC,一个用于Java的串行库,它内部包含一个定期检索端口状态的线程(使用FIONREAD,TIOCOUTQ和TIOCGICOUNT ioctls)并在满足条件时调用自定义方法(例如,当有输入队列中至少有一个字节。)
即使连接的串行端口连续发送数据(w / 115200 bps),FIONREAD ioctl(用于返回可用于读取的字节数)在大多数时间返回值为零,然后跳转到这样的值如908或1020。
奇怪的是,写入()串口似乎“修复”了这个问题,因为该值似乎反映了之后输入队列的真实大小。
有什么建议可能是这种行为的来源? (我知道在编写串行通信时有很多标志和选项,其中大部分是我不熟悉的。相关的JNI JSSC代码是here。)
由于