由于最近的项目中发现串口不够用,更关键的是
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
通过上面的三步,就可以将物理串口
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,哈,这下连续运行几天几夜也没有问题了..看来破解这东西还真是七分运气.
用兴趣的朋友可以去
http://www.esdevelop.cn
下载玩玩。