- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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 可选(关键字可选)使用/集成 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/
internal protocol Reducer { associatedtype S : BaseState associatedtype A : BaseActi
我在考虑我的应用程序中的验证检查,我认为在任何模型上调用 ValidatorFactory,实现 Validee,这意味着说哪个类负责 ValidatorCreation 听起来不错。但是下面的代码不
我已经定义了 2 个协议(protocol)。我需要第一个 (NameProtocol) 来执行 Equatable 协议(protocol)。而另一个类 (BuilderProtocol) 有一个返
在上传方面,WebDAV 协议(protocol)在哪些方面优于 HTTP 协议(protocol)。 Socket Upload 协议(protocol)和 WebDav Upload 协议(pro
是否可以在任何版本的 Swift 中扩展具有混合类/协议(protocol)类型约束的协议(protocol)?例如,仅当 Self 是 UIViewController 的子类并且符合 Protoc
我有一个协议(protocol) (ProtocolA),其中包含符合第二个协议(protocol) (ProtocolB) 的单个属性。 public protocol ProtocolA {
NSObject 协议(protocol)带有常用的协议(protocol)模板,但它似乎并不是协议(protocol)实际实现所必需的。将其排除在外似乎完全没有任何改变。那么,协议(protocol
我想根据这两种协议(protocol)的一般特征(例如开销(数据包)、安全性、信息建模和可靠性)来比较 OPC UA 和 MQTT。我在哪里可以找到每个协议(protocol)的开销和其他特性的一些示
使用 Swift 4,我正在尝试编写一个自定义协议(protocol),它提供对 @objc 协议(protocol)的一致性。 一些代码 更具体地说,我有一个自定义协议(protocol) Sear
我想定义一个在 Viper 架构中使用的协议(protocol),以使用具有弱属性的协议(protocol)在 Viper 组件之间建立连接,但我收到以下错误消息: 'weak' may only b
我在同一个网络中有 3 个 docker 容器: 存储 (golang) - 它提供了用于上传视频文件的 API。 主播 (nginx) - 它流式传输上传的文件 反向代理 (姑且称之为代理) 我有
我打算在我的项目中使用 php socket。它需要用户登录才能根据 session 填充内容。所以我的问题是,TCP/IP 协议(protocol)也像 HTTP 协议(protocol)一样为每个
目前,我的网站有两个版本。一种带有 https://-证书,一种没有。我想将我网站的 http 版本上的所有用户 301 重定向到我网站的 https://版本。 这似乎不可能,因为创建重定向将导致重
目前,我的网站有两个版本。一种带有 https://-证书,一种没有。我想将我网站的 http 版本上的所有用户 301 重定向到我网站的 https://版本。 这似乎不可能,因为创建重定向将导致重
我有一个 Swift View Controller ,它定义了一个在 Objective-C View Controller 中应该遵循的协议(protocol): ChildViewControl
我在客户那里有数百个硬件设备,需要通过telnet接口(interface)发送HTTP数据。 目标是等待数据的 Apache 2 Web 服务器和 PHP 脚本。 这已经可以正常工作了,但是我们发现
我发现如果我创建一个这样的协议(protocol): protocol MyProtocol { } 我不能这样做: weak var myVar: MyProtocol? 我找到了解决这个问题的方法
Xcode 基于模板生成了这个头文件: // this file is XYZAppDelegate.h #import @interface XYZAppDelegate : UIRespond
我在 github 中有一个公开的存储库,我正在开发一个开源应用程序,用于制作产品目录和小型 cms 内容。 我还有一个私有(private)仓库(不托管在github),它是在托管在github的开
您好,我想让别人看到私有(private) repo 代码,但不想公开我的 repo ,也不希望他们有能力更改内容。这可能吗?我查看了网站的“管理”部分,但没有找到合适的内容。谢谢大家。 最佳答案 据
我是一名优秀的程序员,十分优秀!