#[derive(Debug, Copy, Clone, PartialEq, Eq, ethercrab_wire::EtherCrabWireRead)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[repr(u16)]
pub enum AlStatusCode {
NoError = 0x0000,
UnspecifiedError = 0x0001,
NoMemory = 0x0002,
InvalidDeviceSetup = 0x0003,
CompatibilityReserved = 0x0005,
InvalidRequestedStateChange = 0x0011,
UnknownRequestedState = 0x0012,
BootstrapNotSupported = 0x0013,
NoValidFirmware = 0x0014,
InvalidMailboxConfiguration = 0x0015,
InvalidMailboxConfiguration2 = 0x0016,
InvalidSyncManagerConfiguration = 0x0017,
NoValidInputsAvailable = 0x0018,
NoValidOutputs = 0x0019,
SynchronizationError = 0x001A,
SyncManagerWatchdog = 0x001B,
InvalidSyncManagerTypes = 0x001C,
InvalidOutputConfiguration = 0x001D,
InvalidInputConfiguration = 0x001E,
InvalidWatchdogConfiguration = 0x001F,
SubDeviceNeedsColdStart = 0x0020,
SubDeviceNeedsInit = 0x0021,
SubDeviceNeedsPreop = 0x0022,
SubDeviceNeedsSafeop = 0x0023,
InvalidInputMapping = 0x0024,
InvalidOutputMapping = 0x0025,
InconsistentSettings = 0x0026,
FreeRunNotSupported = 0x0027,
SyncModeNotSupported = 0x0028,
FreeRunNeeds3BufferMode = 0x0029,
BackgroundWatchdog = 0x002A,
NoValidInputsAndOutputs = 0x002B,
FatalSyncError = 0x002C,
NoSyncError = 0x002D,
InvalidDcSyncConfiguration = 0x0030,
InvalidDcLatchConfiguration = 0x0031,
PllError = 0x0032,
DcSyncIoError = 0x0033,
DcSyncTimeoutError = 0x0034,
DcInvalidSyncCycleTime = 0x0035,
DcSync0CycleTime = 0x0036,
DcSync1CycleTime = 0x0037,
MbxAoe = 0x0041,
MbxEoe = 0x0042,
MbxCoe = 0x0043,
MbxFoe = 0x0044,
MbxSoe = 0x0045,
MbxVoe = 0x004F,
EepromNoAccess = 0x0050,
EepromError = 0x0051,
SubDeviceRestartedLocally = 0x0060,
DeviceIdentificationValueUpdated = 0x0061,
ApplicationControllerAvailable = 0x00F0,
#[wire(catch_all)]
Unknown(u16),
}
impl core::fmt::Display for AlStatusCode {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let num = u16::from(*self);
f.write_fmt(format_args!("{:#06x}", num))?;
f.write_str(": ")?;
let s = match self {
AlStatusCode::NoError => "No error",
AlStatusCode::UnspecifiedError => "Unspecified error",
AlStatusCode::NoMemory => "No Memory",
AlStatusCode::InvalidDeviceSetup => "Invalid Device Setup",
AlStatusCode::CompatibilityReserved => "Reserved due to compatibility reasons",
AlStatusCode::InvalidRequestedStateChange => "Invalid requested state change",
AlStatusCode::UnknownRequestedState => "Unknown requested state",
AlStatusCode::BootstrapNotSupported => "Bootstrap not supported",
AlStatusCode::NoValidFirmware => "No valid firmware",
AlStatusCode::InvalidMailboxConfiguration => "Invalid mailbox configuration",
AlStatusCode::InvalidMailboxConfiguration2 => "Invalid mailbox configuration",
AlStatusCode::InvalidSyncManagerConfiguration => "Invalid sync manager configuration",
AlStatusCode::NoValidInputsAvailable => "No valid inputs available",
AlStatusCode::NoValidOutputs => "No valid outputs",
AlStatusCode::SynchronizationError => "Synchronization error",
AlStatusCode::SyncManagerWatchdog => "Sync manager watchdog",
AlStatusCode::InvalidSyncManagerTypes => "Invalid Sync Manager Types",
AlStatusCode::InvalidOutputConfiguration => "Invalid Output Configuration",
AlStatusCode::InvalidInputConfiguration => "Invalid Input Configuration",
AlStatusCode::InvalidWatchdogConfiguration => "Invalid Watchdog Configuration",
AlStatusCode::SubDeviceNeedsColdStart => "SubDevice needs cold start",
AlStatusCode::SubDeviceNeedsInit => "SubDevice needs INIT",
AlStatusCode::SubDeviceNeedsPreop => "SubDevice needs PREOP",
AlStatusCode::SubDeviceNeedsSafeop => "SubDevice needs SAFEOP",
AlStatusCode::InvalidInputMapping => "Invalid Input Mapping",
AlStatusCode::InvalidOutputMapping => "Invalid Output Mapping",
AlStatusCode::InconsistentSettings => "Inconsistent Settings",
AlStatusCode::FreeRunNotSupported => "FreeRun not supported",
AlStatusCode::SyncModeNotSupported => "SyncMode not supported",
AlStatusCode::FreeRunNeeds3BufferMode => "FreeRun needs 3 Buffer Mode",
AlStatusCode::BackgroundWatchdog => "Background Watchdog",
AlStatusCode::NoValidInputsAndOutputs => "No Valid Inputs and Outputs",
AlStatusCode::FatalSyncError => "Fatal Sync Error",
AlStatusCode::NoSyncError => "No Sync Error",
AlStatusCode::InvalidDcSyncConfiguration => "Invalid DC SYNC Configuration",
AlStatusCode::InvalidDcLatchConfiguration => "Invalid DC Latch Configuration",
AlStatusCode::PllError => "PLL Error",
AlStatusCode::DcSyncIoError => "DC Sync IO Error",
AlStatusCode::DcSyncTimeoutError => "DC Sync Timeout Error",
AlStatusCode::DcInvalidSyncCycleTime => "DC Invalid Sync Cycle Time",
AlStatusCode::DcSync0CycleTime => "DC Sync0 Cycle Time",
AlStatusCode::DcSync1CycleTime => "DC Sync1 Cycle Time",
AlStatusCode::MbxAoe => "Mailbox AoE",
AlStatusCode::MbxEoe => "Mailbox EoE",
AlStatusCode::MbxCoe => "Mailbox CoE",
AlStatusCode::MbxFoe => "Mailbox FoE",
AlStatusCode::MbxSoe => "Mailbox SoE",
AlStatusCode::MbxVoe => "Mailbox VoE",
AlStatusCode::EepromNoAccess => "EEPROM no access",
AlStatusCode::EepromError => "EEPROM Error",
AlStatusCode::SubDeviceRestartedLocally => "SubDevice restarted locally",
AlStatusCode::DeviceIdentificationValueUpdated => "Device Identification value updated",
AlStatusCode::ApplicationControllerAvailable => "Application controller available",
AlStatusCode::Unknown(_) => "(unknown)",
};
f.write_str(s)
}
}