首页 > 解决方案 > 在serialPort的响应结束后运行一个方法?

问题描述

我正在发送一堆命令并使用 JSSC 库从 serialPort 接收响应。在响应结束时,我得到三个相似的响应,但序列号不同?喜欢

模式每次都相同,但数字会发生变化。最后一条消息 l1~cdo~102~1~ 表示响应结束,我必须运行一个在最后一个响应后打印收据的方法。我怎样才能实现它?

response 是来自串口的响应。无论如何要捕获最后一个响应序列并在前一个响应序列中创建另一个 if 语句并将其比较:

  if((response.startswith("l1~cdo~")){

//capturing the response and extracting the sequence
    String number = response.replaceAll("[^0-9]", "");
    StringBuilder builder = new StringBuilder(number);
    builder.deleteCharAt(0);
    builder.deleteCharAt(builder.length() - 1);
        if(response.startsWith("l1~cdo~"+builder)){
            serialPort.printReceipt();
        }
  }

此时它将运行 printReceipt 3 次。谢谢!

标签: javaserial-portjssc

解决方案


推荐阅读