gpslib.gif (1100 bytes)GPSCom2 v1.17 / IConnectionPointImplMT v1.12

Welcome to GPSCom2, a simple freeware COM based library which can be used to add GPS support to your Windows applications. GPSCom2 is a standard COM EXE developed in ATL in VC 2017. It is based on the design of the existing shareware GPSCom component of the author which has now been obsoleted by GPSCom2. GPSCom2 internally uses an advanced ATL class called IConnectionPointImplMT to support firing COM events from worker threads different that the threads on which the COM object was originally created. The GPSCom2 code internally used asynchronous IO when reading from the serial port to provide the best performance and avoids the need for polling. Included in the download is prebuilt GPSCom2 binaries for x86 and x64. The GPSCom2 component delivers a simple string value of a sentence back to client applications using the standard COM Connection Point notification mechanism. A set of C++ client classes further abstracts this to provide a simple C++ class with virtual functions for each type of NMEA sentence. These set of classes are provided in the GPSCom2Client\GPSCom2Client.h header file which you can simple include in your existing C++ applications. These classes provide comprehensive support for the following NMEA sentences: $GPRMC, $GPGGA, $GPGSV, $GPGLL, $GPVTG, $GPGSA, $GPGRS & $GPGST. All the parsing of these sentences is handled for you and standard virtual function and parsed structures are available for client applications to code against.

Features
History
Installation & Redistribution
Usage
Contacting the Author

 

 

 

Features

 

 

 

History

v1.17 GPSCom2 / v1.12 IConnectionPointImplMP (17 June 2023)

v1.16 GPSCom2 / v1.11 IConnectionPointImplMP (1 May 2022)

v1.15 GPSCom2 (10 May 2020)

v1.14 GPSCom2 / v1.10 IConnectionPointImplMP (4 April 2020)

v1.13 GPSCom2 (22 December 2019)

v1.12 GPSCom2 (4 November 2019)

v1.11 GPSCom2 (9 September 2019)

v1.10 GPSCom2 (30 June 2019)

v1.09 GPSCom2 (23 June 2019)

v1.08 GPSCom2 / v1.09 IConnectionPointImplMP (18 May 2019)

v1.07 GPSCom2 / v1.08 IConnectionPointImplMP (13 October 2018)

v1.06 GPSCom2 (7 November 2017)

v1.05 GPSCom2 / v1.07 IConnectionPointImplMP (18 May 2017)

v1.04 GPSCom2 / v1.06 IConnectionPointImplMP (7 March 2017)

v1.03 GPSCom2 / v1.05 IConnectionPointImplMP (19 November 2016)

v1.02 GPSCom2 / v1.04 IConnectionPointImplMP (17 December 2015)

v1.01 GPSCom2 (1 May 2010)

v1.0 GPSCom2 / v1.03 IConnectionPointImplMP (1 May 2010)

 

 

 

Installation & Redistribution

The GPSCom2 exe is a standard self-registering COM exe so registration / un-registration is handled using the "/RegServer" or "/UnRegServer" command line parameters. If you are using a MSI based installer, then the recommended way to register the component is to avoid self registration and instead extract the registration details into the MSI tables. GPSCom2 also supports per user registration by the use of the "RegServerPerUser" and "UnregServerPerUser" command line options to GPSCom2. The zip file comes with ready to ship x86 and x64 Unicode release builds of GPSCom2 in the "Release" and "Release64" directories. To compile the included TestClient application you will need to have GPSCom2 already registered.

 

 

 

Usage

To start developing client applications using GPSCom2, all you need to do is #include "GPSCom2Client.h" in your C++ applications. A sample console based VC++ 2017 project is included in the download in the "GPSCom2Client" directory along with the client header file itself to get you started.

To create a connection to a GPS device you can create an instance of the GPSCom2::CClient class and call its Open method to connect to the device. This method exposes standard serial port type parameters to configure the port settings. Then either periodically poll the various NMEA sentence member variables of this class for the GPS values you are interested in. Each member variable's name corresponds to the sentence name. E.g. if you want to obtain your current longitude you would dot into m_RMC.m_Longitude.dValue. Alternatively you can derive a class from CClient and override any virtual functions you need, each of which correspond to the arrival of a specific NMEA sentence. For further information about the various NMEA sentences please consult the NMEA specifications available from http://www.nmea.org/ or public sources such as http://aprs.gids.nl/nmea/.

 

 

 

Contacting the Author

PJ Naughter
Email: pjna@naughter.com
Web: http://www.naughter.com
17 June 2023