Java对接地磅串口工作日志

参考Demo

SerialPortDemo

串口开发辅助工具

  • Virtual Serial Port Driver虚拟串口vspd
  • 深蓝串口调试工具

三方包环境配置

RXTXcomm 官网链接

下载好以后 , 按照Install.txt 中的说明配置本地环境即可, 无论是开发和最终部署 , 都要有这些环境

Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext
Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin
Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin

需要注意的是, 环境分64和32位系统

地磅相关

串口冲突

关键词:

  • 串口 (COM1COM4COM7 …)
  • 波特率 (9600)

对接的地磅系统默认传输在COM1 串口 , 但是客户电脑上原来已经运行了一个对接地磅的程序, 所以COM1串口被占用了 . 导致我们新开发的程序无法继续使用这个串口 .

解决方案

买分接卡, 分出来了其他串口 , 比如COM1COM4 , 使用这些串口即可 .

读取数据时有时无,更新太慢

这个慢, 只是界面上一直没有回显地磅读取到的数据 .
原因是地磅传输数据慢 , 而电脑读取处理速度快 , 导致获取到的一直是不完整的数据, 读取字节流经常报读取异常而被迫关流 , 这就导致一直没有成型的数据获取到 .

解决方案

在地磅回传的时候 , 歇一会再从串口读取数据即可 , 比如sleep个100毫秒

	// 添加串口监听
	SerialPortManager.addListener(mSerialport, new SerialPortManager.DataAvailableListener() {
	
	      @Override
	      public void dataAvailable() {
	          byte[] data = null;
	          try {
	          	  //☆☆☆睡一会☆☆☆
	              Thread.sleep(100);
	              if (mSerialport == null) {
	                  ShowUtils.errorMessage("串口对象为空,监听失败!");
	              } else {
	                  // 读取串口数据
	                  data = SerialPortManager.readFromPort(mSerialport);
	                 ......
	              }
	          } catch (Exception e) {
	              ShowUtils.errorMessage(e.toString());
	          }
	      }
	  });

参考链接

https://www.jianshu.com/p/b26cf7a8bc7d

加载本地dll文件

网上有各种打进war包和jar包的方案 , 自己尝试的最佳方案: 放在JDKbin安装目录下 , 然后在代码中通过环境变量JAVA_HOME加载即可

	public static String strFilePath  = System.getenv("JAVA_HOME") + "\\jre\\bin\\WTY.dll";

假的Windows64系统

客户电脑显示是64位系统 , 但是安装64位的包却一直运行失败 . 最后换成32位的竟然正常了 , 一脸懵…

启动jar时隐藏dos命令行窗口

传统启动方式

java -jar test.jar

隐藏dos命令行窗口启动方式

start javaw -jar test.jar
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crocutax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值