ZylGpsReceiver.NET is an event driven .NET component library that communicates with a GPS receiver.
It returns latitude, longitude, altitude, speed, heading and many other useful parameters of the current position and the parameters of the satellites in view. The component is extended to calculate distances and make conversions between different measurement units.
This component works with any NMEA 0183 compatible receiver connected to one of the serial ports. You can use it also with USB, IrDA and Bluetooth devices, because these devices have a driver that redirects the input from the USB, IrDA or Bluetooth port to a virtual serial port (you can check it in System/Device Manager/Ports). If your USB device is not provided with such a driver, then use a USB controller whose vendor provides a virtual serial port driver, such as FTDI or use a USB/RS-232 adapter. For Garmin receivers you have to install Spanner software.
To connect to an Android smartphone's GPS, you can download GPS2Bluetooth application from playstore and connect your phone to your PC through bluetooth (GPS2BT service).
NMEA 0183 (or NMEA for short) is a combined electrical and data specification for communication between marine electronic devices such as echo sounder, sonars, Anemometer (winds speed and direction), gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the US-based National Marine Electronics Association.
Supported NMEA sentences: GPGLL, GPGGA, GPVTG, GPRMC, GPGSA, GPGSV, GPZDA, GPMSS, GPAAM, GPRMB, GPBWC, GPWPL, GPRTE.
ZylGpsReceiver.NET is written 100% in C#, based on .NET framework and some API calls.
With this component you will be able to develop robust GPS applications based on the .Net framework. Possible applications can be:
* Vehicle Navigation
* Marine Navigation
* Fleet Management
* Emergency Locator
* Geographic Surveying
* AVL and Locating-Based Services
* Personal Navigation or touring devices
* Tracking devices
* Sporting and Recreation
* Farming
* Time synchronization
Classes| | Class | Description |
|---|
 | ArrivalEventArgs |
Provides data for the Arrival event.
|
 | BaseGpsReceiver |
Implements an abstract GPS receiver.
It must be the base class for real GPS receivers.
|
 | BaseGpsReceiverWpfExtensions |
WPF extensions of BaseGpsReceiver class.
|
 | CardinalPointExtensions |
Extension methods for CardinalPoint.
|
 | CompassPictureBox |
Represents a Windows picture box control for displaying a compass.
|
 | ConnectionEventArgs |
Provides data for the Connected and Disconnected events (serial connections).
|
 | DataEventArgs |
Provides data for the Sent and Received events.
|
 | DetectEventArgs |
Provides data for the Detecting / Reconnecting event.
|
 | DmsPositionEventArgs |
Provides data for the Position2DChanged and Position3DChanged events.
|
 | FileConnectionEventArgs |
Provides data for the Connected and Disconnected events (file connections).
|
 | FileGpsReceiver |
Implements a file GPS receiver.
NMEA sentences are loaded from a text file.
|
 | GpsException |
Implements GPS exception class.
|
 | GpsReceiver |
Implements the communication with a serial, USB or bluetooth GPS receiver.
|
 | GpxGpsReceiver |
Implements a GPX file GPS receiver.
GPS positions are loaded from a GPX XML file.
|
 | Logger |
Logger class.
Used for exception logging.
|
 | ManagedGpsReceiver |
Implements the communication with a serial, USB or bluetooth GPS receiver.
If you need only managed code, without any Windows API, you can use this class.
Otherwise we recommend GpsReceiver class.
|
 | NavigationInfo |
Navigation Info class. Contains information about the active route.
|
 | NetworkConnectionEventArgs |
Provides data for the Connected and Disconnected events (network connections).
|
 | NmeaDecoder |
Implements an NMEA decoder.
It works like a GPS Receiver, but you have to feed it with NMEA sentences programmatically from the constructor or with the Decode method.
|
 | NmeaEncoder |
Encodes position to NMEA format.
|
 | ParamEventArgs |
Provides data for the AltitudeChanged, HeadingChanged and SpeedChanged events.
|
 | Position |
Position class contains all the position and current status related data.
|
 | PositionEventArgs |
Provides data for the LatitudeChanged and LongitudeChanged events.
|
 | ReceiverStatus |
Status of the GPS receiver unit.
This class is obsolete, it works only with some old GPS receivers. Use Satellite.SignalToNoiseRatio instead.
|
 | Route |
Route class contains all the parameters of one route.
Routes are generally made up of a series of significant points along your path.
The GPS will tell you the bearing and distance to the next point in sequence as you navigate along your route.
Each point is usually named (in fact, a route is usually just a sequence of waypoints). There are usually at most a few tens of points in a route.
|
 | Satellite |
Satellite class contains all the parameters of one satellite.
|
 | SatelliteEventArgs |
Provides data for the SatelliteReceived event.
|
 | Satellites |
Satellites class contains all the satellites received.
|
 | SatellitesPictureBox |
Represents a Windows picture box control for displaying the satellites in view of a GPS receiver.
Red brush satellite - very low signal
Orange brush satellite - low signal
Yellow brush satellite - medium signal
Light green brush satellite - good signal
Green brush satellite - very good signal
White pen satellite - GPS
Orange red pen satellite - GLONASS
Yellow pen satellite - BeiDou
Blue pen satellite - Galileo
Green pen satellite - QZSS
Black pen satellite - Unknown
|
 | SatellitesSignalPictureBox |
Represents a Windows picture box control for displaying the satellites signal level of a GPS receiver.
Red brush satellite - very low signal
Orange brush satellite - low signal
Yellow brush satellite - medium signal
Light green brush satellite - good signal
Green brush satellite - very good signal
|
 | SentenceEventArgs |
Provides data for the OnNewSentence and OnUnknownSentence events.
OnNewSentenceReceived event occurs when a new valid NMEA sentence is received. The sentence parameter contains the sentence.
OnUnknownSentenceReceived event occurs when a valid, but unknown NMEA sentence is received. The sentence parameter contains the unknown sentence. This event is fired only if you set NmeaSentences property to All and there is an unknown sentence received. In this case you can write your own processing code inside this event handler.
|
 | SerialCommPortExtensions |
Extension methods for SerialCommPort.
|
 | SerialException |
Implements serial exception class.
|
 | TcpGpsReceiver |
Implements a TCP GPS receiver.
NMEA sentences are received on TCP protocol.
Implemented as TCP client.
|
 | Track |
Track class.
Tracks are made up of data gathered automatically from your motion while the GPS is turned ON.
They provide a record of where you've been, and when, so you can later determine your path and speed.
There may be hundreds or thousands of such points in a track, but they are all anonymous.
They don't have names and you can't easily get the location of any particular one.
|
 | UdpGpsReceiver |
Implements an UDP GPS receiver.
NMEA sentences are received on UDP protocol.
Implemented as UDP server.
|
 | Waypoint |
Waypoint class contains all the parameters of one waypoint.
|
 | WaypointEventArgs |
Provides data for the WaypointReceived event.
|
 | Wgs84MapPictureBox |
Represents a Windows picture box control for displaying a WGS84 map.
Draw current position on WGS84 map using a Natural Earth EPSG4326 map.
Keep aspect ratio = 1314:852
|
 | ZoomEventArgs |
Provides data for the ZoomChanged event.
|
Interfaces| | Interface | Description |
|---|
 | IGpsReceiver |
GPS receiver interface.
It is recommended, but not mandatory to implement for GPS receiver classes, which extend BaseGpsReceiver.
|
Enumerations| | Enumeration | Description |
|---|
 | CardinalPoint |
Cardinal Points enumeration type.
|
 | Direction |
Relative directions enumeration type.
|
 | NmeaSentences |
NMEA sentences.
|
 | SatelliteTypes |
Satellite types.
|
 | SerialBaudRate |
Baud rate enumeration type.
It's the measure of how fast data is moving between instruments that use serial communication.
RS-232 uses only two voltage states, called MARK and SPACE.
In such a two-state coding scheme, the baud rate is identical to the maximum number of bits of information, including "control" bits, that are transmitted per second.
|
 | SerialCommPort |
Physical serial port enumeration type.
|
 | SerialDataWidth |
Data bits enumeration type (ByteSize).
Data bits are transmitted "upside down and backwards."
Inverted logic is used and the order of transmission is from least
significant bit (LSB) to most significant bit (MSB).
To interpret the data bits in a character frame, you must read from right to left,
and read 1 for negative voltage and 0 for positive voltage.
|
 | SerialHardwareFlowControl |
Hardware flow control enumeration type.
|
 | SerialParityBits |
Parity bits enumeration type.
An optional parity bit follows the data bits in the character frame.
The parity bit, if present, also follows inverted logic: read 1 for negative voltage and 0 for positive voltage.
This bit is included as a simple means of error checking.
The idea is this: you specify ahead of time whether the parity of the
transmission is to be even or odd. Suppose the parity is chosen to be odd.
The transmitter will then set the parity bit in such a way as to make an odd number of 1's among the data bits and the parity bit.
|
 | SerialSoftwareFlowControl |
Software flow control enumeration type.
|
 | SerialStopBits |
Stop bits enumeration type.
The last part of a character frame consists of 1, 1.5, or 2 stop bits.
These bits are always represented by a negative voltage.
If no further characters are transmitted, the line stays in the negative (MARK) condition.
The transmission of the next character frame, if any, is heralded by a start bit of positive (SPACE) voltage.
|