我正在用 C# 开发一个 MDB 软件作为支付阅读器媒体,它通过 MDB 协议与自动售货机通信。目前一切正常,我能够与自动售货机通信。阅读 MDB 协议后,通信就像预期的那样,但我无法理解一些命令/响应......
我只有一个关于我应该发回自动售货机的回复的问题,这可能真的很愚蠢,但我真的不明白应该如何发送。
如 MDB 协议所示,当我从 MDB 机器获得 POLL 并且阅读器(我的计算机)的状态为“会话空闲”时,我可以向自动售货机发送“开始会话”命令。命令通过串行端口以字节为单位发送,并在 MDB 协议中显示为 HEX 或 Binary。BEGIN SESSION 命令应包含以下内容:
Z1 开始会话 Z2-Z3 可用资金 Z4-Z7 支付媒体 ID Z8 支付类型 Z9-Z10 支付数据
由于 MDB 协议中有很好的示例,我了解 Z1-Z7,但我无法理解 Z8-Z10(支付类型和支付数据)。这些示例在我的脑海中并没有自我解释。
MDB 协议说明如下: """"""""""""""""""""""""""""""""""""""""""""""""""" """""" Z8:付款方式: 00xxxxxxb = 普通售卡(参考 EVA-DTS 标准,附录 A.1.1 定义) x1xxxxxxb = 测试媒体 1xxxxxxxb = 免费售卖卡 xx000000b -0 VMC 默认价格 xx000001b -1 用户组(Z9 = EVA-DTS Element DA701) 价目表编号(Z10 = EVA-DTS 元件 LA101)* xx000010b -2 用户组(Z9 = EVA-DTS Element DA701) 折扣组指数(Z10 = EVA-DTS Element MA403) xx000011b -3 折扣百分比系数 (Z9=00, Z10 = 0 to 100**, 在 EVA-DTS Element MA404 中报告为正值) xx000100b -4 附加费百分比系数 (Z9=00, Z10 = 0 to 100**, 在 EVA-DTS Element MA404 中报告为负值) * 用户组是所有授权用户的细分。 它允许选择性的成本分配。 用户组通常与价目表没有直接关系。 价目表是价格表。 每个价目表包含每个产品的单独价格。 折扣组表示将应用百分比因子的价目表。 如果 VMC 不知道用户组、价目表或折扣组, 使用正常价格(Z8 默认为 00h)。 Z9 和 Z10 的最小值为 0。 ** 百分比以二进制表示(00 到 64h) 注意:并非所有 VMC 都支持这些功能。 Z9-Z10:如上定义的支付数据 """"""""""""""""""""""""""""""""""""""""""""""""""" """"""
有人可以告诉我应该如何将 Z8 和 Z9-Z10 发送到自动售货机。现在我一直在发送(十六进制):“0x02(Z8),0x10(Z9)和0x10(Z10)”这只是一个疯狂的猜测,它正在工作。不知道为什么,但它可能不正确。
Z8和Z9-Z10应该怎么寄?