In Windows Mobile 5, we first introduced the GPS Intermediate Driver. I describe why it went into a WM release rather than general embedded here. In CE 6.0, I'm happy to announce that GPSID did make it into the product for real, as promised (or as close to promising in public as the lawyers/marketing/pr/all my other friends would let me).
Unfortunately the documentation did not make it into CE 6! This was a snafu I apologize for, but the good news is that the WM5 docs will work fine for GPSID in CE 6.0. You can check the WM5 docs out here.
GPSID itself changed very little between WM5 and CE 6. In fact, for the app developer there shouldn't be any difference. The key differences are for OEMs and for those writing GPS device drivers:
* In WM5 I only communicate with NMEA generating GPS devices. In CE 6.0, if the GPS driver writes a small shim layer then they can have GPSID talk to them directly without going through the hassle of generating an NMEA string only to have GPSID parse it. The WM5 docs here describe this as being to be implemented in the future - the future is now. You'll also need to check out here to setup the registry for this properly, namely the poll driver information.
* WM5 uses SYSGENs under the covers to decide which components it wants, but this isn't exposed to OEMs. So if you want GPSID in your image as a general embedded OEM, you'll need to set SYSGEN_GPSID=1. This will put into your ROM gpsid.dll (GPS service itself) and GPSAPI.dll (the link DLL for applications).
* As I called out in a previous post, GPSID is now a service whereas in WM5 is was a device driver.
[Author: John Spaith]