javax.comm这个包。  我用了事件监听机制来接受串口的数据。  可是我发送一个命令过去,返回的数据,要分好几次响应呢?
   
   详细:我发送一个命令,应该返回26位。
   
    可是分四次监听返回。第一到三次各返回8个
    最后一次返回2个
    
   
   
    怎么弄,让它一次监听全部返回啊!    我查了接受缓存区。默认的是4096  。方法是serialPort.getInputBufferSize();   请高手指点,在线等待|!

解决方案 »

  1.   

    分次接收嘛static int size = 26;
    static int total = 0;
    XXX receive()
    {
        int nRet = receiveXXXXXXXXXXXXXXX(...);
        total += nRet;
        if (total == 26)
        { 
            return buffer..;
        }
    }
      

  2.   

    有比较成熟的串口操作的开源项目-rxtx,为什么还去自己写
      

  3.   

    先放一个流里面  然后按字节处理public InputStream getInputStreamFromPort(String portName) {
            SerialPort sPort = sPortMap.get(portName);
            InputStream is = null;
            try {
                is = sPort.getInputStream();
            } catch (IOException e1) {
            }
            return is;
        }sPortMap 是一个Map 存放你所有已经打开的port然后你有了 InputStream 就可以开始收字节了public void analyseReceiveMsg() {
         InputStream is = sm.getInputStreamFromPort(port);
          byte[] data = null;
           //下面就应该是analyse了
    }