我已经为此苦苦挣扎了很长一段时间,最终我确实得到了一个可行的解决方案,但它并不完美,我希望从 stackoverflow 社区获得一些关于如何做到这一点的智慧。
基本上,我正在使用使用菊花链 USB 连接连接到计算机的电机,并且我必须使用 .Net 中的 SerialPort 类与它们进行通信,并且它通过计算机上安装的一些驱动程序通过 USB 与电机进行通信.
问题是电机是菊花链式的,当我问时
对于来自一个电机的信息,或者告诉它做某事,我必须等待结果返回,然后才能对该电机或任何其他电机执行其他操作。
我刚刚经历了一段艰难的时期,我确信有更好的方法来处理我从未接触过的串行通信。对于此类事情有什么好的指导方针或最佳实践吗?这是一个相当标准的事情吗(串行通信 -> 通过计算机上安装的驱动程序进行 USB)
我正在与 MDrive23Plus Motion Control 中的六个合作电机来自IMS .
我可以提供更多详细信息,但我不太确定这会导致什么结果。我希望这对于 StackOverflow 来说足够具体,尽管我知道它有点模糊。我只是真的不知道如何更好地提问。
实际上,归根结底是如何有效地同步通信,以及如何有效地等待和读取返回的数据?我知道这对某些人来说可能非常简单,但对我来说效果不佳。
最佳答案
这是多点串行网络工作的限制......它没有什么魔力,你可以减轻一些痛苦
通常,最好的方法是放入一个抽象层,其中有一个包含要发送的内容的消息队列,并且每个消息队列都有一个回调,当收到响应时会调用该回调。
关于.net - 如何通过串行连接有效地使用设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869615/