fromPackets static method
fromPackets creates a List<BleData> from a raw message following this structure: MAC_ADDRESS:MODEL
Implementation
static List<BleData> fromPackets(String raw) {
final parts = raw.split(';');
if (parts.isEmpty) return [];
if (parts.length == 1) return [];
// The parts should be divisible by 2, can be multiple groups
// Separate each group
final List<BleData> devices = [];
for (int i = 0; i < parts.length; i++) {
final part = parts[i].split(':');
if (part.length != 2) {
throw MalformedException('Invalid BLE data definition');
}
final rawMacAddress = part[0];
String macAddress = '';
for (int i = 0; i < rawMacAddress.length; i += 2) {
macAddress += '${rawMacAddress[i]}${rawMacAddress[i + 1]}';
if (i + 2 < rawMacAddress.length) {
macAddress += ':';
}
}
final model = part[1];
devices.add(BleData(macAddress: macAddress, model: model));
}
return devices;
}