toPacket method
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>';
}