介绍如何把MDB-RS232上报的纸币器数据转为实际的纸币面值

我们在刚接触自动售货机MDB协议的时候,会对于收到的投币数据感到很困惑。例如,我们使用威佛的MDB-RS232测试纸币器的时候,从PC端收到数据:30 81或30 81 09    到底货币的值是多少呢。后面的参数又是什么意义,为什么有时候30后面只有一个数据,有时候是两个,甚至还可能是三个,四个。。。。

30为设备ID:30说明数据来自纸币器,然后如果还有数据就是纸币器的状态数据,一共可以最多16个字节。所以就可能有时候只有一个货币数据,有时候有一个状态数据,有时候两个等等 (具体我们请参阅MDB协议V4.3第95页)

第一字节数据81(16进制数据),转换为二进制数据方便对比:1000 0001

那么81的意思是:有一张纸币被接收压仓了(bill Stacked),纸币类型是01

我们如何才能知道这个纸币的确切面值呢?

  1. 主机刚上电,都会通过SETPUP命令读取配置,纸币器是31指令,

例如回复数据为(不同的纸币器会有不同的配置数据):

01 11 56 00 64 02 00 C8 00 0 FF 01 05 0 a 14 00 00 00 00 000 00 00 00 0 00 00 00 C8

我们需要对照MDB协议31指令回复的配置参数:

Z4 Z5(换算比例系数)=0064  这个值是HEX数值,十进制就是100

Z6(小数移位数)=02               算出来的值需要小数点左移2位

Z12-Z27(纸币类型值)=01 05 0A 14 00 00 00 00 000 00 00 00

2.计算面值

我们的纸币类型是01,对应的纸币类型的值是05

然后计算:05*100/100(小数点移两位相当于除100)=5

因此我们收到的货币面值就是 5元。

以上就是纸币面值的转换与理解。 如果理解硬币器的数据,其实很类似,会在后面进行讲解

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值