If any of this makes sense to you.....I would say go for it !!!
😮
9.1. About External GPS Drivers
You can provide your own GPS positional information to TomTom Navigator. Whilst the GPS support application for TomTom Navigator allows you to connect to a GPS feed through the built−in COM ports, certain applications require a feed which is delivered through a different source, such as a TCP/IP
connection. The mechanism described here also allows multi−plexed GPS/GSM/Telemetry data delivered over a built−in COM port to be demulti−plexed by you − the GPS feed can then be passed on to TomTom
Navigator. Many blackboxes apply this mechanism. When providing your own GPS feed, you may supply NMEA 0183 V2 or SiRF binary data formats.
You must at least supply UTC, Longitude, Latitude, Direction, Speed and HDOP (horizontal dilution of precision).
For NMEA 0183 V2 the RMC, GLL, GGA, GSA, GSV and VTG verbs are recognised.
Caveats: The feed works in one direction only − you will never receive any commands (such as GPS reset) from TomTom Navigator. The "Reset GPS for this location" feature in TomTom Navigator will have no effect, and you will need to implement such features yourself.
9.2. Providing GPS information
9.2.1. Configuring TomTom Navigator
In TomTom Navigator, go to the GPS information screen and select the "GPS" tab. Choose either the "NMEA 0183v2 Driver" or the "SiRF Driver" as your GPS device. The usual COM port drop down list will only allow you to select "Ext Driver".
The driver may be selected programmatically by setting the following registry keys (TomTom Navigator and the GPS support application should not be running on the device):
For an NMEA 0183 V2 feed:
[HKEY_LOCAL_MACHINE\SOFTWARE\TomTom\GPS Engine]
"Enabled"=dword:00000001
"Device"="NMEA 0183v2 Driver"
"Option"="Ext Driver"
For a SiRF Binary feed:
[HKEY_LOCAL_MACHINE\SOFTWARE\TomTom\GPS Engine]
"Enabled"=dword:00000001
"Device"="SiRF Driver"
"Option"="Ext Driver"
Caveats: Changing any other registry keys may render TomTom Navigator unusable.
9.2.2. Providing your own feed
TomTom Navigator installs a Control Panel applet in the \Windows folder on the Pocket PC. It will show up in the System tab of the Settings option on the main Start menu and pops up the GPS support application.
The applet also exports these three functions:
DWORD AttachToTomTomGPSEngine();
VOID DetachFromTomTomGPSEngine(DWORD aHandle);
BOOL CopyDataToTomTomGPSEngine(DWORD aHandle,
DWORD aNumberOfBytes, LPBYTE aBuffer);
To call these functions, include "ttgpsextdriver.h" in your C++ project, provided in the \Sdk\TTNCom\include\ folder. This header file contains all the necessary declarations.
You will need to dynamically load the Control Panel applet, located in the \Windows\ttgpscpl.cpl DLL on the device. After succesfully loading the DLL, use the Windows API function GetProcAddress to find the proper function addresses.
An example is provided with the SDK in the \Sdk\TTNCom\examples\extdriver folder.
9.2.3. DWORD AttachToTomTomGPSEngine( )
Returns: An opaque handle is returned if succesful, otherwise 0 (zero)
Supported Since: GPS 2.00
Creates a session between your application and the TomTom Navigator GPS support application. A session must exist. The returned handle must be passed in to the other functions. Warning: Although it is possible to create multiple simultaneous sessions, this is not recommended, as the receiver of the feed will only recognise one feed stream.
9.2.4. VOID DetachFromTomTomGPSEngine( DWORD aHandle)
Command Parameters:
• DWORD aHandle: the session handle returned by a succesful call to
AttachToTomTomGPSEngine().
Supported Since: GPS 2.00
Terminates a session between your application and the TomTom Navigator GPS support application.
9.2.5. BOOL CopyDataToTomTomGPSEngine( DWORD aHandle,
DWORD aNumberOfBytes, LPBYTE aBuffer)
Command Parameters:
• DWORD aHandle: the session handle returned by a succesful call to
AttachToTomTomGPSEngine().
• DWORD aNumberOfBytes: the number of bytes that you intend to feed to the TomTom Navigator GPS support application.
• LPBYTE aBuffer: a pointer to a buffer of at least aNumberOfBytes bytes containing the data to be fed.
Returns: TRUE (non−zero) if succesful, FALSE (zero) otherwise
Supported Since: GPS 2.00
Synchronously passes your GPS information. Pass the data exactly as it is received from the GPS receiver, including all field and record delimiters. It is not necessary to pass data on exact record boundaries.