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.
The component supports US (GPS), Russian (GLONASS) and Chinese (BEIDOU) global positioning systems and GALILEO (EU) support is coming soon.
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).
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 ofZylCustomGPSReceiver, 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 (http://www.indyproject.org), 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 10socket components (http://www.indyproject.org), 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
* 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.
Supported Operating Systems:
Available for: Delphi XE8 (Win32 & Win64), Delphi XE7 (Win32 & Win64), Delphi XE6 (Win32 & Win64), Delphi XE5 (Win32 & Win64),Delphi XE4 (Win32 & Win64), Delphi XE3 (Win32 & Win64), Delphi XE2 (Win32 & Win64), Delphi XE, Delphi 2010, Delphi 2009, Delphi 2007, Delphi 2006, Delphi 2005, Delphi 7, Delphi 6, Delphi 5, Delphi 4, C++Builder XE8 (Win32 & Win64), C++Builder XE7, C++Builder XE6, C++Builder XE5, C++Builder XE4, C++Builder XE3, C++Builder XE2, C++Builder XE, C++Builder 2010, C++Builder 2009, C++Builder 2007, C++Builder 2006, C++Builder 6, C++Builder 5, Turbo Delphi, Turbo C++
- The Delphi 2006 version is fully compatible with Turbo Delphi
- The C++Builder 2006 version is fully compatible with Turbo C++
- Delphi for .NET support was abandoned. You can use our .NET components instead, which are written in C#.
If you have a previous version of the component installed, you must remove it completely before installing this version. To remove a previous installation, proceed as follows:
-Start the IDE, open the packages page by selecting Component - Install Packages
-Select ZylGPSRecPack package in the list and click the Remove button
-Open Tools - Environment Options - Library and remove the library path pointing to ZylGPSReceiver folder
-Close the IDE
-Browse to the folder where your bpl and dcp files are located (default is $(DELPHI)\Projects\Bpl for Delphi, $(BCB)\Projects\Bpl for C++ Builder). -Delete all of the files related to ZylGPSReceiver
-Delete or rename the top folder where ZylGPSReceiver is installed
-Start regedit (click Start - Run, type "regedit.exe" and hit Enter). Open the key HKEY_CURRENT_USER\Software\Borland\<compiler>\<version>\Palette and delete all name/value items in the list related to ZylGPSReceiver. (<compiler> is either "Delphi" or "C++Builder", <version> is the IDE version you have installed)
-Unzip the zip file and open the ZylGPSRecPack.dpk file in Delphi (ZylGPSRecPack.bpk file in C++Builder), compile and install it
and add to Tools/Environment Options/Library (in older Delphi/C++Builder menu) or Tools/Options/Delphi Options/Library/Library Path (in newer Delhi menu) or Tools/Options/C++ Options/Paths and Directories/Library Path & Include Path (in newer C++Builder menu) the path of the installation (where the ZylGPSReceiver.dcu file is located). The component will be added to the "Zyl Soft" tab of the component palette. After you have the component on your component palette, you can drag and drop it to any form, where you can set its properties by the Object Inspector and you can write event handlers selecting the Events tab of the Object Inspector and double clicking the preferred event.
If you still have problems in C++Builder, running an application, which contains the component, then open the project and in C++Builder menu, Project/Options/Packages and uncheck "Build with runtime packages".
-It is indicated to use this component with "Stop on Delphi exception" option deactivated. You can do this from Delphi / C++Builder menu, "Tools/Debugger Options/Language Exceptions/Stop on Delphi exceptions" in older versions or Tools/Options/Debugger Options/Embarcadero Debuggers/Language Exceptions/Notify on language exceptions in newer versions, otherwise you will have a break at all the handled exceptions.