使用JSSC从串口读取。我如何使用inputstream

时间:2018-01-04 23:52:37

标签: java compiler-errors serial-port jssc

我正在使用JSSC与serialport进行通信。 数据一次只有1个字节。新字符串由回车/换行符启动。

字符串长度是可变的。 (最多82个字符)

每个字符串以#开头。

由于数据一次只有1个字节,我必须组装字符串。我尝试使用RXTX示例中的bufferedreader和inputstreamreader,但我没有成功。

所以我的问题是,如何逐字节组装字符串并刷新字符串?

我需要它一次是1个字符串,因为它将被解析。

我试过google搜索各种东西: " jssc inputreader bufferedreader示例" " jssc inputreader serialPort.readString()" 等。

//Array list declaration 
static List<String> datat = new ArrayList<String>();

...
...
      public void serialEvent(SerialPortEvent event) {


                    try {
                        String getdata =  serialPort.readString(event.getEventValue());
                        //System.out.print(getdata);
                        String[] parts= getdata.split("\\r");

                          if(!datat.isEmpty()){
                              datat.set(datat.size() - 1, datat.get(datat.size() - 1) + parts[0]);
                         }
                          for (int i=1; i<parts.length; i++) {
                              if (parts[i].contains("\n")) {
                            if(!datat.isEmpty()) {
                                datat.clear();
                                System.out.println("data cleared");
                            }


                      } else if (!parts[i].equals("\\r") | !parts[i].equals("\\n")) {
                          datat.add(parts[i]); 
                          System.out.println(datat);
                      }
                      }








                    }


                    catch (SerialPortException ex) {                  
                    }    
        }
    }

1 个答案:

答案 0 :(得分:-1)

  1. 宣布一个arraylist
  2. 从串口接收字节。如果接收到的字节不是新行添加到arraylist,否则将arraylist转换为字节数组 这些步骤需要在while循环中完成