如何在 C# 中实现串行端口通信以控制现金存款机 [关闭]

Posted

技术标签:

【中文标题】如何在 C# 中实现串行端口通信以控制现金存款机 [关闭]【英文标题】:How to implement Serial Port Communication in C# to control a Cash Deposit Machine [closed] 【发布时间】:2017-08-31 06:08:41 【问题描述】:

我的问题可能看起来太宽泛了,但我恳请您提供指导或更确切地说是一个起点。

我有一个项目需要开发一个控制现金存款机的系统。所有活动,例如获取机器中的纸币数量等,都可以通过系统轻松完成。

在研究过程中,我发现机器使用了一个名为libglorycolx2010.dll的dll和许多其他模块,并且我可以使用串行端口通信与机器通信。

这里有人处理过这样的项目吗?如何实现。参考教程或链接将有很大帮助。

【问题讨论】:

我认为“控制”一台 ATM 机的范围远不止读取一些操作数据。试想一下,您可以通过点击 RS232 让 ATM 机取出所有的钱……哈哈。虽然,我知道在某些情况下您可以读取诸如卡号、提取金额等操作数据 - 有点像“tail -f”日志文件 - 但每个制造商都有自己的协议。 您希望控制 Glory 制造的 Teller Cash Recycler 设备。该设备只能通过它自己的 API 进行控制,因此您正在谈论的 dll,但是 API 和 SDK 不是公共领域。您需要联系 GLORY 或其在您所在国家的合作伙伴获取 SDK 和使用该接口的手册。我记得,这些设备可以通过串行/USB 和 ETH 进行控制。向供应商索取驱动程序和文档。 你说的很对。该机器由 Glory 制造,我随身携带从他们的合作伙伴之一获得的 API。你处理过 Glory API 吗? 【参考方案1】:

编辑:我搜索了与该 dll 相关的文档,但只能找到看起来像钓鱼的下载站点。假设您没有文档,最好的办法是联系存款机的制造商和/或分销商,了解软件的制造商,然后从他们那里获取文档。

框架内置了对串口通讯的支持。请参阅 documentation 和 simple example。请务必阅读存款机的文档,以确保您使用正确的端口设置。

【讨论】:

好吧,但话又说回来,他仍然缺少设备本身的规格。在大多数情况下,他需要知道“要发送什么”到设备,以获得所需的答案。因此,查看设备文档可能会有用 谢谢 Koby Duck,这很有帮助【参考方案2】:

SerialPort 作为 .NET Framework 中的交钥匙解决方案提供您所需的一切。它可以轻松处理参数(串口名称、波特率等)、通信等。我在进行串口通信时总是使用它。

如果您需要对 SerialPort 进行试验,请安装 TeraTerm 和任何允许您在开发系统上虚拟化配对串行端口的软件,这样您就可以独立于目标现金存款机进行快速试验。

【讨论】:

我的主要问题是在其他模块中使用 libglorycolx2010 dll。 除非执行不当或者我们不是在谈论同一种串行通信(波特率、数据位等),否则串行通信应该独立于实现。如果 .dll 出现错误,您无法使用所有内置的串行通信 API,那么在不知道该 dll 正在做什么的情况下就不可能回答您的问题。

以上是关于如何在 C# 中实现串行端口通信以控制现金存款机 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何自动检测串行 COM 端口 c# 的连接

C# COM 端口通信 - USB 到串行适配器的错误

在 C# 中管理串行端口 [重复]

使用 C# 通过“USB 虚拟串行端口”与 USB 设备通信?

ALB技术笔记基于多线程方式的串行通信接口数据接收案例

c#如何实现串口通信读取数据