diff --git a/src/message.rs b/src/message.rs index 11a399a..1e27912 100644 --- a/src/message.rs +++ b/src/message.rs @@ -188,7 +188,7 @@ impl Protocol300Message { return Err(MessageDecodingError::LengthMismatch()); } - let message_identifier = match MessageIdentifier::try_from(bytes[2]) { + let message_identifier = match MessageIdentifier::try_from(bytes[2] & 0x0F) { Ok(id) => id, Err(e) => { error!("Failed to decode message: invalid message identifier byte 0x{:02X}", bytes[2]); @@ -196,7 +196,7 @@ impl Protocol300Message { } }; - let function_code = match FunctionCode::try_from(bytes[3]) { + let function_code = match FunctionCode::try_from(bytes[3] & 0x0F) { Ok(fc) => fc, Err(e) => { error!("Failed to decode message: invalid function code byte 0x{:02X}", bytes[3]);