16 #ifndef PSEN_SCAN_V2_STANDALONE_DIAGNOSTICS_H
17 #define PSEN_SCAN_V2_STANDALONE_DIAGNOSTICS_H
32 namespace data_conversion_layer
34 namespace monitoring_frame
51 using RawChunk = std::array<uint8_t, diagnostic::RAW_CHUNK_LENGTH_IN_BYTES>;
90 { Et::ossd1_oc,
"OSSD1 Overcurrent / Short circuit." },
91 { Et::ossd_shrt_c,
"Short circuit between at least two OSSDs." },
92 { Et::ossd_integr,
"OSSDF1: An error has occurred when testing the OSSDs." },
93 { Et::intern,
"Internal error." },
94 { Et::win_cln_al,
"Alarm: The front panel of the safety laser scanner must be cleaned." },
95 { Et::power_supply,
"Power supply problem." },
96 { Et::netw_prb,
"Network problem." },
97 { Et::dust_crc_fl,
"Dust circuit failure" },
98 { Et::ossd2_overcur,
"OSSD2 Overcurrent / Short circuit." },
99 { Et::meas_prob,
"Measurement Problem." },
100 { Et::incoherence,
"Incoherence Error" },
101 { Et::zone_inval_trans,
"INPUTCF2: Configuration error. - "
102 "In the configuration, check the configured state transitions and switching operations." },
103 { Et::zone_invalid_conf,
"INPUTCF1: Error in the configuration or the wiring. - "
104 "Check whether the wiring and the configuration will match." },
105 { Et::win_cln_warn,
"Warning: The front panel of the safety laser scanner must be cleaned." },
106 { Et::generic_err,
"Generic Error." },
107 { Et::disp_com_prb,
"Display communication problem." },
108 { Et::temp_meas_prob,
"Temperature measurement problem." },
109 { Et::encod_oor,
"Encoder: Out of range." },
110 { Et::edm2_err,
"EDM2: Error in the External Device Monitoring." },
111 { Et::edm1_err,
"EDM1: Error in the External Device Monitoring." },
112 { Et::conf_err,
"WAITING_CONF: The safety laser scanner waits for a configuration (e.g. after restoring a configuration). - "
113 "Configure the safety laser scanner." },
114 { Et::out_of_range_err,
"Out of range error." },
115 { Et::temp_range_err,
"Temperature out of range." },
116 { Et::encoder_generic_err,
"Encoder: Generic error." },
117 { Et::unused,
"Unexpected error" } \
121 #define REV(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) arg8, arg7, arg6, arg5, arg4, arg3, arg2, arg1
123 static constexpr std::array<std::array<ErrorType, 8>, 9>
ERROR_BITS{{
125 {
REV(Et::ossd1_oc, Et::ossd_shrt_c, Et::ossd_integr, Et::intern, Et::intern, Et::intern, Et::intern, Et::intern) },
126 {
REV(Et::win_cln_al, Et::power_supply, Et::netw_prb, Et::dust_crc_fl, Et::intern, Et::intern, Et::unused, Et::ossd2_overcur) },
127 {
REV(Et::meas_prob, Et::intern, Et::intern, Et::intern, Et::incoherence, Et::zone_inval_trans, Et::zone_invalid_conf, Et::win_cln_warn) },
128 {
REV(Et::intern, Et::intern, Et::intern, Et::generic_err, Et::disp_com_prb, Et::intern, Et::intern, Et::temp_meas_prob) },
129 {
REV(Et::intern, Et::intern, Et::edm2_err, Et::edm1_err, Et::conf_err, Et::out_of_range_err, Et::temp_range_err, Et::intern) },
130 {
REV(Et::unused, Et::unused, Et::unused, Et::unused, Et::intern, Et::intern, Et::encoder_generic_err, Et::encod_oor) },
131 {
REV(Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused) },
132 {
REV(Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused) },
133 {
REV(Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused, Et::unused) },
210 : id_(id), error_location_(location)
235 #endif // PSEN_SCAN_V2_STANDALONE_DIAGNOSTICS_H