gpt4 book ai didi

c# - MDB协议(protocol)(多点总线)——C#串口通信

转载 作者:太空狗 更新时间:2023-10-29 23:49:47 26 4
gpt4 key购买 nike

我正在使用 C# 开发一个 MDB 软件作为支付阅读器媒体,通过 MDB 协议(protocol)与自动售货机通信。目前一切正常,我可以与自动售货机通信。阅读 MDB 协议(protocol)后,通信与预期的一样,但我无法理解某些命令/响应...

我只有一个关于我应该发回自动售货机的回复的问题,这可能真的很愚蠢,但我真的不明白应该如何发送。

如 MDB 协议(protocol)所示,当我从 MDB 机器获得 POLL 并且阅读器(我的计算机)的状态为“ session 空闲”时,我可以向自动售货机发送“开始 session ”命令。命令以字节为单位通过串行端口发送,并在 MDB 协议(protocol)中显示为十六进制或二进制。 BEGIN SESSION 命令应包含以下内容:

Z1 开始 session Z2-Z3 可用资金Z4-Z7 支付媒介 IDZ8 支付方式Z9-Z10支付数据

我理解 Z1-Z7 是因为 MDB 协议(protocol)中有很好的示例,但我在理解 Z8-Z10(支付类型和支付数据)时遇到了困难。这些示例在我脑海中无法 self 解释。

The MDB protocol says the following:"""""""""""""""""""""""""""""""""""""""""""""""""""""""" Z8 : Type of payment:00xxxxxxb = normal vend card (refer EVA-DTS Standard, Appendix     A.1.1 Definitions)x1xxxxxxb = test media 1xxxxxxxb = free vend card xx000000b -0 VMC default pricesxx000001b -1 User Group                (Z9   = EVA-DTS Element DA701)              Price list number          (Z10 = EVA-DTS Element LA101)* xx000010b            -2 User Group               (Z9   = EVA-DTS Element DA701)            Discount group index        (Z10 = EVA-DTS Element MA403) xx000011b            -3 Discount percentage factor (Z9=00, Z10 = 0 to 100**,            report as positive value in EVA-DTS Element MA404) xx000100b            -4 Surcharge percentage factor (Z9=00, Z10 = 0 to 100**,            report as negative value in EVA-DTS Element MA404) * User Group is a segmentation of all authorized users. It allows selective cost allocation. A User Group usually has no direct relation to a price list. Price Lists are tables of prices. Each Price List contains an individual price for each product. Discount Group indicates the Price List on which the Percentage Factor will be applied. If the User Group, the Price List or Discount Group is unknown by the VMC, the normal prices are used (Z8 is defaulted to 00h). Minimum value for Z9 and Z10 is 0. ** Percentages are expressed in binary (00 to 64h) Note:  These functions may NOT be supported by all VMCs. Z9-Z10 : Payment data as defined above""""""""""""""""""""""""""""""""""""""""""""""""""""""""

谁能告诉我应该如何将 Z8 和 Z9-Z10 送到自动售货机。现在我一直在发送(十六进制):“0x02 (Z8)、0x10 (Z9) 和 0x10 (Z10)”,这只是一个大胆的猜测,它正在工作。真的不知道为什么,但它可能不正确。

Z8和Z9-Z10应该如何发送?

最佳答案

EVA-DTS 标准是它自己的独立标准。

  • MDB-ICP 是一种通信协议(protocol)。
  • EVA-DTS 是一种数据格式标准。

MDB 可选(关键字可选)使用/集成 EVA-DTS 数据,这是它在这里要求的。

EVA-DTS 数据是 ascii 文本/数字中的人类可读值,按定义的顺序和长度由星号分隔。星号之间的每个数据单元称为数据元素。

选项1&2中的Z9,指的是数据元素DA701,如果查看EVA-DTS-6.2.2标准的附录A,DA701的元素名称为“Cashless1 user group number”,属于数据类型N0 表示没有任何隐含小数点的数字,最小长度为 1 位,最大长度为 13。在 MDB 中,不是作为 ASCII 字符串发送的,如“15”,而是使用十六进制数字表示,因此 usergroup 15 将是 0x0F。用户组如果不使用它,你可以为所有人设置0x01。它用来对人进行分组,有不同的价格表,给不同的人不同的价格。不确定这是否是 MDB 功能,但如果不是,任何 VMC 都可以实现它。全部可选。

Z9你可以自己查

Z8,前两个最高有效位用于指示它是否是自动售货卡支付(如信用卡或任何实际形式的无现金支付)。其余数字取决于供应商。您使用 4 个选项之一(阅读 DTS 标准的附录 A 第 1.1 节以了解它们的含义以及在那种情况下哪些是合适的。根据所使用的选项(1、2、3 或 4)决定Z9 和 Z10 是什么,就像选项 3 说 z9 将是 0x00 而 Z10 将变成一个百分比(因为 z8 将描述给定的百分比折扣),而如果您选择选项一,则 Z10 相反包含 DTS 元素 LA101 的值。

希望这不会太冗长或不连贯。祝你好运,我们是竞争对手。

关于c# - MDB协议(protocol)(多点总线)——C#串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39696771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com