-1

我正在使用 JSSC 与串行端口进行通信。数据一次输入 1 个字节。新字符串由回车/换行开始。

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

每个字符串都以 # 开头。

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

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

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

我试过谷歌搜索各种东西:“jssc inputreader bufferedreader example”“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) {                  
                    }    
        }
    }
4

1 回答 1

-1
  1. 声明一个数组列表
  2. 从串口接收字节。如果收到的字节不是新行添加到arraylist,否则将arraylist转换为字节数组这些步骤需要在while循环中完成
于 2018-01-08T09:25:06.187 回答