我有一个在 Windows XP Professional 上运行的 .NET 2.0 应用程序。此应用程序使用串行端口与一些自定义设备进行通信。
出于某种原因,我们的一些定制 PC 的串行端口存在问题,使用几周后它将停止运行。除了自动重启(在我的场景中不起作用)之外,是否有任何实用程序可以调试/诊断串行端口?是否有任何.NET 库可以帮助解决这个问题(我可以编写自己的实用程序来调试端口)?
另外,有没有人对以下库有任何经验: Sax CommStudio
我有一个在 Windows XP Professional 上运行的 .NET 2.0 应用程序。此应用程序使用串行端口与一些自定义设备进行通信。
出于某种原因,我们的一些定制 PC 的串行端口存在问题,使用几周后它将停止运行。除了自动重启(在我的场景中不起作用)之外,是否有任何实用程序可以调试/诊断串行端口?是否有任何.NET 库可以帮助解决这个问题(我可以编写自己的实用程序来调试端口)?
另外,有没有人对以下库有任何经验: Sax CommStudio
我过去使用过 Sax CommStudio,但现在我只使用 System.IO.Ports.SerialPort。
您是否有机会使用 USB 串行端口?我遇到了那些去BSOD之类的问题。如果是这种情况,您的问题是驱动程序问题,而不是软件问题。
如果您想在您的应用程序之外进行一些故障排除,您可以查看HHD 的串行监视器。我认为他们有免费试用版,但如果你正在做任何认真的 RS232 开发,它真的值得购买。
portmon - http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx
我想说这是最接近 Windows 上监控串行端口的“标准”工具。但是如果你需要在两周后使用这种工具尝试追踪某些东西,天堂会帮助你......
我怀疑是驱动程序问题 - 它是带有传统 UART 的“正确”串行端口,还是某种 USB 串行转换器或类似的?
2017 年更新:Portmon 在 2008 年是一个相当有用的建议,但从未更新为适用于 64 位版本的 Windows,所以现在不要费心在现代机器上尝试它。
我使用了 HDD Software Free Serial Port Monitor。它将记录所有流量并在串行端口上打开/关闭。这样你就有了数据和串口操作的日志。
您提到您在 Windows XP 和 .NET 2.0 上运行,.NET 很可能是您的问题,因为在大多数 .NET 版本中存在影响串行端口的错误。我建议使用串行端口的最低版本是 .NET 3.5 SP1。
另见: http ://blog.zachsaw.com/2010/07/net-serialport-woes.html