RXTX读取(byte [] buf,int off,int len)返回小于len个字节

时间:2016-11-30 16:22:53

标签: java serial-port rxtx

我使用RXTX库并成功打开串口(" COM1")并设置接收超时:

commport.enableReceiveTimeout(2000) 
in = commport.getInputStream();

当我致电以下时间时:

byte[] buf = {0, 0, 0, 0};
int rd = in.read(buf, 0, 4);

即使并非所有4个字节都被接收,read()也会返回。

  

它是read(buf,off,len)函数的正确行为吗? (官方javacomm API文档上没有太多关于它的内容)

在我的预期"中,read(buf,off,buf)应该等到读取len个字符或者在超时条件下引发异常。

  

是否有一种干净的方法来实现"读取len字节或在超时时引发异常"?我一次可以读取1个字节(int read())和"手动"使用getTickCount()检查超时条件;但它似乎不是一个很好的解决方案......

0 个答案:

没有答案