WinCE利用vspd.dll实现虚拟串口

简介:
由于最近的项目中发现串口不够用,更关键的是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,哈,这下连续运行几天几夜也没有问题了..看来破解这东西还真是七分运气.


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/595554,如需转载请自行联系原作者
相关文章
|
Windows
WinCE6.0实现TexFAT的注意点
TexFAT(Transaction-safe Extended FAT)与TFAT功能一样,在WinCE6.0之前,包括Windows Mobile6.5使用的是TFAT,WinCE6.0和WP7则使用TexFAT。
1083 0
WinCE系统声音定制
WinCE系统声音定制       2010的第一篇Blog,介绍一下WinCE系统声音的定制。说白了,就是设置注册表。WinCE系统启动的开机音乐,点击触摸屏以及键盘输入的按键音,还有系统运行过程中的各种声音其实都是在注册表里面预先设置好的。
876 0
|
移动开发 Windows
WinCE虚拟串口驱动(二)
//========================================================================  //TITLE:  //    WinCE虚拟串口驱动(二)  //AUTHOR:  //    ...
702 0
|
移动开发 缓存 定位技术
WinCE虚拟串口驱动(一)
 //========================================================================  //TITLE:  //    WinCE虚拟串口驱动(一)  //AUTHOR:  //   ...
713 0
|
开发工具
WinCE6.0 R3引发的问题
  今天终于安装了R3,结果却导致编译不过! gwes_lib.lib(gwe_s.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl MsgQueue::TouchProcessT...
772 0
|
测试技术
WinXP下USB驱动开发(一)
  目  录 第1节    概述.... 4 第2节       USB相关技术.... 4 2.1.      USB拓扑结构... 4 2.
1144 0
|
测试技术 C++ Windows
WinXP下USB驱动开发(四)
第3节       设计说明 3.1.       概要设计 该任务主要包括上位机USB驱动开发、LPC2440 下位机程序开发、调试三部分。其中LPC2440 下位机程序开发部分已经完成,不需要再行设计和开发。
1182 0
|
索引 存储 调度
WinXP下USB驱动开发(五)
3.3.2.  程序设计 与传统PC总线(如PCI总线)设备的驱动程序相比,USB设备驱动程序从不直接与硬件对话。相反,它仅靠创建URB(USB请求块)并把URB提交到总线驱动程序就可完成硬件操作。
876 0