请大家帮忙,关于截获串口数据问题,请教高手

时间:2021-11-21 18:51:48
现在接到个客户要求,现在用的是美国的条码机和程序,客户要求不换程序,换国内的条码机。老美的程序是发送指令到串口的。我的问题是,怎么截取程序发送过来的指令,别且不能让老美的条码机打印,然后我对截取的指令进行翻译,翻译成国产条码机的指令,同样接在串口上。转译过的指令然后发送到国产条码机串口上打印出来 

怎么样,截获串口数据,然后转译,发送打印。请大家给我个思路,如果有程序案例,最好不过了

14 个解决方案

#1


截获串口编程有些难度的,可以考虑以下方案:安装虚拟串口的驱动程序(网上能找到现成的),它能模拟出若干个串口,并且建立与这些串口对应的TCP端口。你自己编程与这些TCP端口进行通讯,就能获得原程序打印输出到串口的数据。然后对这些数据进行分析,转译与新打印机的指令,……。

#2


用spcom控件就可以截出串口发送来的信息。

#3


http://jfyes.com/CommMonitor3.0%20setup.rar
监视串口打开并预以拦截提示用户是否充许其操作,如果使用串口的程序先打串口,串口监视精灵一
      样能捕获其操作串口的读写数据 、关闭串口操作,并能同时监视PC机上最多256个串口;
记录所有打开串口的程序打开、读写、关闭串口的操作行为;

#4


CommMonitor3.0 可以出售源码

#5


引用 2 楼 zxf_feng 的回复:
用spcom控件就可以截出串口发送来的信息。

请问下,怎么样截获呢,要不要打开端口,那就变成独占了,不知道能否赐教下。QQ48520997

#6


我现在已经有了一个思路了,多谢谢jadeluo的建议,我装了个虚拟端口,让程序把数据发往虚拟串口,然后对他截获。刚才测试了下,数据是发送到虚拟串口去了。现在面临的问题是怎么把虚拟端口的数据给截获出来,然后我对指令进行转移,再次发送到物理串口com1 我使用的就是spcom 。用什么样的方法来截获数据呢。

#7


引用 6 楼 zxzcad 的回复:
我现在已经有了一个思路了,多谢谢jadeluo的建议,我装了个虚拟端口,让程序把数据发往虚拟串口,然后对他截获。刚才测试了下,数据是发送到虚拟串口去了。现在面临的问题是怎么把虚拟端口的数据给截获出来,然后我对指令进行转移,再次发送到物理串口com1 我使用的就是spcom 。用什么样的方法来截获数据呢。


虚拟串口程序可以把从串口(虚拟)接收到的数据通过TCP协议发送给另外一个虚拟串口程序的,即:
       主机1                    主机2
虚拟串口---TCP端口--------TCP端口---虚拟串口
其中,主机1和主机2可以是同一台主机。

你自己写个程序来模拟主机2的程序就行了,变成:
       主机1                        主机1
虚拟串口---TCP端口--------TCP端口---指令转换---真实串口

#8


如果你的主机上有3个串口的话, 那就更简单了。用串口线把串口1和串口2连接起来,串口3接新的打印机。

原程序 --(打印输出)-> 串口1 --(串口线直连)-> 串口2 -> 你的程序 --(指令转换后打印输出)-> 串口3

#9


我使用的是VSPD XP 5.1虚拟串口 好像没有TCP功能哦,高手给介绍一个

#10


引用 9 楼 zxzcad 的回复:
我使用的是VSPD XP 5.1虚拟串口 好像没有TCP功能哦,高手给介绍一个


使用VSPD的话, 用这个方法:
原程序 --(打印输出)-> 虚拟串口1 --(VSPD内部连接)-> 虚拟串口2 -> 你的程序 --(指令转换后打印输出)-> 真实串口 -> 打印机

#11


哦,大概明白了,两个虚拟串口得到的是同样的数据是吧。只要吧虚拟串口2的数据捕获出来就可以了吧~~

#12


谢谢 测试成功

#13


好久的贴了 今天才用上

#14


好久的贴了,今天看了 还是很有感觉的

#1


截获串口编程有些难度的,可以考虑以下方案:安装虚拟串口的驱动程序(网上能找到现成的),它能模拟出若干个串口,并且建立与这些串口对应的TCP端口。你自己编程与这些TCP端口进行通讯,就能获得原程序打印输出到串口的数据。然后对这些数据进行分析,转译与新打印机的指令,……。

#2


用spcom控件就可以截出串口发送来的信息。

#3


http://jfyes.com/CommMonitor3.0%20setup.rar
监视串口打开并预以拦截提示用户是否充许其操作,如果使用串口的程序先打串口,串口监视精灵一
      样能捕获其操作串口的读写数据 、关闭串口操作,并能同时监视PC机上最多256个串口;
记录所有打开串口的程序打开、读写、关闭串口的操作行为;

#4


CommMonitor3.0 可以出售源码

#5


引用 2 楼 zxf_feng 的回复:
用spcom控件就可以截出串口发送来的信息。

请问下,怎么样截获呢,要不要打开端口,那就变成独占了,不知道能否赐教下。QQ48520997

#6


我现在已经有了一个思路了,多谢谢jadeluo的建议,我装了个虚拟端口,让程序把数据发往虚拟串口,然后对他截获。刚才测试了下,数据是发送到虚拟串口去了。现在面临的问题是怎么把虚拟端口的数据给截获出来,然后我对指令进行转移,再次发送到物理串口com1 我使用的就是spcom 。用什么样的方法来截获数据呢。

#7


引用 6 楼 zxzcad 的回复:
我现在已经有了一个思路了,多谢谢jadeluo的建议,我装了个虚拟端口,让程序把数据发往虚拟串口,然后对他截获。刚才测试了下,数据是发送到虚拟串口去了。现在面临的问题是怎么把虚拟端口的数据给截获出来,然后我对指令进行转移,再次发送到物理串口com1 我使用的就是spcom 。用什么样的方法来截获数据呢。


虚拟串口程序可以把从串口(虚拟)接收到的数据通过TCP协议发送给另外一个虚拟串口程序的,即:
       主机1                    主机2
虚拟串口---TCP端口--------TCP端口---虚拟串口
其中,主机1和主机2可以是同一台主机。

你自己写个程序来模拟主机2的程序就行了,变成:
       主机1                        主机1
虚拟串口---TCP端口--------TCP端口---指令转换---真实串口

#8


如果你的主机上有3个串口的话, 那就更简单了。用串口线把串口1和串口2连接起来,串口3接新的打印机。

原程序 --(打印输出)-> 串口1 --(串口线直连)-> 串口2 -> 你的程序 --(指令转换后打印输出)-> 串口3

#9


我使用的是VSPD XP 5.1虚拟串口 好像没有TCP功能哦,高手给介绍一个

#10


引用 9 楼 zxzcad 的回复:
我使用的是VSPD XP 5.1虚拟串口 好像没有TCP功能哦,高手给介绍一个


使用VSPD的话, 用这个方法:
原程序 --(打印输出)-> 虚拟串口1 --(VSPD内部连接)-> 虚拟串口2 -> 你的程序 --(指令转换后打印输出)-> 真实串口 -> 打印机

#11


哦,大概明白了,两个虚拟串口得到的是同样的数据是吧。只要吧虚拟串口2的数据捕获出来就可以了吧~~

#12


谢谢 测试成功

#13


好久的贴了 今天才用上

#14


好久的贴了,今天看了 还是很有感觉的