GPS Mod Driver
This Driver installs between your gps applcation and the GPSID driver that reads the hardware gps data.
Lag is compensated, by guessing your position 'some number' of milliseconds in the future, current course and speed changes are included i the guess.
It corrects for invalid data in the gps strings, DOP values of 666.6, Heading values of 'NaN' (Not A Number).
Speed and course are reported, eevn though the distance traveled is less than 30 meters
(For versions before RC1, see post number 2 below)
For the time being - Always soft reset just before un-installing or upgrading the dirver
Driver automatically assigns itself to a free COM port on installation - Should safe for ALL Devices
Garmin Moble XT, users: Read This Post
USAGE:
- Install the driver cab, change your application to the indicated port, instead of the original com port.
- Edit the registry values (for tweeks) anytime the port is closed.
Registry Values:
[HKEY_LOCAL_MACHINE\Drivers\Builtin\Serial5]
Normally you do not need to touch anything under this key.
Flags: 0, Set this to 5 (Don'tLoad | Unload) to Stop driver from loading on next Soft Reset
Index: 1, The port GpsModDriver is loaded under.
This value requires a soft-reset to effect a change, Set this only if you don't want the next free port assigned by windows. Extra Caution: Setting this value to a port that your phone is already using may cause the need to reset your phone to factoy (last flash)
[HKEY_LOCAL_MACHINE\Software\Mach2003\GpsModDriver]
All values are DWord:
DeltaDistance: 20, in Meters times 10 to update course and speed (20 = 2.0 meters)
DeltaSpeed: 20, in kph times 10 to update course and speed (5 = 0.5 kph)
DeltaTime: 10000, in milliseconds to update course and speed
EnableDop: 1, allow the driver to correct "666.6"
EnableCourse: 1, allow the driver to correct Course
EnableSpeed: 1, allow the driver to correct speed
EnableLogs: 0, write extensive log information to "\GpsModDriver.txt"
LagAdvance: 2000, Number of milliseconds to project your position into the future to try and eliminate lag
SleepTime: 1000, Number of milliseconds to wait for doog data, before returning an empty buffer.
GpsModDriver will automatically change some of the GPSID values to suit itself.
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers]
"InputBufferSize"=dword:0400
"OutputBufferSize"=dword:0400
"SleepOnNoData"=dword:01f4 (will be set to SleepTime, all three layers will use the same timeout value)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\GPSOneDevice]
"PollInterval"=dword:01f4 (will be set to SleepTime, all three layers will use the same timeout value)
These two are read. (and changed using the QueStub program for Garmin Users), these are normally set with the standard 'External GPS' control panel.
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer]
"DriverInterface"="COM4:"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer\ActiveDevice]
"Index"=dword:00000004
There are Other GPSI values you may want to change as well:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver]
"IsEnabled"=dword:1
"MaxLogFileSize"=dword:0
"CurrentLogFile"=""
"OldLogFile"=""
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers]
"RetryWaitOnError"=dword:3
Version:
RC1 - Release Candidate Number 1
- Revamped the entire driver code
- Changed all ..\serial5 optional reg to ..\Mach2003 to avoid the security problems with removing keys under "drivers"
-
Reg change ruins the existing UI, Also requires updated QueStub
- Added SleepTime, and hard coded buffer size to 1024 bytes.
- EnableCourse now allows a 2 to allow simple averaging of two readings filtered to course changes under 67.5 degrees.
- EnableSpeed now allows a 2 to allow simple averaging of two readings, filtered on DeltaSpeed.
- LagAdvance now uses change of speed, and change in course to better guess your advance position
- Driver now reads an entire gps buffer, processes it, then forwards it to the application, older driver did one sentence at a time. This is much more efficient, way less cpu time is wasted, gps data arrives at your application up to 500ms earlier.
- Setup.dll (runs on cab install, and on uninstall) updated, now allows backup and restore of your ..\Mach2003 reg values on upgrade install
- Setup.dll more install/uninstall bugs fixed
RC2:
- Fixed an seror calculating average course, and speed, these also effect LadAdvance (even if EnableCourse or EnableSpeed, are set to 0, or 1, unfiltered).
- Changed default DeltaDistance and DeltaSpeed on install to 50 each.
RC3:
- Removed 10 ms delay on read, fix for TomTom users.
If upgrading from the 0.x version only: Since the reg keys have changed, it will be best to uninstall any existing driver, soft reset, and then install the RCx version clean.
Also attched: zipped the latest raw dll file for direct placement in windows folder, when driver is already installed.