NmeaLocationDataSource QML Type

A NMEA location data source object. More...

Import Statement: import Esri.ArcGISRuntime 100.13
Since: Esri.ArcGISRuntime 100.10





Detailed Description

This object will parse specific NMEA messages pushed into it. Valid GGA, GSA, GST, GSV, RMC, VTG messages are parsed and, a AbstractLocationDataSource::locationChanged may be raised. The AbstractLocationDataSource::locationChanged will return a NmeaLocation object. This data source is based on NMEA version 4.11 (November 2018).

The Apple App Store has guidelines and restrictions for apps that communicate with MFi accessories (for example: an external GPS receiver). Apps that use NMEA data need to satisfy the Apple requirements to be accepted in the store. Apps need to declare support via PPID in their submission and the MFi provider needs to list the bundle ID so Apple can cross reference it. For more information see the site, MFi Program.

Property Documentation

outputDatumTransformation : DatumTransformation

The DatumTransformation to be used in the project operation.

If set, this property will be used as the DatumTransformation in the call to GeometryEngine::project(Geometry, SpatialReference). For this property to be used, the outputSpatialReference also must be set.

outputSpatialReference : SpatialReference

If set, calls the GeometryEngine::project(Geometry, SpatialReference) method to generate the output spatial reference.

The projected point will be stored in NmeaLocation::position. If this property is null the NmeaLocation::position will be contain the original incoming x,y,z values from the NMEA data sentence and the receiverSpatialReference.

receiverSpatialReference : SpatialReference

The SpatialReference to be assigned to the output NmeaLocation, the default is WGS84.

By default this will be WGS84 for its horizontal (WKID=4326) and vertical reference systems (WKID=115700), this can be set to a different SpatialReference if a receiver returns locations in a different reference system.

Signal Documentation

void outputDatumTransformationChanged()

Emitted when the outputDatumTransformation property changes.

Note: The corresponding handler is onOutputDatumTransformationChanged.

void outputSpatialReferenceChanged()

Emitted when the outputSpatialReference property changes.

Note: The corresponding handler is onOutputSpatialReferenceChanged.

void receiverSpatialReferenceChanged()

Emitted when the receiverSpatialReference property changes.

Note: The corresponding handler is onReceiverSpatialReferenceChanged.

Method Documentation

void pushData(string data)

Reads the input NMEA data, with which it creates a NmeaLocation.

  • data - The data buffer that contains NMEA data.

The NMEA location data source needs to be started before calling this method.

When pushing data:

  • Each sentence needs to begins with a '$'.
  • Each sentence needs to end with carriage return/line feed sequence.
  • Single or multiple sentences can be pushed at one time. All strings in the buffer will be parsed.
  • There is no explicit limit on the amount of data that can pushed at one time.
  • If a partial sentences are pushed, the data source accumulates (and concatenates) the pushed data until a carriage return/line feed sequence is reached.
  • The data source parses these messages types: GGA, GSA, GST, GSV, RMC, VTG.
  • Each sentence's checksum is validated.
  • Unknown/bad/incorrect sentences are ignored (they do not produce any location, satellite updates etc.).
  • Sentences support up to 256 characters (this is beyond the NMEA spec's 82 character limit to support receiver's that output longer sentences).
  • Messages should be of the form: "$XXYYY,[data]*[checksum]\r\n".

Example: $GPGGA, 092750.000, 5321.6802,N, 00630.3372,W, 1, 8, 1.03, 61.7,M, 55.2,M,,*76 $GPGSA,A, 3, 10, 07, 05, 02, 29, 04, 08, 13,,,,, 1.72, 1.03,1.38*0A $GPGSV, 3, 1, 11, 10, 63, 137, 17, 07, 61, 098, 15, 05, 59, 290, 20, 08, 54, 157,30*70 see https://www.nmea.org/ for more information on the NMEA standard.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.