Dan*_*iel 18 .net serial-communication
我正在处理一些使用RS232与外围设备通信的遗留系统.我对COM接口的经验不是很熟悉.我有一些代码可以打开和使用COM端口,但它无法打开其他应用程序使用的端口.我需要对数据包进行黑盒子处理,以便我们可以使用相同的协议进行更新通信.
有没有办法将"中间人"传入的数据包发送到开放的COM端口并检测正在发送的数据包?我正在使用.NET,但我对任何类型的解决方案都持开放态度.
(我发现了这个,但我不认为这对我有用.)
Kie*_*eli 13
我使用过com0com - 它非常适合设置虚拟COM端口 - 这根本没有帮助.
COM端口接口基本上是"文件读取".当我尝试连接到已经有另一个实例读取的COM端口时,我的应用程序抛出一个异常.我不确定你是否可以尝试将其打开为"只读"而不是读写,但值得一试.
您应该能够编写一个可以将数据分叉到日志文件的虚拟COM端口.Com0com是开源的,因此您可以将其作为起点.
另一种可能的解决方案是拿起一根rs232分配器电缆,将串行信号分配给另一个串口.
或者另一种可能性是Serial Sniffer程序 (或开源嗅探器).
或者尝试来自同一个com0com网站的hub4com应用程序!
Han*_*ant 10
有没有办法去"中间人"
是的,有很多.通过"过滤器驱动程序"的概念在Windows中得到强有力的支持.这样的驱动程序可以插入到获取I/O请求的驱动程序之前,并查看经过的所有内容.通常用于更改I/O请求,但也非常适合简单地监视请求.男人在中间.
这种驱动程序的典型示例是古老的SysInternals的PortMon实用程序.显示应用程序向/从串行端口发送和接收的所有内容,包括配置和数据.有很多这样的应用程序,只有谷歌"串口过滤驱动程序"(源代码样本很重)和"串口监视器".
与此相关的一个脚注,您确实在64位版本的Windows上遇到问题.绝大多数这些应用程序(包括PortMon)仅适用于32位版本.64位版本只允许安装经过认证的驱动程序,销售这些应用程序的资金很少,无法支付费用.购物时要小心这一点.
| 归档时间: |
|
| 查看次数: |
23858 次 |
| 最近记录: |