0

我有连接到计算机的 RS485 从设备。计算机向设备询问一些问题并等待响应。

通信应该与用户界面连续,以显示来自设备的数据并实时控制它们。

我使用 bacgroundWorker 开发了一些带有 RS485 通信的应用程序。

我不确定,但我认为这一次不是正确的使用方式,因为用户界面元素无法从 backgroundWorker 更改或更新。

我可能会使用 backgroundWorker 和全局数据变量,然后在计时器事件上更新 UI。但我对这个解决方案感到担忧。谢谢!

4

2 回答 2

3

您不需要使用后台工作程序,因为串行端口支持异步操作 - 您订阅DataReceived并打开端口后,您的事件将使用接收到的数据定期调用。

然后你需要缓冲数据,直到你建立一个完整的消息包(你可能会得到一点点和单调的数据,不能保证你会得到完整的包),然后更新你的 UI(通常使用 BeginInvoke 来传递控制回到你的 UI 线程)

于 2013-09-03T07:26:53.513 回答
-1

我设计了远程监控系统,通过RS-485与控制器配合使用。它实现为在 SQL Server 中写入数据的 Windows 服务。UI 应用程序(在我的上一个版本中是 Web 应用程序)从 SQL 中获取数据。在以前的版本中,我使用了命名管道。

于 2013-09-03T07:17:26.820 回答