ZylGPSReceiver is an award-winning Delphi & C++Builder component collection that communicates with a GPS receiver (Global Positioning System).
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 compilant GPS receiver connected to one of the serial ports. 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.
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.
The component collection contains 4 components. The following image displays the object model:
ZylCustomGPSReceiver is a custom Delphi & C++Builder component, which is designed to be the base class of any kind of GPS receivers. This component contains an NMEA decoder engine and it works with any NMEA compatible GPS receiver.
You can extend this class easily to process NMEA data from any kind of sources as files, sockets, web services and so on.
Supported NMEA sentences: GPGLL, GPGGA, GPVTG, GPRMC, GPGSA, GPGSV, GPZDA, GPMSS, GPAAM, GPRMB, GPBWC, GPWPL, GPRTE, GPXTE
ZylGPSReceiver (ZylSerialGPSReceiver) is an extension of ZylCustomGPSReceiver, which processes NMEA data from serial, USB or Bluetooth ports. It's thread based, which means that the reading process is handled by a different thread.
ZylUdpGPSReceiver is an extension of ZylCustomGPSReceiver, which processes NMEA data from an UDP socket. It uses Indy 9 socket components (
Как увидеть ссылки? | How to see hidden links?), which is preinstalled in Delphi 6 and later. You can find the full source code of this component in the download package.
Indy 9 is usually used with Delphi 4, Delphi 5, Delphi 6, Delphi 7, C++ Builder 4, C++ Builder 5, C++ Builder 6, later versions using Indy 10.
ZylUdp10GPSReceiver is an extension of ZylCustomGPSReceiver, which processes NMEA data from an UDP socket. It uses Indy 10 socket components (
Как увидеть ссылки? | How to see hidden links?), which is preinstalled in Delphi 2005 and later. You can find the full source code of this component in the download package.
ZylFileGPSReceiver is an extension of ZylCustomGPSReceiver, which processes NMEA data from a text file. You can find the full source code of this component in the download package.
With this components you will be able to develop robust GPS Delphi or C++Builder applications. 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
With ZylGPSReceiver you can also create web distributed applications.
The main idea behind is very simple:
* Create a desktop application or a Windows service that will run locally on the server, collecting gps-data from the receiver and saving them in the database.
*Create a web service that will provide the requested gps-data from the database to the webpages.
The Global Positioning System (GPS) is a worldwide radio-navigation system formed from a constellation of 24 satellites and their ground stations.
GPS uses these satellites as reference points to calculate positions accurate to a matter of meters. In fact, with advanced forms of GPS you can make measurements to better than a centimeter!
In a sense it's like giving every square meter on the planet a unique address.
GPS receivers have been miniaturized to just a few integrated circuits and so are becoming very economical. And that makes the technology accessible to virtually everyone.
These days GPS is finding its way into cars, boats, planes, construction equipment, movie making gear, farm machinery, even laptop computers.
Soon GPS will become almost as basic as the telephone. Indeed, at Trimble, we think it just may become a universal utility.
GPS technology has matured into a resource that goes far beyond its original design goals. These days scientists, sportsmen, farmers, soldiers, pilots, surveyors, hikers, delivery drivers, sailors, dispatchers, lumberjacks, fire-fighters, and people from many other walks of life are using GPS in ways that make their work more productive, safer, and sometimes even easier.
The demo version is fully functional in Delphi and C++Builder IDE, but it displays a nag dialog (the licensed version will, of course, not have a nag dialog and will not be limited to the IDE). The package includes demo programs for Delphi and C++Builder and a help file with the description of the component.