Appearance
M505D 通讯协议
版本
版本修订
| 2025-11-1 | v1.0 | 参考M505C重新制定 |
|---|---|---|
| 20251220 | V1.1 | 增加硬币credit \可找零数量 changeableNum |
| 20260513 | v1.2 | 增加 vendreuest 货道, 增加cashsale, 增加年龄识别 |
Mdb纸币器**(子设备号0x01)**
用于通过MDB纸币器接收纸币, 该MDB纸币器应当地址为0x30。VMC应该定期下发指令给网关。网关收到通讯消息超过20秒的,将自动禁止收币。
Poll (功能码=0x 01)
说 明:该指令用于查询纸币器的状态,
请求数据:无。
响应数据:
| 长度(字节) | 序号 | 助记词 | 说明 |
|---|---|---|---|
| 1 | Z1 | Device_Online | 0=离线, 1=在线。网关开机后,默认纸币器为离线状态。在网关发送Reset指令给纸币器,在收到JustReset响应后,认为纸币器上线成功。 |
| 1 | Z2 | Enabled | 纸币器当前是否允许收币。0=禁用,1=启用投币。该值通过MDB协议从纸币中获取。 |
| 2 | Z3-Z4 | Enabled bills | b0-b15每一位表示是否允许接收对应面额的纸币,0表示禁止,1表示允许。 |
| 2 | Z5-Z6 | Escrowed Bills | b0-b15每一位表示是否允许暂存对应面额的纸币,0表示禁止,1表示允许。 |
| 2 | Z7-Z8 | Recyclable Bills | b0-b15每一位表示是否允许对应面额的纸币进入循环找零器,0表示禁止,1表示允许。 |
| 2 | Z9-Z10 | Country | 纸币国别, 参见MDB文档或ISO4217, 例如:CNY=156, USD=840, |
| 4 | Z11-Z14 | IncomeNum | 从开机或上次IncomeAck指令之后收到的金额。(单位:分) |
| 4 | Z15-Z18 | EscrowNum | 暂存中的纸币金额(单位 :分) |
| 1 | Z19 | Change_Status | 0表示没有在找零,1表示在找零, 2表示已完成找零(正常完毕,超超时完毕,故障完毕) |
| 4 | Z20-Z23 | Change_Num_Request | 本次请求找零金额 单位分 |
| 4 | Z24-Z27 | Change_Num_Left | 本次未找金额 |
| 1 | Z28 | Error Code | 故障代码,0表示没有故障,其他数据表示有故障。 |
14 01 01 00 55 84
14 01 01 1C 01 00 00 00 00 00 FF FF 17 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 7E
投入1000盾后
14 01 01 00 55 84
14 01 01 1C 01 01 FF FF 00 00 FF FF 17 04 00 01 86 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CA F0
Setup(功能码=0x02)
说 明:通过该指令开启或关闭收币功能。当Acceptable Bills=0时,表示不接收任何纸币,即关闭接收功能。
请求数据:
| 长度(字节) | 数据名称 | 数据范围 | 单位 | 说明 |
|---|---|---|---|---|
| 2 | Acceptable Bills | / | / | 指示允许接收的纸币种类,b0-b15中每一位对应一种纸币,0表示禁止,1表示允许。开机时默认值为0x00。 |
| 2 | Escrowable Bills | / | / | 指示允许暂存的纸币种类,b0-b15中每一位对应一种纸币。0表示禁止,1表示允许。开机时默认值为0x00。 |
| 2 | Recyclable Bills | / | / | 指示允许循环找零的纸币种类,b0-b15中每一位对应一种纸币。0表示禁止,1表示允许。开机时默认值为0x00。 |
响应数据:
| 长度(字节) | 数据名称 | 数据范围 | 单位 | 说明 |
|---|---|---|---|---|
| 1 | Result | / | / | 1表示成功执行,0表示执行失败。 |
14 01 02 06 FF FF 00 00 00 00 DA 15
14 01 02 01 01 74 6F
IncomeAck (功能码=0x03)
是否增加自动Ack功能?
说 明:该指令用于通知MdbGateway已确认接收到关于收币事件了。当Mdb gateway收到该指令后,如果下行参数与poll参数相同时 将清除Income Number, VMC再次发送Poll指令时,其 Income Number将变成0。
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | IncomeNum | 等于从Poll指令中收到的IncomeNum。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
投入1000盾,后发送的确认指令
14 01 03 04 00 01 86 A0 92 1F
14 01 03 01 01 25 AF
Change(功能码=0x04)
说 明:该指令用于通知MdbGateway进行纸币找零。在该指令执行前成功后,应不断调用Poll指令,监控ChangeStatus的值,一直到ChangeStatus变成2。此时的ChangedNum即为最终找零的数量。整个找零过程所延续的时长是不确定的。
执行条件: 找零状态为0(空闲)。
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | ChangeNum | 需要找零的金额,该值必须和某种纸的面额相一致。该指令每次最多找一张该面额的纸币。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。2=正在找零,拒绝执行。 |
ChangeAck(0x05)
找零状态为 找零完毕时,才有效。
执行成功的标志: #1 找零状态变为 0 (空闲) ; #2 找零请求数量 变为0 . 剩余待找数量=0
Escrow(功能码=0x06)
说 明:该指令用于通知MdbGateway如何处理暂存的纸币。在成功执行该指令后,可通过检查poll指令的IncomeNum来在确认钱是否已正确进入钱箱。
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | escrow | 0=将纸币退回给消费者,1=将纸币收入钱箱(通过POLL指令检查是否成功) |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
Escrow in
14 01 06 01 01 35 AE
Escrow out
14 01 06 01 00 6E F4
Credit(功能码=0x07)
说 明:该指令用于获取纸币的面额。
请求数据:无
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 64 | credits | 每4个字节表示1种纸币的面额,共16种纸币。 |
14 01 07 00 56 24
14 01 07 40 00 01 86 A0 00 03 0D 40 00 07 A1 20 00 0F 42 40 00 1E 84 80 00 4C 4B 40 00 98 96 80 01 31 2D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 35
ChangableNum(功能码=0x08)
说 明:该指令用于可用于找零的纸币的数量。
请求数据:无
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 32 | num | 每2个字节表示1种纸币的数量,顺序和Credit指令相同。 |
14 01 08 00 53 D4
14 01 08 20 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7D DE
Mdb硬币器指令(子设备号0x02)
Poll (0x01)
说 明:该指令用于查询纸币器的状态,
请求数据:无。
响应数据:
| 长度(字节) | 说明 | ||
|---|---|---|---|
| 1 | Z1 | Device_Online | 0=离线, 1=在线。网关开机后,默认纸币器为离线状态。在网关发送Reset指令给纸币器,在收到JustReset响应后,认为纸币器上线成功。 |
| 2 | Z2-Z3 | acceptable_types | b0-b15每一位表示是否允许接收对应面额的硬币,0表示禁止,1表示允许。 |
| 2 | Z4-Z5 | Country | 纸币国别, 参见MDB文档或ISO4217, 例如:CNY=156, USD=840, |
| 4 | Z6-Z9 | Income_Num | 从开机或上次IncomeAck指令之后收到的金额。 |
| 1 | Z10 | Change_Status | 0表示没有在找零,1表示在找零, 2表示已完成找零(正常完毕,超超时完毕,故障完毕)。 什么时候回到零? |
| 4 | Z11-Z14 | Change_Num_Request | 本次请求找零金额 单位分 |
| 4 | Z15-Z18 | Change_Num_Left | 本次未找金额 |
| 1 | Z19 | Change_Lever_Pushed | 指示消费者是否按压了找零杆,1表示有按压动作,0表未无动作。只上报消费者5秒内的压杆信息。 |
| 4 | Z20-Z23 | Tube_Num | 当前在硬币器中的硬币的总金额。注意:该金额通过MDB协议取,和实际数量不一定相符。 |
| 1 | Z24 | Error Code | 故障代码,0表示没有故障,其他数据表示有故障。 |
14 02 01 00 A5 84
14 02 01 18 01 FF FF 11 56 00 00 01 F4 00 00 00 00 00 00 00 00 00 00 00 00 25 1C 00 2A 87
Setup (0x02)
说 明:该指令用于设置纸币器。
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 2 | Enable bills | 禁止或允许接收特定面额的硬币,b0-b15每一位表示是否允许接收对应面额的纸币,0表示禁止,1表示允许。开机时默认值为0xff。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
ENABLE
14 02 02 02 FF FF DB 07
14 02 02 01 01 74 2B
DISABLE
14 02 02 02 00 00 DA B7
14 02 02 01 01 74 2B
IncomeAck (0x03)
说 明:该指令用于通知MdbGateway已确认接收到关于收币事件了。当Mdb gateway收到该指令后将清除Income Number, VMC再次发送Poll指令时,其 Income Number将变成0。
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | IncomeNum | 等于从Poll指令中收到的IncomeNum。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
Change(0x04)
说 明:该指令用于通知MdbGateway进行硬币找零,每次找指定金额的硬币。在该指令执行前成功后,应不断调用Poll指令,监控ChangeStatus的值,一直到ChangeStatus变成2。此时的ChangedNum即为最终找零的数量。整个找零过程所延续的时长是不确定的。
执行条件: 找零状态为0(空闲)。
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | ChangeNum | 需要找零的金额。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。2=正在找零,拒绝执行。 |
Change
14 02 04 04 00 00 01 F4 93 67
14 02 04 01 01 94 2A
ChangeAck(0x05)
找零状态为 找零完毕时,才有效。
执行成功的标志: #1 找零状态变为 0 (空闲) ; #2 找零请求数量 变为0 . 剩余待找数量=0
ChangeACK
14 02 05 00 A7 44
14 02 05 01 01 C5 EA
CREDIT(0X07)
说 明:该指令用于获取硬币的面额。
请求数据:无
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 64 | credits | 每4个字节表示1种纸币的面额,共16种纸币。 |
14 02 07 00 A6 24
14 02 07 40 00 00 00 0A 00 00 00 32 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 88
ChangeableNum(0x08)
说 明:该指令用于可用于找零的硬币的数量。
请求数据:无
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 32 | num | 每2个字节表示1种硬币的数量,顺序和Credit指令相同。 |
14 02 08 00 A3 D4
14 02 08 20 00 00 00 24 00 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 13
Mdb刷卡器指令(子设备号0x03)
Poll (0x01)
说 明:该指令用于查询纸币器的状态。
请求数据:无。
响应数据:
| 长度(字节) | 作用 | 说明 | |
|---|---|---|---|
| 1 | Z1 | device_online | 0=没有检测到设备,1=>检测到设备 |
| 2 | Z2-Z3 | country | 纸币国别, 参见MDB文档或ISO4217, 例如:CNY=156, USD=840, |
| 4 | Z4-Z7 | vend_request_num | 当前请求刷卡的金额。 分 |
| 1 | Z8 | Vend_request_result | 0:idle表示当前没有扣款请求。 1: vend_waiting 等待消费才刷卡, 2: vend_approved 扣款成功 3: vend_denied 扣款失败,用户按取消按钮、长时间【NAYAX是90秒】未刷卡,刷卡器拒绝等 4: vend _cancelled, VMC取消了本次扣款 5: deliver_success: 6: deliver_failed: 127(0x7f): session_timeout, 超时[默认60秒]未收到VMC发出的结果。 Gateway在收到VendRequest指令后将重置为0. |
| 1 | Z9 | Error Code | 故障代码, 0xFF表示没有故障,其他数据表示有故障。 |
12:50:32 14 03 01 00 F4 44
12:50:33 14 03 01 09 01 11 56 00 00 00 00 00 FF 58 3D
VendRequest(0x10)
说 明:该指令用于请求刷卡器开启刷卡功能并等待用户进行刷卡扣款。该指令执行成功后应当调用Poll指令查询扣款是否成功。当刷卡器正在扣款或正在退款时不能执行该指令,否则会返回执行失败。在收到Vend
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | Price | 销售的价格,同时也是刷卡扣款的金额 |
| 1 | Timeout | 交易允许时长 秒,(30~150) 默认30 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1:表示成功执行, 0:表示执行失败。 失败情况:1)前一个Vendrequest还未执行完毕。2)下发的Price数值小于等于0。 |
VendResult(0x11)
说 明:该指令用于通知刷卡器商品出货结果。该指令执行成功后应当调用Poll指令查询扣款是否成功。当出货失败时,刷卡器将自动开始退款流程,VMC应当调用Poll指令检查退款是否成功。
VendRequestPrice=0 ; VendApproved=0;
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示出货成功,0表示出货失败。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。always success. |
VendCancel(0x12)
说 明:取消该次VendRequest, 在未扣款前起作用。如扣款成功后要取消,请用调用VendResult,同时设置出货结果为失败。
请求数据:无
Poll 监控到,VendRequestPrice 变0 。 VendApproved=0
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
VendAck(0x13)
说 明:确认上一条VendRequest的结果。
请求数据:无
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1:表示成功执行,只有POLL指令的Vend_request_result值为session_complete,vend _cancelled或session_timeout才能执行该指令。 0:表示执行失败。 |
VendRequest2(0x14)
说 明:vendRequet增加货道号
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | Price | 销售的价格,同时也是刷卡扣款的金额 |
| 2 | Item Number | 厂商自定义货道号 0X0000~0XFFFF |
| 1 | Timeout | 交易允许时长 秒,(30~150) 默认30 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1:表示成功执行, 0:表示执行失败。 失败情况:1)前一个Vendrequest还未执行完毕。2)下发的Price数值小于等于0。 |
TX▶ (Vend Request2) 14 03 14 07 00 00 00 0A 00 21 1E 92 7D
◀RX 14 03 14 01 01 94 13
VendResult2(0x15)
说 明:该指令用于通知刷卡器商品出货结果。该指令执行成功后应当调用Poll指令查询扣款是否成功。当出货失败时,刷卡器将自动开始退款流程,VMC应当调用Poll指令检查退款是否成功。
VendRequestPrice=0 ; VendApproved=0;
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示出货成功,0表示出货失败。 |
| 2 | Item Number | 厂商自定义货道号 0X0000~0XFFFF |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。always success. |
CashSale(0x16)
说 明:现金销售时上报给刷卡器
说 明:
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | Price | 销售的价格,同时也是刷卡扣款的金额 |
| 2 | Item Number | 厂商自定义货道号 0X0000~0XFFFF |
| 4 | suqenceId | 4字节任意数据 ,仅为了区分相邻两条,防止重发。 转换器上电后初值是0 ,仅记录上一条。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。always success. |
请求扣款5分,出货成功。
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 00 00 FF 58 3D
14 03 10 05 00 00 00 05 1E 27 29
14 03 10 01 01 D5 D2
14 03 01 00 F4 44
12:52:45 14 03 01 09 01 11 56 00 00 00 05 01 FF 49 AC
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 05 02 FF 49 5C
14 03 11 01 01 84 12
14 03 11 01 01 84 12
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 05 05 FF 4B 6C
14 03 13 00 F8 E4
14 03 13 01 01 25 D2
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 00 00 FF 58 3D
请求扣款100分,出货失败。
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 00 00 FF 58 3D
14 03 10 05 00 00 00 64 1E 0E B9
14 03 10 01 01 D5 D2
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 64 01 FF 18 72
14 03 01 00 F4 44
14 03 01 09 01 11 56 00 00 00 64 02 FF 18 82
14 03 11 01 00 45 D2
14 03 11 01 01 84 12
14 03 13 00 F8 E4
14 03 13 01 01 25 D2
Age Verification指令(子设备号 0X04)
基础状态通过全局轮询(Unit=0xFF,Section 2)读取:
| 字段 | 说明 |
|---|---|
| age_online | 在线:1=在线,0=离线 |
| age_verify_result | 0=无卡,1=读取失败,2=未达年龄,3=年龄达标 |
| age_verify_media | 0=未知,1=私有1,2=私有2,4=驾照,8=现金卡 |
| Cmd | 名称 | 说明 |
|---|---|---|
| 0x01 | Poll | 查询状态 |
| 0x02 | set | 设定年龄 |
| 0x03 | Ack | 清除上次结果 |
| 0X04 | SynTime | 同步当前时间 |
Poll(Cmd=0x01)
请求:无数据
响应(7 字节):
| 字节 | 字段 | 说明 |
|---|---|---|
| Z1 | Device_Online | 0=离线,1=在线 |
| Z2 | settingage | 当前设置年龄 |
| Z3 | age_verify_result | 0=无卡,1=读取失败,2=未达年龄,3=年龄达标 |
| Z4 | age_verify_media | 0=未知,1=私有1,2=私有2,4=驾照,8=现金卡 |
| Z5 | d_feature1 | mdb手册中原值供参考 |
| Z6 | d_feature2 | mdb手册中原值供参考 |
| Z7 | dravp_feature | mdb手册中原值,仅备用。 |
set(Cmd=0x02)
请求(1字节):
| 字段 | 大小 | 说明 |
|---|---|---|
| Price | 1B | 年龄0-99 |
响应(1 字节):1=成功(always success)
ACK(Cmd=0x03)
请求(0字节):
响应(1 字节):1=成功(always success)
SynTime(Cmd=0x04)
请求(10字节):
| 字段 | 大小 | 说明 | |
|---|---|---|---|
| Z1 | Years | 1B | (Range: 00..99) |
| Z2 | Months | 1B | (Range: 01..12) |
| Z3 | Days | 1B | (Range: 01..31) |
| Z4 | Hours | 1B | (Range: 00..23) |
| Z5 | Minutes | 1B | (Range: 00..59) |
| Z6 | Seconds | 1B | (Range: 00..59) |
| Z7 | Day of Week | 1B | (Range: 01..07, Monday = 1..Sunday = 7) |
| Z8 | Week Number | 1B | (Range: 01..53) |
| Z9 | Summertime | 1B | (Range: 00..01, Summertime = 1) |
| Z10 | Holiday | 1B | (Range: 00..01, Holiday = 1) |
bcd码 0x26 代表2026年
SND:14 04 04 0A 26 05 16 09 39 00 06 20 00 00 A3 AE
REC:14 04 04 01 01 94 A2
响应(1 字节):1=成功(always success)
Hopper指令(子设备号0x10,0x11)
网关支持两路Hopper, 这两路Hopper的功能相同,但指令不同。以下例子均以0X10为例
命令中 仅表达硬币个数,不表达金额。 0x00 0x00 0x00 0x01 表示1枚硬币。
Poll (0x01)
说 明:该指令用于查询纸币器的状态,
请求数据:无。
响应数据:
| 长度(字节) | 说明 | ||
|---|---|---|---|
| 1 | Z1 | Device_Online | 0=离线, 1=在线。网关开机后,默认为离线状态。通讯正常后更新在线状态 |
| 1 | Z2 | Change_Status | 0表示没有在找零,1表示在找零, 2表示已完成找零(正常完毕,超超时完毕,故障完毕)。 |
| 4 | Z3-Z6 | Change_Num_Request | 本次请求找零金额 单位个 |
| 4 | Z7-Z10 | Change_Num_Left | 本次未找金额 |
| 1 | Z11 | Error Code | 故障代码,0表示没有故障,其他数据表示有故障。 |
12:29:43 14 10 01 00 05 81
12:29:43 14 10 01 0B 01 00 00 00 00 00 00 00 00 00 00 A6 C6
12:30:20 14 10 01 00 05 81
12:30:21 14 10 01 0B 01 01 00 00 00 14 00 00 00 12 00 F8 B7
12:30:22 14 10 01 00 05 81
12:30:22 14 10 01 0B 01 01 00 00 00 14 00 00 00 0C 00 F1 17
Change(0x04)
说 明:该指令用于通知MdbGateway进行硬币找零,每次找指定金额的硬币。在该指令执行前成功后,应不断调用Poll指令,监控ChangeStatus的值,一直到ChangeStatus变成2。此时的ChangedNum即为最终找零的数量。整个找零过程所延续的时长是不确定的。
执行条件: 找零状态为0(空闲)。
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | ChangeNum | 需要找零的硬币的数量。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。2=正在找零,拒绝执行。 |
12:30:19 14 10 04 01 14 50 9D
12:30:19 14 10 04 01 01 91 52
ChangeAck(0x05)
找零状态为 找零完毕时,才有效。
14 10 05 00 07 41
14 10 05 01 01 C0 92
执行成功的标志: #1 找零状态变为 0 (空闲) ; #2 找零请求数量 变为0 . 剩余待找数量=0
脉冲式硬币投币器(子设备号0x20)
串口硬币投币器,支持DG600F
波特率 9600, 通讯报文 3字节。 AA 01 AB, AA 02 A8; XOR 校验
禁能功能,设置成 接地 禁止, 悬空或者高电平允许。
通道设置务必正确,上报的数量是,基础CREDIT的总和, 属于无单位应用。
例如: 0.5 设成 1credit, 1.0 设成2 credit , “某游戏币”设成 3credit 等等。。
Poll (0x01)
说 明:该指令用于查询纸币器的状态,
请求数据:无。
响应数据:
| 长度(字节) | 作用 | 说明 | |
|---|---|---|---|
| 1 | Z1 | Device_Online | 0=离线, 1=在线。网关开机后,默认纸币器为离线状态。在网关发送Reset指令给纸币器,在收到JustReset响应后,认为纸币器上线成功。 |
| 1 | Z2 | Enabled | 当前是否允许收接收硬币 |
| 4 | Z3-z6 | Income_Num | 从开机或上次IncomeAck指令之后收到的金额。 |
POLL(无CREDIT时)
14 20 01 00 05 8E
14 20 01 06 01 01 00 00 00 00 32 5B
POLL(CREDIT=2时)
14 20 01 00 05 8E
14 20 01 06 01 01 00 00 00 02 B3 9A
Enable/Disable(0x02)
说 明:该指令用于设置纸币器。
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | Enable | 禁止或允许接收硬币, 0表示禁止,1表示允许。开机时默认值为禁止。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
Disable
14 20 02 01 00 BF 93
14 20 02 01 01 7E 53
Enable
14 20 02 01 01 7E 53
14 20 02 01 01 7E 53
IncomeAck (0x03)
说 明:该指令用于通知MdbGateway已确认接收到关于收币事件了。当Mdb gateway收到该指令后将清除Income Number, VMC再次发送Poll指令时,其 Income Number将变成0。
请求数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 4 | IncomeNum | 等于从Poll指令中收到的IncomeNum。 |
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 1 | result | 1表示成功执行,0表示执行失败。 |
IncomeAck确认收入,需跟poll到的数量一致
14 20 03 04 00 00 00 02 11 04
14 20 03 01 01 2F 93
网关本身(子设备号0xFF)
Vresion(0x01)
说 明:用于获取网关的版本信息。
请求数据:无
响应数据:
| 长度(字节) | 作用 | 说明 |
|---|---|---|
| 2 | 硬件版本 | 首字节表示主版本号,第二字节表示次版号。 |
| 2 | 软件版本 | 首字节表示主版本号,第二字节表示次版号。 |
Poll指令
单指令查询纸币\硬币\刷卡\年龄\hopper1\hoppper2\脉冲投币器的 即时参数, 增加通讯效率。
这些参数在各个子功能能中都能poll到**---**
| 字段 | 值 |
|---|---|
| Unit | 0xFF |
| Cmd | 0x02 |
| 请求 data_len | 0x00 |
| 响应 data_len | 0x34(52 字节) |
Plain
14 FF 02 40 [64 bytes data] <CRC_LO> <CRC_HI>---
### 响应数据字段定义(data 部分,64 字节)
#### 纸币器 (Bill) 偏移 0–18,共 19 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 0 | 1B | bill_online | 纸币器在线:1=在线,0=离线 |
| 1 | 4B | bill_income_num | 累计收券次数(大端序) |
| 5 | 4B | bill_escrowed_num | 暂存区当前金额,0=无暂存(大端序) |
| 9 | 1B | bill_change_status | 找零状态:0=空闲,1=找零中,2=找零完成 |
| 10 | 4B | bill_change_request_num | 当前请求找零金额(大端序) |
| 14 | 4B | bill_change_left_num | 剩余待找零金额(大端序) |
| 18 | 1B | bill_error_code | 错误码:0=无故障 |
#### 硬币器 (Coin) 偏移 19–34,共 16 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 19 | 1B | coin_online | 硬币器在线:1=在线,0=离线 |
| 20 | 4B | coin_income_num | 累计收币次数(大端序) |
| 24 | 1B | coin_change_status | 找零状态:0=空闲,1=找零中,2=找零完成 |
| 25 | 4B | coin_change_request_num | 当前请求找零金额(大端序) |
| 29 | 4B | coin_change_left_num | 剩余待找零金额(大端序) |
| 33 | 1B | coin_lever_pushed | 退币杠杆:1=5秒内被按下,0=未按 |
| 34 | 1B | coin_error_code | 错误码:0=无故障 |
#### Cashless 偏移 35–41,共 7 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 35 | 1B | cls_online | 在线:1=在线,0=离线 |
| 36 | 4B | cls_vend_request_num | 累计支付请求次数(大端序) |
| 40 | 1B | cls_vend_result | 支付结果:0=Idle,1=已批准,2=已拒绝,3=已完成,4=失败 |
| 41 | 1B | cls_error_code | 错误码:FF=无故障 |
#### Age 验证器 偏移 42–44,共 3 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 42 | 1B | age_online | 在线:1=在线,0=离线 |
| 43 | 1B | age_verify_result | 验证结果:0=无卡,1=读取失败,2=未达到年龄,3=年龄达标 |
| 44 | 1B | age_verify_media | 媒介类型:0=未知,1=私有媒介1,2=私有媒介2,4=驾照,8=现金卡 |
#### Hopper 1 偏移 45–51,共 7 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 45 | 1B | hop1_online | 在线:1=在线,0=离线 |
| 46 | 1B | hop1_change_status | 找零状态:0=空闲,1=找零中,2=找零完成 |
| 47 | 4B | hop1_change_left_num | 剩余待出币数(大端序) |
| 51 | 1B | hop1_err_code | 错误码:0=无故障 |
#### Hopper 2 偏移 52–58,共 7 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 52 | 1B | hop2_online | 在线:1=在线,0=离线 |
| 53 | 1B | hop2_change_status | 找零状态:0=空闲,1=找零中,2=找零完成 |
| 54 | 4B | hop2_change_left_num | 剩余待出币数(大端序) |
| 58 | 1B | hop2_err_code | 错误码:0=无故障 |
#### 脉冲硬币 (Pulse Coin) 偏移 59–63,共 5 字节
| 偏移 | 大小 | 字段名 | 说明 |
|---|---|---|---|
| 59 | 1B | pulse_online | 固定为 1 |
| 60 | 4B | pulse_income_num | 累计收币次数(大端序) |
---