【问题标题】:Implement multiple hardware interfaces in WPF Desktop App在 WPF 桌面应用程序中实现多个硬件接口
【发布时间】:2022-01-04 17:21:10
【问题描述】:

我想用 WPF(.net 5) 制作一个桌面应用程序。在这个应用程序中,我想通过 USB 端口、串行端口/Com 端口(例如 RS232)等连接各种硬件设备(有时同时)。

我希望应用程序可以双向通信。从具有一系列配置(即波特率,频率,数据字符串)的硬件设备接收数据,以及发送数据以显示,修改设备的设置。

我不知道从哪里开始 WPF | .NET | C#。是否有任何内置类、API 来实现这一点?

我要连接的设备是;

  Serial port: Weight Scales, 7 Segment Displays, Liquid Analyzers
  USB port: USB sticks containing text, JSON files; If one of the above serial port devices has a USB variant then those are too.

【问题讨论】:

  • 你的项目是一步一步来的。例如从串行端口开始。查看here 了解有关 SerialPort 的信息。
  • 您正在开发 WPF 应用程序这一事实是无关紧要的。将每个设备的连接编写为与用户界面不同的独立模块,并使用控制台应用程序进行开发/测试。

标签: c# wpf serial-port .net-5 hardware-interface


【解决方案1】:

.Net 中有Serial port class,但在使用它之前,您可能需要阅读一些关于该类的criticism。还有libraries available to communicate over USB

但这些是相当低级的协议,不知道另一端是什么类型的设备。因此,您的 UI 也需要低级别,即发送/接收原始数据。这对于使用非常专业的设备的专家用户来说非常有用。虽然您可以让发送和接收数据的部分共享 USB 和串行接口,但连接和设置可能需要以不同方式处理,因为串行和 USB 的处理方式不同。

如果您想要一个更易于使用的 UI,您需要更多地了解它是什么类型的设备。有许多标准化的USB device classes 指定它是什么类型的设备,并且通常有高级 API 来与这些设备交互。但这需要为每个单独的设备类编写一个模块。

所以我建议先弄清楚你真正想要做什么?连接到带有一些通用 IO 引脚的 IO 板?连接到诸如 PanTilt 装置之类的专用设备?从网络摄像头读取数据?从某种传感器读取一些数据,进行一些处理和控制某种输出设备?

【讨论】:

  • 感谢您的回复!我想在串口上与体重秤、7 段显示器、液体分析仪通信……在 USB 上,我想与有文件的 USB 记忆棒通信……如果上述串口设备之一有 USB 变体,那么那些太……
  • @rcode 那么您通常会为每种类型的设备编写一个类,并为每种设备编写一个具有适当功能的类,并让这些类处理从设备发送命令和接收结果。对于 USB 记忆棒,只需使用常规文件系统函数来读取/写入文件。如果需要,可以使用 API 检查哪些驱动器是可移动的,并监控此类驱动器的插入/移除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
相关资源
最近更新 更多