toPacket method

  1. @override
String toPacket()
override

toPacket returns the packet in the format of Layrz Protocol v3.

Implementation

@override
String toPacket() {
  String payload = '${timestamp.millisecondsSinceEpoch ~/ 1000};';
  payload += '${position.latitude ?? ''};';
  payload += '${position.longitude ?? ''};';
  payload += '${position.altitude ?? ''};';
  payload += '${position.speed ?? ''};';
  payload += '${position.direction ?? ''};';
  payload += '${position.satellites ?? ''};';
  payload += '${position.hdop ?? ''};';

  List<String> extraList = [];
  for (String key in extra.keys) {
    extraList.add('$key:${extra[key]}');
  }

  payload += '${extraList.join(',')};';

  String crc = calculateCrc(payload.codeUnits).toRadixString(16).padLeft(4, '0').toUpperCase();

  return '<Pd>$payload$crc</Pd>';
}