.net - 如何通过串行连接有效地使用设备?

标签 .net .net-3.5 serial-port

我已经为此苦苦挣扎了很长一段时间,最终我确实得到了一个可行的解决方案,但它并不完美,我希望从 stackoverflow 社区获得一些关于如何做到这一点的智慧。

基本上,我正在使用使用菊花链 USB 连接连接到计算机的电机,并且我必须使用 .Net 中的 SerialPort 类与它们进行通信,并且它通过计算机上安装的一些驱动程序通过 USB 与电机进行通信.

问题是电机是菊花链式的,当我问时

对于来自一个电机的信息,或者告诉它做某事,我必须等待结果返回,然后才能对该电机或任何其他电机执行其他操作。

我刚刚经历了一段艰难的时期,我确信有更好的方法来处理我从未接触过的串行通信。对于此类事情有什么好的指导方针或最佳实践吗?这是一个相当标准的事情吗(串行通信 -> 通过计算机上安装的驱动程序进行 USB)

我正在与 MDrive23Plus Motion Control 中的六个合作电机来自IMS .

我可以提供更多详细信息,但我不太确定这会导致什么结果。我希望这对于 StackOverflow 来说足够具体,尽管我知道它有点模糊。我只是真的不知道如何更好地提问。

实际上,归根结底是如何有效地同步通信,以及如何有效地等待和读取返回的数据?我知道这对某些人来说可能非常简单,但对我来说效果不佳。

最佳答案

这是多点串行网络工作的限制......它没有什么魔力,你可以减轻一些痛苦

通常,最好的方法是放入一个抽象层,其中有一个包含要发送的内容的消息队列,并且每个消息队列都有一个回调,当收到响应时会调用该回调。

关于.net - 如何通过串行连接有效地使用设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869615/

相关文章:

.net - WPF 设计器 : What is your design process?

.net - 我们应该对数据库进行反规范化以提高性能吗?

C#数学类问题

data-binding - 将组合框列数据绑定(bind)到每行的数据 GridView (不是整个列)

c# - DateTime 问题 - 值在对象外部可用但在对象内部不可用

python - pyserial - 如果串行设备断开连接,我想收到错误消息

c# - 在 C# 中计算耗时时出现夏令时问题

c# - 不正确的语法错误

linux - 在 Linux 中通过蓝牙访问 Neurosky Mindset 的串行数据

c# - 如何使用驱动程序名称在 .NET 中查找串行端口设备?