1 #ifndef MARUM_ORO_ERROR_HPP
2 #define MARUM_ORO_ERROR_HPP
5 #include <base/Time.hpp>
7 #define MARALARM_BASE 0x1000
9 #define ACTALARM_BASE 0x2000
10 #define UCMALARM_BASE 0x3000
11 #define LCUALARM_BASE 0x4000
12 #define VISALARM_BASE 0x6000
13 #define ALTALARM_BASE 0x7000
14 #define CANALARM_BASE 0x8000
16 #define MARERROR_BASE 0x5000
18 #define MARALARM_COMMS MARALARM_BASE + 1
20 #define MARERROR_CHECKSUM MARERROR_BASE + 1
21 #define MARERROR_DEVNAK MARERROR_BASE + 2
22 #define MARERROR_PARAMINV MARERROR_BASE + 3
23 #define MARERROR_DEVREPINV MARERROR_BASE + 4
25 #define ACTALARM_ENC_LIN_ALARM ACTALARM_BASE + 1
26 #define ACTALARM_ENC_RANGE_ERR ACTALARM_BASE + 2
27 #define ACTALARM_CTRL_WD_TIME ACTALARM_BASE + 3
28 #define ACTALARM_CTRL_EXT_ENC_MAG ACTALARM_BASE + 4
29 #define ACTALARM_CTRL_EXT_ENC_COMM ACTALARM_BASE + 5
30 #define ACTALARM_CTRL_SH_ENC_MAG ACTALARM_BASE + 6
31 #define ACTALARM_CTRL_WATER ACTALARM_BASE + 7
32 #define ACTALARM_CTRL_SH_ENC_COMM ACTALARM_BASE + 8
33 #define ACTALARM_DRV_CMD_INC ACTALARM_BASE + 9
34 #define ACTALARM_DRV_CMD_INV ACTALARM_BASE + 10
35 #define ACTALARM_DRV_FRAME_ERR ACTALARM_BASE + 11
36 #define ACTALARM_DRV_VOLT_TEMP ACTALARM_BASE + 12
38 #define UCMALARM_AD UCMALARM_BASE + 1
39 #define UCMALARM_DA UCMALARM_BASE + 2
40 #define UCMALARM_EEPROM UCMALARM_BASE + 3
42 #define LCUALARM_FAULT LCUALARM_BASE + 1
43 #define LCUALARM_WATER LCUALARM_BASE + 2
44 #define LCUALARM_WATERLATCH LCUALARM_BASE + 3
45 #define LCUALARM_ACJB LCUALARM_BASE + 4
46 #define LCUALARM_ACJB_WATER LCUALARM_BASE + 5
47 #define LCUALARM_ACJB_WATERLATCH LCUALARM_BASE + 6
49 #define VISALARM_SYNTAX VISALARM_BASE + 1
50 #define VISALARM_BUFF_FULL VISALARM_BASE + 2
51 #define VISALARM_CMD_CANCEL VISALARM_BASE + 3
52 #define VISALARM_NOSOCK VISALARM_BASE + 4
53 #define VISALARM_CMD_NOEXEC VISALARM_BASE + 5
55 #define ALTALARM_SERIAL ALTALARM_BASE + 1
57 #define CANALARM_XMTFULL CANALARM_BASE + 1
58 #define CANALARM_OVERRUN CANALARM_BASE + 2
59 #define CANALARM_BUSERR CANALARM_BASE + 3
60 #define CANALARM_BUSOFF CANALARM_BASE + 4
61 #define CANALARM_RX_OVERFLOW CANALARM_BASE + 5
62 #define CANALARM_TX_OVERFLOW CANALARM_BASE + 6
64 #define MARSTR_COMMS "Communication failure"
65 #define MARSTR_CHECKSUM "checksum error"
66 #define MARSTR_DEVNAK "device Nak"
67 #define MARSTR_PARAMINV "invalid param"
68 #define MARSTR_DEVREPINV "invalid device response"
70 #define ACTSTR_ENC_LIN_ALARM "Encoder Linearity Alarm"
71 #define ACTSTR_ENC_RANGE_ERR "Encoder Out of Range Error"
72 #define ACTSTR_CTRL_WD_TIME "Controller Watchdog Timeout"
73 #define ACTSTR_CTRL_EXT_ENC_MAG "Controller Ext. Enc. Magnet Loss"
74 #define ACTSTR_CTRL_EXT_ENC_COMM "Controller Ext. Enc. Comm Fail"
75 #define ACTSTR_CTRL_SH_ENC_MAG "Controller Shaft Enc. Magnet Loss"
76 #define ACTSTR_CTRL_WATER "Controller Water Detection"
77 #define ACTSTR_CTRL_SH_ENC_COMM "Controller Shaft Enc. Comm Fail"
78 #define ACTSTR_DRV_CMD_INC "Drive Cmd Incomplete"
79 #define ACTSTR_DRV_CMD_INV "Drive Invalid Cmd"
80 #define ACTSTR_DRV_FRAME_ERR "Drive Frame Error"
81 #define ACTSTR_DRV_VOLT_TEMP "Drive U/O Volt or Temp"
83 #define UCMSTR_AD "AD Failure"
84 #define UCMSTR_DA "DA Failure"
85 #define UCMSTR_EEPROM "EEPROM Failure"
87 #define LCUSTR_FAULT "Fault, over-current in channel"
88 #define LCUSTR_WATER "Water Leak detected"
89 #define LCUSTR_WATERLATCH "Water Leak Latch"
90 #define LCUSTR_ACJB "AC J-Box communication failure"
91 #define LCUSTR_ACJB_WATER "AC J-Box Water Leak detected"
92 #define LCUSTR_ACJB_WATERLATCH "AC J-Box Water Leak Latch"
94 #define VISSTR_SYNTAX "syntax error"
95 #define VISSTR_BUFF_FULL "command buffer full"
96 #define VISSTR_CMD_CANCEL "command cancel"
97 #define VISSTR_NOSOCK "no sockets"
98 #define VISSTR_CMD_NOEXEC "command not executable"
100 #define ALTSTR_SERIAL "serial failure, no switches accepted"
102 #define CANSTR_XMTFULL "controller send buffer is full, can be ignored"
103 #define CANSTR_OVERRUN "receive buffer overrun"
104 #define CANSTR_BUSERR "error count at limit"
105 #define CANSTR_BUSOFF "bus error, controller switched to bus-off"
106 #define CANSTR_RX_OVERFLOW "receive buffer overflow"
107 #define CANSTR_TX_OVERFLOW "transmit buffer overflow"
123 : runtime_error(what),mId(
id),mLogLevel(
level)
143 time = base::Time::now();
148 time = base::Time::now();
Definition: Error.hpp:133
LogLevel log_level
Definition: Error.hpp:135
int id()
Definition: Error.hpp:125
Definition: Error.hpp:117
base::Time time
Definition: Error.hpp:134
Definition: Error.hpp:114
LogMessage()
Definition: Error.hpp:138
LogLevel
Definition: Error.hpp:113
Definition: Error.hpp:114
Definition: Error.hpp:114
LogLevel level()
Definition: Error.hpp:128
int error_id
Definition: Error.hpp:136
Definition: Error.hpp:114
LogMessage(std::runtime_error &error)
Definition: Error.hpp:146
Definition: Error.hpp:114
MarError(const std::string &what, const int &id=0, const LogLevel &level=Error)
Definition: Error.hpp:122
LogMessage(LogLevel level, std::string msg, int error=0)
Definition: Error.hpp:140
Definition: Error.hpp:114
std::string message
Definition: Error.hpp:137
Definition: Error.hpp:114