c# – 串口重定向或拆分

我正在寻找一本关于如何进行串口重定向或端口拆分的书籍或代码示例.我编写了很多com端口应用程序,并希望编写一个监视器应用程序,以便我可以看到应用程序和设备之间的串行端口.

所以我希望能够将串口重定向到另一个端口,这样我就可以监控端口之间的数据流.

我理解在某些情况下,这必须在内核级别完成. (在USB情况下)

我在C#中使用system.IO.Ports编写了监视器应用程序.如果我必须调用一个很好的C/C++程序集.

谢谢

解决方法:

您可能会发现Mark Russinovich的PortMon对您的工作很有帮助,尽管它没有提供源代码.它将记录与端口相关的所有系统调用,并具有广泛的过滤功能,以使该日志保持可管理的大小.

编辑:PortMon的工作原理是在运行时将内核模式设备驱动程序注入系统.该驱动程序通过将过滤器驱动程序插入堆栈来挂钩它想要监视的端口.该过滤器驱动程序将通过它的所有IRP报告给应用程序.这不是一个容易实现的任何延伸,它实际上不能在用户模式下完成.

Windows DDK确实有端口过滤器驱动程序的示例代码,但从样本到有用的东西还有很多工作要做.

可能解决的纯用户模式解决方案是使用两个额外的串行端口来窃听线路.一对USB转串口适配器和一些接线将满足您的需求.然后监视和关联发送和接收线只是“编程的小问题”.单芯片解决方案可以基于FT2232H device from FTDI,它有一个可用的evaluation module.添加几个RS232电平转换器和一些D连接器,你有一个USB上的串行窃听器,看起来像两个COM端口到Windows.

另一种开箱即用方法是许多逻辑分析仪和混合信号示波器可以进行串行协议解码,通常作为可选组件.廉价的USB软件解决方案的一个来源是Saelig.我自己从他们那里购买了芯片和模块,但是他们没有任何直接使用他们销售的任何基于USB的逻辑分析仪的经验,尽管我认为我的包里应该有一个连同上网本……

上一篇:android – 我应该选择哪种应用程序间通信?


下一篇:Java app&C app集成/通信