Message.parse constructor

Message.parse(
  1. Uint8List data
)

Parses a Message from the input byte-array.

Implementation

factory Message.parse(Uint8List data) {
  final mti = hex.encode(data.take(2).toList()).toUpperCase();

  final bitmap = data.sublist(2, 10);
  final hexmap = hex.encode(bitmap);
  final v = int.parse(hexmap, radix: 16);
  final pb = v.toRadixString(2).padLeft(64, '0');
  final message = Message(mti);

  final parser = _MessageParser(data);

  for (int i = 1; i < 64; i++) {
    int o = i + 1;
    if (pb[i] != '1') {
      continue;
    }
    final field = _valueOf(o);

    final fieldData = parser.parse(field);
    message.set(field.no, fieldData);
  }

  return message;
}