最近在做一个项目,是对接一卡通设备的。我一开始只拿到设备和3个文档开局。不知道从哪下手。一步一步踩坑过来。踩了很多没有必要的坑,写出来给有用的人吧。
读卡器怎么用?
有个读卡器,一开始什么软件也不提供。我都不知道是干嘛用的。后来问客服才知道有一个测试软件。我真是服了,不能把用到的软件直接打包一次性发来吗?最好配个软件使用手册。
然后我就得到了这个软件。
得到这个软件以后发现也无法读卡,我又跑去问客服。才发现还要安装一下驱动才行。
我真的服了,一步一个坑,就不能一次性把需要的东西全给吗?
安装完驱动,读卡器总算可以使用了。
安装好打开软件后,切到 通讯模块测试,通讯方式设置中 串口号选:COM5
左下方的状态栏中可以看到,读卡成功:执行所用时间:2958.6085
说明成功了!
写卡
先读卡,然后在读出的数据基础上进行修改。
设置参数:
工作模式设置成tcp客户端 端口5000 目标地址就是服务器地址 右边就是给电控机设置的ip参数。
设置好拿去电控机上刷一下就好。
目标地址是否可以使用域名?
实测:长域名无法正常写入,nlic.wisxxx.cool只能写入nlic.wisdxxx.
所以暂时只能使用IP了
校验设置是否成功
千万不要以为设置完成后就一定会成功的。这是我踩坑回来的体会。
- 设置的端口和最终的端口可能不一样
- 设备的本机IP与最终的IP也可能不一样
校验方法,
- 设备插入网络连上网。
- 软件上点搜索,右侧会出来设备列表,找到我们的设备。MAC地址和设备名称一般不会变。
然后在点读取,在点右侧列表中的设备。
此时界面上就会显示真实的设备参数信息了。
还有一个更方便的软件TCP配置程序.exe,这个软件中显示的信息更全面。
怎么判断机器已经联网
一开始我都不知道机器插入网线以后到底有没有成功连接。
我后来用愚蠢的办法,到路由器的管理页面查看所有已经连接的设备。通过排除法找到这个水控机设备。为了实现这事情,我甚至把公司的路由器重置了。
这种蠢方法用的一段时间我才发现其实厂家有现成的软件可以查询。
厂家软件查询设备在线情况
提到这个我真的有点不开心,厂家有现成的软件,一开始也不提供。可能内行人会直接向厂家要吧,我第1次做对接,就不知道有这个软件。这个软件还是后来我在客户群里问其他事情,有个客服给我分享了一个网盘,在网盘中无意中发现的。
通过界面上判断
搞错通信协议
拿到设备好,收到厂家提供的3个开发文档。里面有http的还有一个没写明什么协议的。身为web开发者的我,误认为是http协议的,浪费了两天时间。
关键是我在开发过程中有在客服群里问,竟然没人提醒我。
后来得知我看错文档了,我又开始研究《实时消费管理系统协议》文档,这个文档从到到尾没有说采用什么协议通信的。
我又受配置软件影响,错误的认为是UDP协议。又使用UDP的方式搞。
http 和 udp的方式都收不到数据,我一开始仅是怀疑是我的网络没接对。到后来群里又来了个技术明确说是TCP协议我才明白。
唉!这个坑踩的莫名其妙的。
正确协议 TCP ,也就是Java中的Socket。
警告!!!!与电表通讯异常
这是一个大坑啊。现象如图所示:
厂家的回复是:
计量电表的485线接反了 换一下就好了
我们的电工来回反复接,都会报这个错。我们在 工地部署了好多套都是这个问题,就算接错也不能全错吧!
我们一开始怀疑可能是接触不良或者正负极接错了,回来找自己的原因。浪费了好久。
直到最后才无意中发现坑的存在!!!
线接成功后,必须要重启设备才生效!!!
线接成功后,必须要重启设备才生效!!!
线接成功后,必须要重启设备才生效!!!
我真是服了,我们在工地 12V电一直是通的,没想到这一点。看屏幕上的提示,一直以为是我们接错了,其实我们一直都是接的正确的,只是没有把设备断电重启。 然而这一点厂家从头到尾没提过。