很多客户买机器前最关心的一句话是"能不能接到我们现在的系统上"。答案是能,而且工作量比想象小。下面把对接拆成三层,方便评估的人知道要动哪里。
第一层:物理连接

一路串口,参数固定 115200、8 位数据位、无校验、1 位停止位。没有网络交互,不需要开端口、不用配 IP,这一层对现场几乎没有要求。接上之后先跑一次串口检测指令,确认链路通,再往下做。
第二层:指令模型
机器是被动方,全部动作都是"上位机发一条、机器回一条"。帧结构固定:一个包头、一个命令字、后面跟数据。不需要处理异步推送、不需要维护心跳,写起来就是一段请求响应代码。
命令字一共就那么几类:领取手环、归还手环、回收口读写卡、常开和关闭回收口、自检、撤消取环、设置滚筒有无手环。业务侧真正天天用的是前三条。
第三层:业务上最关心的读写卡
领取手环支持三种方式,按现场系统的情况挑一种就行:只按卡号取、按卡号加扇区取、按卡号取并写入扇区数据。返回内容里带卡号和 48 字节的数据块。
这里有两个细节要提前定:扇区号用十六进制表示,范围 1 到 15;密钥是 6 个字节,默认全 F。如果现场用的是自己的一套密钥,对接阶段就要传进来,别等上线后改。
两种最容易踩的坑
第一个,把"忙碌"当失败处理。机器返回的状态里,忙碌的意思是"上一条还在做,等三秒重发一次",不是出错。如果按失败弹提示,客人会看到"操作失败"但其实三秒后就好了。正确的做法是把成功、失败、忙碌、无手环四种状态分开处理,无手环走补环提示,忙碌走延时重试。
第二个,归还只等"开口"的回包。归还指令是让机器打开回收口,真正的成功回包要等传感器检测到环掉落、口关闭之后才返回。如果代码里把"口开了"就当归还成功,客人没投进去的那次也会被记成已还,账就对不上。
建议的调试顺序

串口检测、开机自检、取一只环、还一只环,这四步跑通再接业务逻辑。顺序反了,出了问题分不清是链路、是机器还是业务代码。
总的来说,对接的工作量集中在状态码处理和写卡参数这两块,其余都是常规的事。评估工期时按这个重点估,不会估偏。
