NMEA-0183 communication protocol
Supported device types and versions
Communication line configuration
Communication station configuration
I/O tag configuration
Errors and problems
Geofencing - localization of position
Literature
Changes and modifications
Document revision
Supported device types and versions
This protocol supports the communication with GPS receivers that send data according to NMEA-0183 standard. It supports only data receive.
Communication line configuration
- Category of communication line: Serial, SerialOverUDP Device Redundant or File I/O.
- Parameters of Serial line are set according to setting of GPS equipment.
File I/O communication line
The implementation of NMEA-0183 protocol supports the reading of files which contains NMEA packets/records. As NMEA-0183 records are text strings with CR-LF at the end, in one row of file must contain one NMEA-0183 record.
The files are searched in the directory according to the setting of parameter "Input file" on the tab "File I/O" in the configuration of line. The file must correspond to a mask according to the parameter "Filename Mask" in protocol of station. The file is analyzed (read) from top to bottom, after processing it is moved to the archive directory according to the setting of parameter "Archive directory" on tab "File I/O" in configuration of line. In this directory, the subdirectories with the time of creation or data analysis are created (see the parameter "Archive subdirectory time mask").
Protocol line parameters
Dialog window of
Line configuration - tab "Protocol parameters", choose the protocol NMEA-0183.
They influence some optional parameters of protocol. You may set the following
parameters for the line:
Table 1
Full name | Meaning | Unit / size | Default value |
---|---|---|---|
Archive Subdirectory Time Mask | A mask which is used to create the archive subdirectories for storing of
the processed files (important only for File I/O lines). Use the following
text string to set mask:: "yy" or "rr" - year (short format), "yyyy" or "rrrr" - year (long format), "mm" - month, "dd" - day. |
- | yyyymm |
Geofencing Polygons Definition File | Full path to a file which contain a definition of polygons (a localization of position in polygon - geofencing). Blank text switches of the localization feature. See the chapter Geofencing - localization of position. | - | - |
Files Checking Period | Time period of loading of source directory. | mi:ss | 01:00 |
Unknown Files Backup Directory | Backup directory for storing the unknown files. | - | - |
After Processing Timeout | Delay after processing of file. | ss.mss | 00.100 |
Future Data Filter | Time filter of data. If the time stamp of received data deviates from the current time by more than defined hours in the future, they are ignored. Set 0 (zero) to ignore the time filter. | hours | 0 |
History Data Filter | Time filter of data. If the time stamp of received data deviates from the current time by more than defined days in the past, they are ignored. Set 0 (zero) to ignore the time filter. | days | 0 |
Additional Error Logfile | Additional error log file for tracing communication errors | - | - |
Communication station configuration
- Communication protocol "NMEA-0183".
- As for Serial and SerialOverUDP Device Redundant lines (i.e. asynchronous serial communication), the address parameter is not required (blank text). The protocol NMEA-0183 does not support the addressing of devices. Data are sent spontaneously. Only one device may be connected to one serial asynchronous communication line.
- As regards File I/O line, the address may be any text string. It can be used for searching of the file with NMEA data for the given station (see the parameter "Filename Mask" on protocol of station).
Station protocol parameters
Dialog window for configuration
of station - tab "Protocol parameters".
They influence some optional parameters of protocol. You can set the following
parameters:
Table 2
Full name | Description | Unit / size | Default value |
---|---|---|---|
Maximum Wait Retry | Retry count of reading response till its completion. Maximum retries of reading of line so that the NMEA packet/record is complete (it is relevant only for Serial and SerialOverUDP Device Redundant lines). |
- | 40 |
Wait Timeout | Delay between the readings of line until NMEA packet/record is complete (it is relevant only for Serial and SerialOverUDP Device Redundant lines). | ms | 50 ms |
Position Data Format | Conversion of data of geographical position from NMEA records GPRMC.3, GPRMI.1, GPGGA.2, GPGLL.1, PGRMF.6 for latitude and GPRMC.5, GPRMI.3, GPGGA.4, GPGLL.2, PGRMF.8 for longitude. You can choose "deg/min" (initial form of NMEA, the same value as it has been read) or "deg" (conversion to degrees). | deg/min deg |
deg |
Speed Units | Conversion of data about speed to required technical unit (GPRMC.7 and GPVTG.3 in knots, GPVTG.4 and PGRMF.12 in km/hour). | knots km/hour |
knots |
Trace Received Data | Show information about received raw data. | YES/NO | YES |
Trace Received Values | Show details about analyzed values of I/O tags. | YES/NO | YES |
Filename Mask | Mask for searching of files with NMEA information (it is important only
for File I/O). Mask must be a text string with support of special items in
braces {}: {N...N} - address of station, 'N' character count must be equal to the length of station address, {yyyy} or {yy} - year (short/long format), {mm} - month (1 to 12), {dd} - day (1 to 31), {hh} - hour (0 to 23), {mi} - minute (0 to 59), {ss} - second (0 to 59). Digit placeholder '*' may be used also at any position in mask. Examples: nmea_data.* nmea_data*.txt nmea_data{NNN}.txt nmea_data{yyyy}{mm}{dd}_{hh}.txt station_{NNNNNN}* |
- | |
Synchronize Time Delta | Positive value activates the correction of system time from GPS data. If
the difference between the system time and time received from GPS is greater
than value of this parameter (in miliseconds), a task that adjusts system time will be started.
Time will be adjusted in small steps to avoid a sudden time-jump which is usually undesirable. Default value of this parameter is 0 and it means that time synchronisation is disabled. |
ms | 0 |
Long Difference Time | If absolute value of a computed time difference between GPS time and system time is greater than parameter Long Difference Time then
the correcton of system time will not be started immediately. Instead KOM detects whether this difference is repeated at least Long Difference Count
times consecutively.
If it does and if absolute value of difference of consecutive time differences is not greater than Long Difference Time then the correcton of system time will be started. Parameters are meant as a protection of random occurence of "out of range" time. Value 0 of parameter Long Difference Time disables this protection. |
sec | 0 |
Long Difference Count | - | 0 | |
Align To Minutes | KOM process publishes only the values received on the edge of new minute (sec = 0). For proper functionality, the polling period must be less than one minute. | YES/NO | NO |
External Command File | Full path to the external command file which is called with the defined period. Empty text string means that the external command file is not used. | - | |
External Command Period | The period for calling external command file. If the value is 0 seconds, the command file is called always before data reading from the particular station. | min:sec | 60 sec |
Call External Command Synchronously | Call external command file synchronously (YES) or asynchronously (NO). | YES/NO | YES |
I/O tag configuration
Allowed types of I/O tags: Ai, Ci, Di, TiA, TiR, TxtI.
The address of I/O tag is in the format:
SSSSS.I
SSSSS - the identification of NMEA record (e.g. "GPRMC")
I - an
index of the order of data in NMEA record. The index is a positive integral
number. 0 = the index of identifier of NMEA record, 1 = index of the first
value.
You can configure a special I/O tag Ci or Ai with address $POLY, which acquires the value of a polygon code, in which was localized the current position. See the chapter Geofencing - localization of position.
You can fined the examples in the table 3.
Table 3
Address | Value type | Description |
---|---|---|
GPGGA.7 | Ci | Number of located satellites. |
GPRMC.3 | Ai | Latitude. |
GPRMC.4 | Ci | Latitude hemisphere, it takes the values 78 (N) or 83 (S). |
GPRMC.4 | TxtI | Latitude hemisphere, it takes the values "N" or "S". |
GPRMC.5 | Ai | Longitude. |
GPRMC.6 | Ci | Longitude hemisphere, it takes the values 69 (E) or 87 (W). |
GPRMC.6 | TxtI | Longitude hemisphere, it takes the values "E" or "W". |
GPRMC.1 | TiR | Time. |
GPRMC.9 | TiA | Date. |
The implementation of protocol requires the receive of NMEA packet/record "GPRMC" (Recommended Minimum Specific GPS/TRANSIT Data). From time data UTC date/time is created a time stamp in this packet. This time stamp is changed from UTC to the local time and then is used to assign the time stamp (value time) in all values of I/O tags.
Geofencing - localization of position
If the file with the definition of polygons is loaded successfully, the localization of position in polygon is activated. The file format is following:
[meno_polygónu1,kód_polygónu1] latitude1 <tab> longitude1 latitude2 <tab> longitude2 latitude3 <tab> longitude3 .... latitudeN <tab> longitudeN [meno_polygónu2,kód_polygónu2] latitude1 <tab> longitude1 latitude2 <tab> longitude2 latitude3 <tab> longitude3 .... latitudeN <tab> longitudeNThe definition of polygon starts with a name and an unique integer code of polygon in the first row. It is followed by all the known border positions of polygon. The border positions of polygon are the numerical data of latitude and longitude separated by tab. You can define 100 polygons at the most in this file.
A simplified example of the file with the definition of polygons:
[SVK,1]49.510531 18.597243
49.508383 18.56925
49.500642 18.544688
49.490084 18.53395 [CZ,2]
49.517426 18.85232
49.516242 18.812956
49.504529 18.778742
49.502553 18.710839
49.507645 18.675815
[PL,3]
50.870486 14.82294
50.869251 14.839542
50.876814 14.867844
50.867136 14.896914
If the localization of the current position, which was gain from the communication in some of polygons, the I/O tag with the address $POLY acquires the value of proper polygon code. The position is searched from the top and from the first definition in the file and ends with the first successful finding of position. If the localization fails, the polygon code 0 is set. Therefore the value (0) is not permitted in the definition of polygon codes.
Errors and problems
The error messages, mentioned below, may occur during the start or communication. It is recommended to activate the monitoring of communication in the configuration of line for easier identification of problem. You can choose it from these levels:
- Monitor (at least)
- Monitor & Disk (recommended)
- Disk (recommended)
When you set "Monitor & Disk" or "Disk", the file "line_name.LOG" occurs in the subdirectory "\TRACE" in application directory on the computer with the running communication process. This file contains all the debug and error messages.
Error: | Unsupported mask item 'maskitem' ! |
Description: | Unsupported item in the mask file that searches the files for loading. |
Error: | Cannot open file 'FileName' ! |
Description: | The opening of the file for reading failed. |
Error: | Unconvertible value: 'ValueString' for I/O tag 'I/O tag_name'! |
Description: | The value, received from NMEA packet/record, cannot be converted on the value of I/O tag. |
Error: | Unconvertible value: 'ValueString' for I/O tag 'I/O tag_name', unsupported type value_type! |
Description: | Value type of I/O tag is not supported. |
Error: | Error in address, I/O tag: 'I/O tag_name', Address: 'PointAddress' ! |
Description: | Address of I/O tag does not correspond to the required format. |
Error: | Checksum ERR! Received=XX, Expected=YY |
Description: | Invalid checksum in the received packet. |
Error: | Cannot open geofencing polygons definition file 'filename'! |
Description: | The file with polygon definition, the value of line parameter "Polygons definition file", has not been found. |
Error: | Problems detected in geofencing polygons definition file 'filename'! |
Description: | The file with polygon definition, the value of line parameter "Polygons definition file", does not correspond to the required specification and was ignored. |
Error: | Error during geofencing position detection for I/O tag 'I/O tag_name'! |
Description: | Upon detection of position in polygon occurred unexpected error. The polygon code is invalid. |
Literature
- http://www.nmea.org
- Reference books for Garmin http://www.garmin.com
Changes and modifications
- August 21, 2009 - localization of position in polygon.
- February 19, 2015 - added new parameter to station parameters.
Document revisions
- Ver. 1.0 - February 8, 2008 - document creating.
- Ver. 1.1 - March 13, 2008 - modification of protocol parameters.
- Ver. 1.2 - August 21, 2009 - updating of document.
- ver. 1.3 - February 19, 2015 - added new parameter to station parameters.
Related pages:
Pridať komentár