java - 在serialPort的响应结束后运行一个方法?
问题描述
我正在发送一堆命令并使用 JSSC 库从 serialPort 接收响应。在响应结束时,我得到三个相似的响应,但序列号不同?喜欢
- l1~cdo~100~1~
- l1~cdo~101~1~
- l1~cdo~102~1~
模式每次都相同,但数字会发生变化。最后一条消息 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 次。谢谢!
解决方案
推荐阅读
- azure-databricks - 将数据从数据块写入 Azure DW(突触)时出现问题
- html - VBA 单击复选框
- sql - 子查询每行返回一个以上的值
- r - 合并数据帧的行并执行两列的加权和
- laravel - 更改用于呈现 ResourceCollection 中每个项目的资源
- android-studio - webView 在其他片段中持续存在
- python - 如何从python中已经打开的网页中提取css数据
- angular - 离子错误地理定位离子未捕获(承诺):TypeError:Object(...)不是函数TypeError:Object(...)不是函数
- spring - 在spring数据中保存父级时如何引用子级ID
- json - 将静态 JSON 文件用于前端数据有哪些陷阱?