determineODIDMessageType function
Returns ODID message type based on received message header. Throws an exception if unable to determine.
Implementation
Type determineODIDMessageType(Uint8List messageData) {
// Each message has to be min. 25 bytes
if (messageData.length < maxMessageSize) {
throw OdidMessageLengthMismatch(messageData.length);
}
// Header is always the first byte
final header = messageData[0];
// First 4 bits encode message type
final type = (header & 0xF0) >> 4;
final messageType = MessageType.getByValue(type);
if (messageType == null) {
throw UnknownOdidMessageType(type);
}
return messageType.toODIDMessageType();
}