#[repr(u8)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum ChangerError {
HopperEmpty = 1,
HopperJam = 2,
HopperFraud = 3,
HopperFault = 4,
CoinAcceptorJam = 101,
CoinAcceptorFraudAttempt = 102,
CoinAcceptorFault = 103,
CoinAcceptorToManifoldOptoFault = 104,
CashboxFull = 251,
CashboxMissing = 252,
Other = 255,
}
impl From<ChangerError> for u8 {
fn from(error: ChangerError) -> Self {
error as u8
}
}
impl From<u8> for ChangerError {
fn from(value: u8) -> Self {
match value {
1 => ChangerError::HopperEmpty,
2 => ChangerError::HopperJam,
3 => ChangerError::HopperFraud,
4 => ChangerError::HopperFault,
101 => ChangerError::CoinAcceptorJam,
102 => ChangerError::CoinAcceptorFraudAttempt,
103 => ChangerError::CoinAcceptorFault,
104 => ChangerError::CoinAcceptorToManifoldOptoFault,
251 => ChangerError::CashboxFull,
252 => ChangerError::CashboxMissing,
_ => ChangerError::Other,
}
}
}