               Virace GPS Simulator V0.02 自述文件
                           2008.8.8



======================================================================
Virace GPS Simulator是什么？
======================================================================

Virace GPS Simulator（以下简称为Virace）用软件模拟GPS接收器输出的GPS语
句，通过串行口输出到GPS应用软件。用键盘或鼠标控制Virace而模拟实际GPS接
收器的运动，从而在室内测试GPS导航软件等。

Virace是手动实时控制的，不是轨迹回放软件。为了控制灵活方便，Virace定义
了许多鼠标及键盘动作。经过少许试用，就可以对照一个大比例尺的导航地图以
超过正常驾车速度行驶在市区及郊区路上。Virace是自由驾驶的模拟器，你可以
自由驾驶到任何地方。



======================================================================
Virace运行在什么操作系统下？
======================================================================

Windows。Windows下的GPS软件可以直接测试。

Windows下有微软的Device Emulator，因此部分与Device Emulator兼容的PPC、
SP软件可以在Device Emulator中模拟测试，由Virace提供GPS信号。

也可以将Virace输出到蓝牙的输出COM口，测试使用蓝牙GPS模块的PPC/SP及
Symbian S60等GPS软件。



======================================================================
Virace的特点
======================================================================

可选与PC版OziExplorer交互运行。通过Ozi API，在Ozi中双击地图上的某点，
Virace就立即跳跃至该点；单击地图上的某点，则以当前速度向该点行驶。

最多3路COM口输出，加1路Ozi输出。每路的参数是独立选择的，且可以独立启停。

支持虚拟串口。与Eltima Virtual Serial Port ActiveX Control V2.5及对应的
Eltima Virtual Serial Port Driver兼容。注：Eltima Virtual Serial Port
是共享软件，一切权利归其所有人。Virace的发行包内不包括该虚拟串口驱动及
控件，请自行购买或下载试用版。

多种转向方式。鼠标滚轮，Ozi中单击，键盘左右箭头等。另有键盘45度及10度转
向键。键盘左右箭头及鼠标滚轮的转向灵敏度可自定义。

多个预设的速度键及上下箭头加减速，另外可随时暂停（速度为0，但依然输出GPS
信号）。

在退出时自动保存当前位置（经纬度、速度、方位角等）及所有选择的参数，下次
运行时自动恢复上次退出时的状态。

Virace是绿色软件，不写注册表，无需安装，不向其他目录安装文件。但所支持的
虚拟串口软件需要安装才能运行，在安装过程中会访问注册表。

支持3种经纬度显示及输入方式（度、度分、度分秒）。

随时向粘贴板复制当前经纬度，3种格式任选（度、度分、度分秒）。

支持常用的4种NMEA语句：RMC、GGA、GSA、GSV。

可选总在最前。

与Microsoft Device Emulator兼容。

超小的尺寸，极低的CPU资源占用。

GPS信号输出周期可调，最多可模拟10Hz的GPS。

运行状态及4路输出（Ozi+3路串口）状态显示。对虚拟串口，可显示对方是否
已打开该串口。

输出到GPS的速度可设立上下限。

输出到GPS的时间可提前、延后、压缩、扩张。



======================================================================
Virace能做什么？
======================================================================

测试GPS软件。比如不按规划路径行驶时的情况，转向提示，锁路（吸路）阈值，
昼夜转换，测速报警，熟悉目的地地图情况等。

制作轨迹。输出到可记录NMEA语句或轨迹的GPS软件，即可把行驶的轨迹记录下
来用作其他轨迹播放软件使用。

同时多路输出，从而比较不同的GPS软件在同一地点的情况。



======================================================================
Virace不能做什么？
======================================================================

不能播放轨迹。

目前版本不能自己记录轨迹。需借助其他软件记录。

目前版本不支持Garmin协议。但可通过GPSGate转接仿真Garmin协议。

对CE一体机上的GPS软件，若GPS软件无法在Device Emulator中运行，则无法借助
Virace测试，除非能把PC的物理串口接到CE一体机的CPU串口上。



======================================================================
文件列表
======================================================================

Virace0.02chs.exe    简体中文版主程序
Readme0.02chs.txt    本自述文件
OziAPI.dll           Ozi API的接口，需要与Virace在同一目录，或放入
                     Windows的System32目录下
Virace0.02chs.ini    配置文件（发行的压缩包内无，运行后自动生成），总
                     是与主程序具有相同的基本文件名，且在同一目录下
Virace0.02chs.chm    简体中文版帮助文件（暂缺）



======================================================================
安装运行
======================================================================

Virace无需安装，解压压缩包后直接运行Virace即可，退出时在相同的目录下生
成.ini配置文件，所有的配置改变都记录在.ini文件中，要想恢复缺省配置删除
.ini文件即可。



======================================================================
主要操作
======================================================================

绝大部分参数设置的是最常见值，一般无需改变。若想恢复初始设置，先退出
Virace，删除.ini文件，再次启动Virace即可。

运行后右键点击面板，出现菜单，选“选项”，在“输出1～3”之一或多个勾选
“启用”，设置为自己的COM口号，并根据需要决定是否勾选“虚拟串口”，并
确认RMC、GGA等已勾选，按确定后回到面板按Run按钮即可。

若与Ozi交互，需Ozi已处于运行状态并已调入地图。右键点击面板，出现菜单，
选“选项”，在“输出0(Ozi)”勾选“启用”，并确认RMC、GGA等已勾选，按确
定后回到面板按Run按钮即可。其后可在Ozi中单击地图某点，Virace将驶向该点；
双击地图某点，Virace直接跳跃至该点。

按Run按钮（就是一般媒体播放器中的Play按钮样子的那个）将启动目前已
“启用”，但未启动的输出。Run按钮为灰色时表示当前没有待启动的输出。

按Pause按钮暂时将速度置0，但依然将当前坐标通过选择的串口及Ozi输出，再次
按Pause按钮将恢复原速度。

按Stop按钮停止输出GPS语句，若当前启动了多路输出，则弹出一个对话框询问要
停止哪些路输出。

面板上的状态指示：
输出：代表输出0～3
端口：n表示COMn；Vn表示虚拟COMn。输出0总是显示OZI
状态：黑色指示灯：未在选项中启用
      灰色指示灯：已在选项中启用，但未启动，按Run按钮将会启动该路输出
      红色指示灯：出错
      蓝色指示灯：虚拟串口的输出表示已启动，但对方未打开；
                  Ozi表示已启动，但不向Ozi输出NMEA语句；
                  非虚拟串口不会显示蓝色
      绿色指示灯：虚拟串口的输出表示已启动，且对方已打开；
                  Ozi表示已启动，且向Ozi输出NMEA语句；
                  非虚拟串口表示已启动（非虚拟串口无法感知对方是否打开）


======================================================================
鼠标及键盘
======================================================================

鼠标右击出现菜单，选其中的“快速帮助”会显示全部鼠标及键盘操作

双击面板按当前经纬度格式调出输入当前位置的对话框

鼠标滚轮：转向。转向灵敏度可在“选项->杂项”中定义，负值则反转方向

单击鼠标滚轮：Pause

Ozi中单击地图某点，驶向该点

Ozi中双击地图某点，跳跃至该点

Enter：快速帮助

F1：chm帮助（暂无对应的chm文件）

F2：Run

空格：Pause

Esc：Stop

左右箭头：转向，可按住连续转向，在“选项->杂项”中可按3段设置灵敏度

Z或<：左转向45度

X或>：右转向45度

Q或O：左转向10度

W或P：右转向10度

F5、F6、F7、F8：方向设置为正北、正东、正南、正西

上下箭头：加减速

~ 1 2 3 4 5 6 7 8 9 0：速度分别设为 5 10 20 30 40 50 60 80 100 120 0 Km/h

A或L：向左跳跃一步，方向不变，可按住拍发。步长可在“选项->杂项”中定义

S或分号：向右跳跃一步，方向不变

Y H B G：向北、东、南、西跳跃一步，方向不变

U N V T：向东北、东南、西南、西北跳跃一步，方向不变

按住Ctrl再按跳跃键：10步

按住Shift再按跳跃键：100步

按住Ctrl及Shift再按跳跃键：1000步



======================================================================
常见问题及解答
======================================================================

----------------------------------------------------------------------
何时需要勾选“选项”中的“虚拟串口”？
----------------------------------------------------------------------
要从PC真正存在的物理串口输出，不选“虚拟串口”。

被测软件为虚拟串口（比如GPSGate的Virtual COM，蓝牙的输出串口等），不选
“虚拟串口”。

被测软件要打开的是已存在的串口，选“虚拟串口”。比如Virace输出到Device
Emulator、GPSMapEdit、GlobalMapper、GPSGate的普通COM口等。


----------------------------------------------------------------------
被测软件与Virace运行顺序有何要求？
----------------------------------------------------------------------
若Virace用虚拟串口输出，则Virace先Run，再运行被测软件。结束时先停止被
测软件，再退出Virace，否则Virace退出时被测软件尚未关闭串口，Virace无法
释放自己创建的虚拟串口，在退出时显示警告信息。

若被测软件负责创建虚拟串口，则先运行被测软件。


----------------------------------------------------------------------
感觉在“选项”中改变某路输出的“启用”、COM口号等时不起作用
----------------------------------------------------------------------
需要下次Run时才起作用。

但改变某路输出的“时间间隔”及NMEA语句的选择是立即起作用的。


----------------------------------------------------------------------
如何配置Device Emulator的串口映射？
----------------------------------------------------------------------
在“配置->外围设备->串行端口0”中选择Virace创建的虚拟COM口号即可。比如
Virace中输出的是虚拟COM3，则在“配置->外围设备->串行端口0”中选择COM3
即可。注意若有带NULL字样的，不要选择。

相应地在被测GPS软件中设置使用COM1（注意与Device Emulator中的串行端口0
编号不同，Device Emulator中配置的是串行端口0，被测GPS软件就用COM1），
若被测GPS软件不支持COM1，需要在Windows Mobile中运行GPSGate虚拟出被测
GPS软件认可的COM口号。


----------------------------------------------------------------------
如何沿道路行驶？
----------------------------------------------------------------------
若被测软件是不锁定道路的，比如GPSMapEdit、Ozi等，且地图比例尺足够大，
直接看被测软件窗口即可。

否则需要借助其他软件的显示。若有大比例尺定位又准的Ozi地图，首选Ozi，因
为可以与Ozi交互。或者使用mp文件在GPSMapEdit中显示也可（用Level0显示）。
这时就需要Virace的多路输出功能了。


----------------------------------------------------------------------
如何获得大比例尺定位又准的Ozi地图？
----------------------------------------------------------------------
可用mp文件在GPSMapEdit中导出为Ozi地图。注意关闭Show Labels，这样地图干
净些。

也可用GlobalMapper转换，注意事先在GPSMapEdit中删除Level0以外的层，否则
在GlobalMapper中各层糊在一起。

在GlobalMapper中导出mp为dxf文件，再在Adobe Illustrator CS3中导入dxf，
加工后导出为位图文件，可以制作细腻漂亮的Ozi地图，但操作步骤较多。


----------------------------------------------------------------------
感觉被测软件屏幕显示与Virace操作间有较大延迟
----------------------------------------------------------------------
操作时观看的显示软件的那路输出的“时间间隔”选小一些，比如200ms，当然
要求显示软件的刷新率能跟上。Device Emulator非常耗CPU资源，不建议作为操
作时观看的显示。


----------------------------------------------------------------------
Ozi输出的“时间间隔”已选为200ms，但感觉Ozi中的箭头好像1秒才动一次
----------------------------------------------------------------------
在Ozi中将Configuration->Moving Map->Screen Update Rate选为0即可。


----------------------------------------------------------------------
为什么在有的软件中当GPS速度为0或很小时Virace改变座标或方位角不起作用？
----------------------------------------------------------------------
有些GPS软件在收到的GPS速度很小时，为了防止真实GPS的静态漂移现象，而做
出的过滤措施。对这种软件，在用真GPS时，需要你动起来。在Virace中，如果
你确实需要停下来时改变座标等，可以这样做：

在“选项->GPS”中设“下限”为10，再在面板按数字0键，将速度设为0。这样
你的位置不再自动改变，而输出到GPS软件的速度是10Km/h。再在Virace中改变
座标等就可以在GPS软件中更新了。


----------------------------------------------------------------------
为什么Virace经GPSGate输出到Device Emulator不工作？
----------------------------------------------------------------------
这是GPSGate与Device Emulator之间的兼容问题，用Virace的虚拟串口直接输出
到Device Emulator即可。


----------------------------------------------------------------------
为什么输出到Garmin nRoute不工作？
----------------------------------------------------------------------
Garmin nRoute需要Garmin协议，请用GPSGate的Virtual COM / Garmin Emulator
输出转接。


----------------------------------------------------------------------
“速度”与“GPS速度”有何区别？
----------------------------------------------------------------------
速度是运动的真实速度，GPS速度是输出到被测软件的速度，两者可以相同，也
可以不同。比如想以200Km/h的速度驾驶，又不想听被测软件频繁的超速报警声，
可以将GPS速度上限定在50。一般GPS导航软件使用GPS输出的速度，而不是通过
经纬度的变化自己计算速度。

上下限的设置在“选项->GPS”中

GPS速度与上下限的关系：

    若 下限>上限，则 GPS速度=上限；

    否则 下限<=GPS速度<=上限（即若速度介于上下限之间，则GPS速度=速度，
                              否则受上下限约束）


----------------------------------------------------------------------
为什么Virace显示的座标与被测GPS软件显示的座标有时有小差距？
----------------------------------------------------------------------
这可能是一下几个因素的组合：

1- 大部分用于国内的GPS导航软件工作在伪经纬度座标，会把接收到的GPS座标
   偏移几百米；

2- GPS导航软件工作在锁路状态，会自动把位置调整到附近的路上。某些导航软
   件就没有非锁路状态；

3- Virace在开启多路输出时，面板显示的刷新速率有可能比输出到某一路输出
   的速率快，因此两者显示的有时不是一个时刻的位置，有可能相差几百毫秒，
   若速度较快的话会有一点误差。通过在Run前将4路输出的“时间间隔”设为
   完全一致，就可以避免这一因素。


----------------------------------------------------------------------
为什么在OziExplorer 3.95.4q PC版中点击地图时Virace改变的方向不准？
----------------------------------------------------------------------
目前初步测试OziExplorer 3.95.4q PC版（OEM）有下面的问题：

1- 载入的轨迹与地图相差几百米，但地图显示的座标正确；

2- 连接GPS后，表示GPS当前位置的箭头与从GPS收到的座标相差几百米。

由于原因2的存在，若使用的地图比例尺较大（也就是每像素代表的米数较小，
比如市区街道的详细地图），点击后箭头运动的方向感觉具有较大误差，其实计
算得到的角度是准确的，关键是箭头不在正确的位置处。但若使用比例尺较小的
地图，几百米的误差就难以发觉了。

3.95.4q的问题也许是原版本身的问题，更有可能是OEM不彻底造成的。还是用
3.95.4m吧。


----------------------------------------------------------------------
为什么Virace通过蓝牙适配器输出，在手机中的GPS软件有的能接收，有的不行？
----------------------------------------------------------------------
这似乎绝大部份不是Virace的问题，而是Windows的蓝牙适配器+蓝牙驱动与蓝牙
GPS模块在蓝牙连接过程上的差异造成的。有些手机中的GPS软件会重试蓝牙的连
接就可以。对不能接收的GPS软件，在蓝牙适配器及驱动相同的情况下，更换各
种PC端的GPS模拟器，都不能让手机中的GPS软件正常接收，所以说应该不是
Virace的问题。



======================================================================
已知问题
======================================================================

暂无chm帮助文档。

初步测试Virace所支持的虚拟串口与Win CE5.0的Device Emulator 1.0兼容性不
好，GPS软件收不到信号。



======================================================================
版本历史
======================================================================

V0.02 2008.8.8

    各路输出分别启停。

    可选连接Ozi但不向Ozi输出NMEA语句。

    增加GPS速度下限。

    增加时间缩放因子。

    改善界面状态指示。对虚拟串口，可显示对方是否已打开该串口。

    界面美化。



V0.01 2008.7.21

    初始版本。



======================================================================
版权及分发
======================================================================

Virace是免费软件，可自由使用。

可通过网络等手段自由分发Virace，但需要保持Virace包的完整性，请勿自行改
变压缩包内已有文件的任何内容。

Virace的作者对使用Virace的用户不承担任何责任。



======================================================================
Bug报告及建议
======================================================================

virace@sina.com
