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).round()};';
  List<String> extraList = [];
  params.forEach((key, value) {
    if (value is bool) {
      extraList.add('$key:${value ? 'true' : 'false'}');
    } else if (value is int) {
      extraList.add('$key:$value');
    } else if (value is double) {
      extraList.add('$key:$value');
    } else {
      extraList.add('$key:$value');
    }
  });

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

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

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