nmea 3.2.0 copy "nmea: ^3.2.0" to clipboard
nmea: ^3.2.0 copied to clipboard

An extensible NMEA0183 parser, which also supports validating the checksum. Useful for reading data from GPS devices and other sensors.

nmea #

Pipeline

An extensible NMEA0183 parser.

Take a look at the example to see how to use it.

Usage #

// 1. declare your sentences (use TalkerSentence and ProprietarySentence)
class AbcSentence extends TalkerSentence {
  AbcSentence({required super.raw});
  
  String get data => fields[1];
  
  @override
  bool get valid => super.valid && fields.length == 2;
}

// 2. register your sentences
final decoder = NmeaDecoder()
  ..registerTalkerSentence("ABC", (line) => AbcSentence(raw: line));

// 3. decode a line
final sentence = decoder.decode("\$--ABC,123456789*5D");

// 4. consume your sentences
print(sentence.valid); // true
print(sentence.checksum); // 5D
print(sentence.source); // --
if (sentence is AbcSentence) {
  print(sentence.data); // 123456789
}

You can also use it as a StreamTransformer for a stream of Strings:

final stream = Stream.fromIterable(["\$--ABC,123456789*5D", "\$--DEF,987654321*5D"]);
final transformed = stream.transform(decoder);
transformed.listen((sentence) {
  print(sentence.valid); // true
  print(sentence.checksum); // 5D
  print(sentence.source); // --
  if (sentence is AbcSentence) {
    print(sentence.data); // 123456789
  }
});
4
likes
130
pub points
66%
popularity

Publisher

verified publisherricardoboss.de

An extensible NMEA0183 parser, which also supports validating the checksum. Useful for reading data from GPS devices and other sensors.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

More

Packages that depend on nmea