PeterFoot:Regarding the StartApplication call you can bring your own application to the foreground to show it in front of TomTom. I'll check the underlying code to see if there is a reason for starting in the foreground.
How would I go about doing that? I've tried something like:
void procedure(){
Navigator.StartApplication();//now the tomtom navigator screen is shown.
this.BringToFront();//nothing changes, tomtom still in the foreground.
}
PeterFoot:Is TomTom updating to the location you are passing in? I'm not entirely
sure but it's probably expecting more than just the GPRMC sentence. It
has been tested with data retrieved off actual GPS units connected
indirectly and from text files containing actual logs from a real
session.
I'm still waiting for the Navigator software I ordered off the net. I have the InTheHand wrappers and theTomTom SDK but not the Navigator.However , the SDK came with the Navigator6 CAB so I can test a small section of the InTheHand wrappers but for some things (like updating position) the screen just says "no maps found" or I get a "NoMapOpen" error. So until the navigator maps ship, I am limited in my testing ability.
Any chance you could post an example of the logs you used for testing?
For reference, I was using the TomTom C++ example, in their documentation.
TomTomDocs:/*Enables external GPS input coming from the user instead
of GPS input supplied via the NAVIGATOR itself. Upon success, returns
the window descriptor. The user should then send GPS messages (in
NMEA-183 format) via WM_COPYDATA message to the specified window.*/
CTomTomAPI::TExternalGPSResult gpsres;CTomTomAPI::TError err;
int res = api.EnableExternalGPSInput(&err, &gpsres);
HWND existingWindow = (HWND)gpsres.iResult;
char* lineBuffer="$GPRMC,093832.000,A,5222.0741,N,00454.2019,E,0.00,86.46,300605,,,36";
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.cbData = numBytesRead;
cds.lpData = lineBuffer;
::SendMessage(existingWindow, WM_COPYDATA, NULL, (LPARAM)&cds);
And as always, thanks again for your help.