【问题标题】:Serial port communications in C#C#中的串口通信
【发布时间】:2009-09-07 06:27:18
【问题描述】:

我们有一个场景,多个设备连接到一个 com 端口。每个设备都有一个访问代码,该代码是在设备内手动定义的。

我可以使用/通过 C# 中的访问代码访问所有连接的设备吗?有人知道如何做到这一点吗?

在我的情况下,多个设备通过单个端口连接,但从属地址不同..如何访问 C# 代码中的所有从属地址以限制另一个设备不具有相同的从属地址?

【问题讨论】:

  • Jaswant,请添加更多信息。例如,如何从串口访问访问码。
  • 访问码在0-255之间连接时给出

标签: c# serial-port device-driver


【解决方案1】:

看看一篇文章 - Serial post in C#Tutorial

【讨论】:

  • 在我的情况下,多个设备通过单个端口连接,但从站地址不同..如何访问 C# 代码中的所有从站地址以限制另一个设备不能具有相同的从站地址?
【解决方案2】:

贾斯旺,

在我工作的地方,我们有一些设备可以通过 .net 表单应用程序通过 RS232 访问。我们有多个设备同时通过同一条串行线连接。

只要设备在电缆的末端:

a) 与对方交谈(即直接联系)时回复 - 其他时间均不回复

b) 使用无连接串行通信(即无握手)

那么我怀疑您在使用设备时会遇到问题。

我假设您必须像我们一样为您的设备“寻址”,即沿线路发送的每个数据块都采用特定格式(有点像 TCP 标头),例如

byte description
---- -----------
  00 command
  01 address
>=02 data

所有设备都接收所有通信,但只有在数据中的地址与设备上的地址匹配时才会根据指令进行操作并做出响应。

【讨论】:

  • 至于实际实现的代码,请参考adatapost的回答。
  • hmm..这个解决方案与我的要求类似..我需要在我们的 C# 源代码中找到设备的访问代码
  • 出于兴趣,您正在与哪些设备通话?有点长镜头,但如果它们相同,我会让你看看我的源代码。
  • 我有一些电表设备通过具有多个从地址的单个端口连接
  • 看来您必须轮流轮询每个地址,看看它是否响应。您可以“按需”(用户按下按钮开始扫描所有地址)或在没有其他活动时连续执行此操作。如果您每秒扫描一个地址,那么您将在大约 255 秒内扫描所有可能的地址。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
相关资源
最近更新 更多