由于最近的项目中发现串口不够用,更关键的是GPS的数据被导航软件独占了,自己的程序无法获得GPS数据了,所以想用虚拟串口的方法,既可以在不影响导航软件的情况下让自己的程序获得GPS数据,又可以节省出来一个串口。
本来是打算自己来做一个虚拟串口的驱动的,但无意中发现已经有现成的驱动了,只需要修改一下注册表就可以实现上面的功能了。
实现方法
以下内容来自网络,这里转载并整理了一下。
1、当然是从网络上下载vspd.dll的驱动了。
2、如果是WINCE5.0那么就在platform.bib中加入:
vspd.dll $(_FLATRELEASEDIR\vspd.dll SH
如果是WINCE6.0系统,那么就在platform.bib中加入:
vspd.dll $(_FLATRELEASEDIR\vspd.dll NK SHK
3、修改注册表,在platform.reg中加入
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\VSPD0]
"Priority"=dword:00000000
"DeviceArrayIndex"=dword:00000000
"PortIsRO"=dword:00000000
"SplitPort"=dword:00000003
"Index"=dword:00000005
"Prefix"="COM"
"Dll"="vspd.dll"
"DeviceType"=dword:00000000
"Tsp"="Unimodem.dll"
"FriendlyName"="Virtual port COM5"
"DevConfig"=hex:10,00,00,00,05,00,00,00,10,01,00,00,00,4b,00,00,00,00,08,00,00,00,00,00,00
"Priority"=dword:00000000
"DeviceArrayIndex"=dword:00000000
"PortIsRO"=dword:00000000
"SplitPort"=dword:00000003
"Index"=dword:00000005
"Prefix"="COM"
"Dll"="vspd.dll"
"DeviceType"=dword:00000000
"Tsp"="Unimodem.dll"
"FriendlyName"="Virtual port COM5"
"DevConfig"=hex:10,00,00,00,05,00,00,00,10,01,00,00,00,4b,00,00,00,00,08,00,00,00,00,00,00
通过上面的三步,就可以将物理串口3虚拟成串口5了,这两个串口就可以同时接受GPS数据了。当然可以继续添加VSP1,比如再虚拟出一个串口6来,和上面注册表内容基本一致,只需要修改"Index"和"FriendlyName"就可以了。
测试分析
经过测试发现,虚拟串口5确实可以收到数据了,但是有流量限制。上网一查才知道,原来这个驱动是商业软件,下载到的是试用版的,有流量和虚拟串口数量的限制,即当虚拟串口收发的数据超过1M后就不能继续了,必须重新启动系统才可以继续,而且虚拟的串口数量最多只能有两个。
解决的方法有两个:
1、花钱买一个正版的,相信大家都不会这么做,呵呵。
2、找一个破解的vspd.dll或者自己破解。
网上确实有很多破解的vspd.dll,但是这个破解的大多数是针对PC机平台的,WinCE平台基本没有,或者下载到的试用了不行,如果哪位大虾有破解后的,麻烦发一份过来。另外,网络上有一个博主声称自己破解了,将流量扩充到了4G(基本上可以一直接收GPS数据好几天,应该够用了),数量扩充到了4个,但是下面留言的有说好像不行。本人也没有测试,因为博主给出的链接已经打不开了。
http://blog.csdn.net/shuiii/archive/2008/11/12/3280234.aspx是那篇破解了vspd.dll的文章
做GPS的都熟悉,机器要一起运行导航和电子狗就不得不用一个虚拟串口软件,数据从一个物理串口出来,分给两个虚拟串口,虚拟串口得到的数据是一样的.
最近公司需要,玩了一下虚拟串口,自己写了一个虚拟串口驱动,两个虚拟串口一起收数据总是不能同步,没那么多时间了,怎么办,只有用人家的了..
GOOGLE了一下,发现用Serial Splitter CE 2.9这个软件的人还不少.下.把里面的vspd.dll抠出来,配上自己的UI,哈.居然可以了.不是吧.这么简单,不是一个License都是几百大洋吗.再看了下文档,晕.这只是demo版,有限制的,只能虚拟两个串口,还有1M的流量限制,也就是通过虚拟串口收发的数据超过1M之后就不能再用了.要重启机器.测试了一下,果然,机器跑了半个小时左右就没收不到数据了..
前段时间了解了下逆向工程,看来只有试试破解了.用IDA Pro三两下就找到地方了,把流量限制改成了4G,哈,这下连续运行几天几夜也没有问题了..看来破解这东西还真是七分运气.
本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/595554,如需转载请自行联系原作者