modbus_rtu/error/
response_packet.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3pub enum ResponsePacketError {
4 TooShort(usize),
6
7 CRCMismatch { expected: u16, received: u16 },
9
10 UnexpectedResponder(u8),
12
13 InvalidFormat,
16}
17
18impl core::fmt::Display for ResponsePacketError {
19 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20 write!(
21 f,
22 "{}",
23 match self {
24 Self::TooShort(len) => format!(
25 "response packet too short; expected at least 5 bytes but received {len}."
26 ),
27 Self::CRCMismatch { expected, received } => format!(
28 "response CRC mismatch: expected 0x{expected:04X}, received 0x{received:04X}."
29 ),
30 Self::UnexpectedResponder(id) =>
31 format!("response came from unexpected Modbus slave id 0x{id:02X}."),
32 Self::InvalidFormat => format!("response payload format is invalid."),
33 }
34 )
35 }
36}
37
38impl core::error::Error for ResponsePacketError {}