如何通过串口发送请求从目录中检索数据?
Posted
技术标签:
【中文标题】如何通过串口发送请求从目录中检索数据?【英文标题】:How to retrieve a data from a directory by sending a request through the serial port? 【发布时间】:2012-06-21 18:31:37 【问题描述】:我有一个具有串行端口和以太网的控制器。我想通过控制器的串行端口或以太网端口从事件目录中检索一个事件以及与该事件关联的数据。我确实有要检索的指定事件的数据包格式(请求数据包数据)。谁能告诉我如何通过串口发送请求来检索数据?我是初学者,对编程不太熟悉。
【问题讨论】:
您很可能得不到任何答案,因为您的答案是笼统的、较少的细节以及“我如何对项目进行编程”。一个方向是:决定你想要的连接(或问这个)并研究如何在目标和主机上实现它。我的选择是使用串行(RS232),因为它更容易实现。 控制器的串口已经接口,我需要发送请求并得到控制器的自动回复。我应该在主机端口启动一个程序,发送请求并得到回复。应该如何用串口实现呢? 问题非常开放。试试这个***.com/questions/1459344/… 【参考方案1】:您需要在嵌入式平台上运行某种程序,侦听串行端口并响应请求。这种程序通常被称为“daemon”(读音与“demon”相同;就像“Caesar”与“sea star”押韵一样)。
如果您已经有一个守护程序,您需要弄清楚它使用什么格式。由于我不知道您可能拥有什么,我什至无法猜测。
如果您要编写自己的守护程序,则需要选择某种协议。我个人喜欢串行协议的 JSON 格式;如果没有更好的库可用,您可以只使用 C 库中的 sscanf()
提取数据,这很简单,当然使用 sprintf()
构建 JSON 字符串也很容易。
http://json.org/
【讨论】:
【参考方案2】:您想要的是 Serial Programming Guide for POSIX Operating Systems。如果您由于某种原因绑定到 Windows,您可以通过安装 Cygwin 获得 POSIX。期望熟悉诸如 termios
和 fcntl
之类的手册页,因为您首先必须设置串行端口参数才能与您的设备一起使用,尽管它们可能在某种程度上是标准的 8-N-1 .然后是读取和写入字节到端口的文件描述符的问题。您更有可能使用低级别的open()
、close()
、read()
和write()
,它们低于stdio
的级别(printf
、fopen
、stdout
)您更有可能习惯于作为新程序员。
如今的计算机通常缺少 RS232 串行端口,因此如果您需要,可以找到便宜的 USB 适配器。请注意,根据我的经验,USB 适配器不一定实现某些辅助信号(RTS、CTS 等)。
还可以根据您的特定需求和情况查看库。
您应该指定控制器以获得更多有用的答案。
【讨论】:
【参考方案3】:您的控制器应支持任何数据交换协议。您可以在文档中找到此信息。可能是,它支持 MODBUS 或 MODBUS TCP。在这种情况下,您可以使用任何与 modbus 兼容的软件。
【讨论】:
以上是关于如何通过串口发送请求从目录中检索数据?的主要内容,如果未能解决你的问题,请参考以下文章