You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

The NMEA protocol handler parses the NMEA 0183 protocol (f.e. from GPS devices). For input both GenericPush and GenericPull can be used in combination with File or UDP transport handler. This protocol can also be used for output, to write NMEA sentences.

Supported Sentences

DPTDepth of Waterdepth, offset
GGAGlobal Positioning System Fix Data. Time, Position and fix related datatime, latitude, latitudeHem, longitude, longitudeHem, gpsQuality, numberOfSattelites, horizontalDilution, antennaAltitude, antennaAltUnits, geoidalSeparation, geoidalSepUnits, ageOfDgps, differentialRefId
GLLGeographic Position – Latitude/Longitudelatitude, latitudeHem, longitude, longitudeHem, time, status
HDGHeading - Deviation & Variationheading, deviation, deviationDir, variation, variationDir
MTWWater Temperaturedegrees, unit
MWVWind Speed and Angleangle, reference, speed, speedUnit, status
RMCRecomended Minimum Navigation Informationtime, status, latitude, latitudeHem, longitude, longitudeHem, speedOverGround, trackMadeGood, date, magneticVariation, magneticHem, signalIntegrity
RPMRevolutionssource, number, speed, pitch, status
RSARudder Sensor Anglestarboard, sbStatus, portboard, pbStatus
TTMTracked Target MessagetargetNumber, targetDistance, bearing, bearingUnit, targetSpeed, targetCourse, courseUnit, closestPointOfApproach, timeUntilClosestPoint, distanceUnit, targetLabel, targetStatus, referenceTarget, time, typeAcquisition


AIS (Automatic Identification System) MessagefragmentsCount, fragmentId, messageId, channel, message, fillBits
VDOSame as VDM for own shipsee VDM
VTGTrack Made Good and Ground SpeedheadingTrack, trackReference, headingMagnetic, magneticReference, speedKnots, speedKnotsUnits, speedKilometers, speedKilometersUnits

Default Fields

All above mentioned sentences have default fields derieved from Sentence.

beginCharcharThe first character, the nmea sentence starts with (e.g. $ or !)
talkerIdStringThe two digit talker ID (Single character 'P' for proprietary sentence types)
sentenceIdStringMostly three digit sentence ID for standard types mentioned in first column in table above. (Or proprietary sentences, starting with three digit manufacturer code)



  • delay: Delay of reading in milliseconds (Only in GenericPull mode)



NMEA Protocol Handler
/// Read from File
input = ACCESS({source='FileInput', wrapper='GenericPull',
	transport='File', protocol='NMEA', dataHandler='KeyValueObject',
	options=[['filename','...'], ['delay','100']]
/// Read from UDP on Port 4711
inputGps = ACCESS({source='GpsInput', wrapper='GenericPush',
	transport='UDPServer', protocol='NMEA', dataHandler='KeyValueObject',
	options=[['port', '4711']]
/// UDP Broadcast on Port 6003 
output = SENDER({sink='SinkGps', wrapper='GenericPush',
	transport='UDPClient', protocol='NMEA', dataHandler='KeyValueObject',
	options=[['host', ''],['port', '6003']]
}, inputGps)


NMEA Protocol Handler


If you for example only need GPS Positions, you only need to extract latitude and longitude informations from the sentences. As you can see in "Supported Sentences" table, the sentences GGA, GLL and RMC do have the needed information you want to have. To extract the information you want to do a Selection, to get only these sentence types and a Projection, to extract only the needed informations.


NMEA Selection/Projection
/// Listen on UDP prot 4711
input = ACCESS({source='input', wrapper='GenericPush',
	transport='UDPServer', protocol='NMEA', dataHandler='KeyValueObject',
	options=[['port', '4711']]
/// Select GGA, GLL, RMC
gps = SELECT({predicate=KeyValuePredicate('sentenceId="GGA" OR sentenceId="GLL" OR sentenceId="RMC"')}, input)
/// Project only the latitude and longitude 
latLon = PROJECT({paths = [['latitude', 'String'], ['longitude', 'String']]}, gps)
  • No labels