import 'dart:typed_data';
import 'dart:convert';
class MqttBinaryParser {
MqttBinaryParser._();
static const int minStructSize = 44;
static const int fullStructSize = 64;
static Map<String, dynamic>? parseMqttInfo(Uint8List data) {
try {
if (data.length < minStructSize) {
print('MQTT binary parser: expected at least ${minStructSize} bytes; got ${data.length}');
return null;
}
print('Binary MQTT parser: parsing ${data.length} bytes');
final byteData = ByteData.sublistView(data);
int offset = 0;
final result = <String, dynamic>{};
final devsnValue = byteData.getUint32(offset, Endian.little);
result['devsn'] = devsnValue.toRadixString(16).toUpperCase().padLeft(8, '0');
offset += 4;
result['rev'] = byteData.getUint8(offset);
offset += 1;