提问人:Luis Gabriel Fabres 提问时间:11/17/2023 更新时间:11/17/2023 访问量:15
重置COM端口的麻烦
troubles to reset COM port
问:
我正在开发一个应用程序,该应用程序通过 rs232 端口从设备接收一串字符。该过程工作正常,除了在某些时候我用于通信的 COM 端口崩溃。该程序(在网络核心 7 中开发)检测到端口被阻止(无论出于何种原因),并尝试关闭端口并随后重新启动。这是我遇到问题的地方,因为端口被阻塞,它分别通过关闭和打开对关闭和打开没有响应。
我一直在尝试通过不同的方式禁用和启用通信端口,但它们都没有正常工作,要么是由于执行方式的问题,要么是由于禁用和启用 COM 端口的命令存在问题。
使用带有管理单元 (Diagnostics.dll) 的 PowerShell,当我使用管理单元 Microsoft.PowerShell.Diagnostics 时,在指定路径中找不到它。我认为这可能是由于缺乏对 .NET Core 7.0 运行时的支持。
使用包管理器 (System.Management.Automation) 的 PowerShell,问题似乎是 System.Management.Automation 包 (7.4.0) 的版本与 .NET Core 7.0 不兼容。
我也尝试安装 Devcon,但即使 Devcon 能够在使用设备 ID 运行 disable 时使用标识符找到设备,它也不会运行它。这是我获得最佳结果的选项,至少可以识别设备,但是禁用时,它只是说它找不到设备。
我也尝试了 Mode,这里的 mode 命令不会以任何方式禁用 COM 端口。
最后,我一直在审查 WMI(Windows 检测),但这里的问题是使用 WMI 时在尝试禁用设备时会产生异常:System.Management.ManagementException:“一般错误”
我没有想法,我不知道问题是否是因为被阻止的端口不允许禁用或重置它......如果有人以前处理过此类问题,并且可以帮助我,请。问候并感谢您的阅读。
答: 暂无答案
评论