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 std::fmt::Display for ResponsePacketError {
19 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::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 std::error::Error for ResponsePacketError {}