namespace PamhagenSysCtrl.Helpers { public enum T1Error { UNKNOWN_ERROR = -1, NO_ERROR = 0, SYSTEM_POWER_ON = 10, SYSTEM_POWER_OFF = 11, RAM_CHECK_ERROR = 20, PROGRAM_BCC_ERROR = 21, BATTERY_VOLTAGE_DROP = 22, EEPROM_BCC_ERROR = 23, EEPROM_WARNING = 26, SYSTEM_RAM_CHECK_ERROR = 30, SYSTEM_ROM_BCC_ERROR = 31, PERIPHERAL_LSI_ERROR = 32, CLOCK_CALENDAR_CHECK_ERROR = 33, ILLEGAL_SYSTEM_INTERRUPT = 34, WD_TIMER_ERROR = 35, IO_BUS_ERROR = 40, IO_MISMATCH = 41, IO_NO_ANSWER = 42, IO_PARITY_ERROR = 43, ILLEGAL_IO_REGISTER = 46, COMMUNICATION_BUSY = 51, FORMAT_ERROR = 52, SCAN_TIME_OVER = 64, NO_END_IRET_ERROR = 80, PAIR_INSTRUCTION_ERROR = 81, OPERAND_ERROR = 82, INVALID_PROGRAM = 83, NO_SUBROUTINE_ENTRY = 86, NO_RET_ERROR = 87, SUBROUTINE_NESTING_ERROR = 88, LOOP_NESTING_ERROR = 89, INVALID_FUNCTION_INSTRUCTION = 98, PASSWORD_PROTECT = 106, ILLEGAL_INSTRUCTION = 110, REGISTER_ADDRESS_ERROR = 111, BOUNDARY_ERROR = 112, MEMORY_FULL = 113, MODE_MISMATCH = 114, REGISTER_ADDRESS_SIZE_ERROR = 115, DUPLICATE_ENTRY_NR = 121, } public static class T1ErrorExtension { public static bool IsError(this T1Error error) { return error switch { T1Error.NO_ERROR => false, T1Error.SYSTEM_POWER_ON => false, T1Error.SYSTEM_POWER_OFF => false, _ => true, }; } public static string GetName(this T1Error error) { return error switch { T1Error.NO_ERROR => "No error", T1Error.SYSTEM_POWER_ON => "System power on", T1Error.SYSTEM_POWER_OFF => "System power off", // TODO _ => "Unknown error", }; } public static string? GetDescription(this T1Error error) { return error switch { T1Error.NO_ERROR => "No error recorded", T1Error.SYSTEM_POWER_ON => "Power on (no error)", T1Error.SYSTEM_POWER_OFF => "Power off (no error)", // TODO _ => null, }; } } }