Mobile Apps - GPS application crashing -help

Asked By Erik
16-May-07 09:11 AM
I have written a GPS application using C# for my WinMob 5.0 PPC.
Getting the NMEA data into the device and writing it to a file is noe
problem,
BUT when I try to analyze it the application crashes.

It seems to that its not processing fast enough. Have anyone got a example
on how to process NMEA data and get the speed from the GPRMC string?

Erik
GPS
(1)
WM
(1)
NMEA
(1)
SDK
(1)
ID
(1)
QGqAvFmHHA
(1)
ErikYou
(1)
MSFTNGP
(1)
  srharton replied...
16-May-07 12:54 PM
You should not need to process the NMEA sentences with WM5 as WM5 now comes
with an intermediate GPS driver.

--
Simon Hart
http://srhartone.blogspot.com
  Erik replied...
16-May-07 04:12 PM
But i cant find any example -
Im a newbie to this and have problems getting this to work.
Do you have a example available?

Reading from COM 7 - please?

Thank you in advance.

Erik
  Mike Edwards replied...
17-May-07 04:17 AM
I wrote the WM5 version of our application to exclusively use the GPS ID,
and I've run into several problems:

1. Customers don't know how to set it up - we're having to get involved in
helping users configure the device.
2. Some devices don't have the config icon enabled, so we have to go through
the whole 'registry editing' rigmarole to enable it.
3. Some devices don't have it on at all - the Fujitsu-Siemens Pocket Loox
C550 being a good example.
4. Some applications don't work properly with it (Dell Navigation, for
example).
5. Customers don't like having to set it up if they're not going to use more
than one GPS app at a time.

So although it's a great idea from the developers point of view (no NMEA
parsing, share GPS data with other apps) it hasn't worked out so well in
practice. I'm now looking at adding code into our application to support a
direct serial connection as well as the GPS ID, for maximum flexibility.

Erik, show us the code you're using to analyse the NMEA strings, and we'll
see if we can see what's causing it to crash. I have code in various
languages (not c#, though) to split the various fields out of the NMEA
string once the checksum has been checked for validity, but nothing directly
relevant. As I recall it, if you know the checksum is correct, you either
have a null string (some GPS receivers output 0 for stopped, some just
output nothing) or you have a number. The speed is in knots, so you need to
translate that to something more meaningful, but that's about it.

Mike.
  srharton replied...
17-May-07 04:30 AM
Install the WM5 SDK - the SDK comes with a sample.

--
Simon Hart
http://srhartone.blogspot.com
  srharton replied...
17-May-07 04:34 AM
Also see here: http://msdn2.microsoft.com/en-us/library/ms894898.aspx

The above is for WM5.
--
Simon Hart
http://srhartone.blogspot.com
  Erik replied...
21-May-07 04:25 AM
Hi Mike

I have narrowed it down to that it is the processingtime that kill the
application.

Have changed the code to receive the NMEA input line by line - nmealine =
serialport1.readline();
This causes a delay in the decoding - will have to figure out a way to speed
the !decoding".

Is there a place to see how long time a "if" or case etc takes to run thru -
compared to eachother?

Erik
  Mike Edwards replied...
22-May-07 04:30 AM
I do not know of one, other than storing system time in a few vars that you
can examine in the debugger. Search for 'profiling' in case there is a tool
that does it for you.

Mike.
help
to use FakeGPS utility provided with WinMob6 SDK. Either whoever wrote it did not know NMEA standard, or GPS_POSITION documentation is faulty. In the latter longitude and latitude are specified as appears that PRNs provided by are cumulative. That is if a satellite vanishes from GSA NMEA sentence, it still is being reported. Again it could be a problem with fakeGPS or maybe you could just not use thie FakeGPS Tool and go the way of earlyer WM version than yours. You have to specify a new "file driver" in registry and put the NMEA Data in a file which the system is than looking at. More info on that http: / / msdn2.microsoft.com / en-us / library / ms889970.aspx I use this to test my GPS application and it works pretty good. regards, Tom I saw this with the original Windows persists even on WM6. If it exists on a device, then it is back to NMEA stream parsing and supporting all the horrible COM implementations that exist in the world. For this helps, Christopher Fairbairn Yes it does. Thanks!! Henryk In order to make sure the GPS service is running you'll need to pair your GPS device and setup a virtual COM port (through the Bluetooth control panel). Then in the
GPS Sample of WM 6.0 SDK Mobile Apps Hello The GPS Sample on the WM 6.0 SDK is working perfectly on my HTC Artemis (WM 5.0) with integrated GPS. But I wonder how it connects to the GPS Hardware, because there is no COM? I even changed the COM-Port of the intermediary GPS application, and it did still connect? Is this app only working with the intermediary GPS
WM5 GPS Position using GPS Intermediate Driver Mobile Apps Hi, it took me about two days to get the c# GPS Sample project provided with WM 5 / 6 SDK running on my PPC 5 / 6 emulators. Actually I am using the shows the position given from the FakeGPS Textfile. But on my PCC (HTC Trin100 where GPS device is built in) the application never retireves any valid information about the position. It so I can not get the DOUBLE values of the position. I learned that the GPS Intermediate Driver is the "modern" way of connecting to the GPS Hardware being able to use it through different apps at the same time. So I I also read a few articles explaining that one has to change the registry of WM to enable GPS, I wonder if I have to do so and how. I am
GPS sample and Windows Mobile 2005 Mobile Apps Hello, I am currently developing a software that use a GPS device (with .NET 2 and Visual C#) for the Pocket PC environment (Windows Mobile 5) and I have some questions about using GPS Intermediate Driver. Firstly, my Pocket PC is a HTC Avantage X7500 with inbuilt GPS. I have founded the C# GPS Sample available with the SDK for Pocket PC and I have read all the documentation about configuring and using the GPS API. Here is my registry settings for the GPSID : HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ GPS Intermediate Driver Drivers Control Panel Configured Device HKEY_LOCAL_MACHINE \ System \ CurrentControlSet GPS Intermediate Driver Multiplexer HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ GPS Intermediate Driver Multiplexer HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ GPS Intermediate