Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -ra7bf3ca23ea37a61000379facae628a31b3ecc59 -r059dfd38b22f2bd6be82170d0b001102f2425a96 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision a7bf3ca23ea37a61000379facae628a31b3ecc59) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 059dfd38b22f2bd6be82170d0b001102f2425a96) @@ -7,8 +7,8 @@ * * @file AlarmMgmt.h * -* @author (last) Sean -* @date (last) 06-May-2020 +* @author (last) Quang Nguyen +* @date (last) 24-Aug-2020 * * @author (original) Sean * @date (original) 04-Feb-2020 @@ -22,9 +22,8 @@ /** * @defgroup AlarmManagement AlarmManagement - * @brief Alarm Management service module. Provides general alarm management \n - * functionality including support functions for triggering and clearing \n - * specific alarms. + * @brief Alarm management service module. Provides general alarm management functionality + * including support functions for triggering and clearing specific alarms. * * @addtogroup AlarmManagement * @{ @@ -37,53 +36,53 @@ /// Alarm data types list. typedef enum Alarm_Data_Types { - ALARM_DATA_TYPE_NONE = 0, ///< No data given. - ALARM_DATA_TYPE_U32 = 1, ///< Alarm data is unsigned 32-bit integer type. - ALARM_DATA_TYPE_S32 = 2, ///< Alarm data is signed 32-bit integer type. - ALARM_DATA_TYPE_F32 = 3, ///< Alarm data is 32-bit floating point type. - ALARM_DATA_TYPE_BOOL = 4, ///< Alarm data is 32-bit boolean type. - NUM_OF_ALARM_DATA_TYPES ///< Total number of alarm data types. + ALARM_DATA_TYPE_NONE = 0, ///< No data given + ALARM_DATA_TYPE_U32 = 1, ///< Alarm data is unsigned 32-bit integer type + ALARM_DATA_TYPE_S32 = 2, ///< Alarm data is signed 32-bit integer type + ALARM_DATA_TYPE_F32 = 3, ///< Alarm data is 32-bit floating point type + ALARM_DATA_TYPE_BOOL = 4, ///< Alarm data is 32-bit boolean type + NUM_OF_ALARM_DATA_TYPES ///< Total number of alarm data types } ALARM_DATA_TYPES_T; #pragma pack(push,4) /// Record structure for unsigned integer alarm data. typedef struct { - U32 data; ///< Alarm data of unsigned integer type. + U32 data; ///< Alarm data of unsigned integer type } ALARM_DATA_U32_T; /// Record structure for signed integer alarm data. typedef struct { - S32 data; ///< Alarm data of signed integer type. + S32 data; ///< Alarm data of signed integer type } ALARM_DATA_S32_T; /// Record structure for floating point alarm data. typedef struct { - F32 data; ///< Alarm data of floating point type. + F32 data; ///< Alarm data of floating point type } ALARM_DATA_F32_T; /// Record structure for boolean alarm data. typedef struct { - BOOL data; ///< Alarm data of boolean type. + BOOL data; ///< Alarm data of boolean type } ALARM_DATA_BOOL_T; /// Record structure for alarm data of any supported type. typedef union { - ALARM_DATA_U32_T uInt; ///< Alarm data of unsigned integer type. - ALARM_DATA_S32_T sInt; ///< Alarm data of signed integer type. - ALARM_DATA_F32_T flt; ///< Alarm data of floating point type. - ALARM_DATA_BOOL_T bln; ///< Alarm data of boolean type. + ALARM_DATA_U32_T uInt; ///< Alarm data of unsigned integer type + ALARM_DATA_S32_T sInt; ///< Alarm data of signed integer type + ALARM_DATA_F32_T flt; ///< Alarm data of floating point type + ALARM_DATA_BOOL_T bln; ///< Alarm data of boolean type } ALARM_DATAS_T; /// Record structure for alarm data including the data type to aid in interpretation. typedef struct { - ALARM_DATA_TYPES_T dataType; ///< The type of alarm data provided. - ALARM_DATAS_T data; ///< The alarm data of specified type. + ALARM_DATA_TYPES_T dataType; ///< The type of alarm data provided + ALARM_DATAS_T data; ///< The alarm data of specified type } ALARM_DATA_T; #pragma pack(pop) @@ -95,43 +94,71 @@ SW_FAULT_ID_INT_ADC_INVALID_CHANNEL_REQUESTED, SW_FAULT_ID_MODE_INIT_POST_INVALID_POST_STATE, SW_FAULT_ID_OP_MODES_ILLEGAL_MODE_TRANSITION_REQUESTED, - SW_FAULT_ID_OP_MODES_INVALID_MODE_STATE, + SW_FAULT_ID_OP_MODES_INVALID_MODE_STATE, // 5 SW_FAULT_ID_OP_MODES_INVALID_MODE_REQUESTED, SW_FAULT_ID_OP_MODES_INVALID_MODE_TO_TRANSITION_TO, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_CLEAR, - SW_FAULT_ID_COMM_BUFFERS_ADD_TOO_MUCH_DATA, + SW_FAULT_ID_COMM_BUFFERS_ADD_TOO_MUCH_DATA, // 10 SW_FAULT_ID_COMM_BUFFERS_ADD_INVALID_BUFFER, SW_FAULT_ID_COMM_BUFFERS_GET_INVALID_BUFFER, SW_FAULT_ID_COMM_BUFFERS_PEEK_INVALID_BUFFER, SW_FAULT_ID_COMM_BUFFERS_COUNT_INVALID_BUFFER, - SW_FAULT_ID_FPGA_INVALID_IN_STATE, + SW_FAULT_ID_FPGA_INVALID_IN_STATE, // 15 SW_FAULT_ID_FPGA_INVALID_OUT_STATE, SW_FAULT_ID_FPGA_WRITE_CMD_TOO_MUCH_DATA, SW_FAULT_ID_FPGA_WRITE_RSP_TOO_MUCH_DATA, SW_FAULT_ID_FPGA_READ_CMD_TOO_MUCH_DATA, - SW_FAULT_ID_FPGA_READ_RSP_TOO_MUCH_DATA, + SW_FAULT_ID_FPGA_READ_RSP_TOO_MUCH_DATA, // 20 SW_FAULT_ID_MSG_QUEUES_ADD_QUEUE_FULL, SW_FAULT_ID_MSG_QUEUES_ADD_INVALID_QUEUE, SW_FAULT_ID_MSG_QUEUES_GET_INVALID_QUEUE, SW_FAULT_ID_MSG_QUEUES_IS_EMPTY_INVALID_QUEUE, - SW_FAULT_ID_MSG_QUEUES_IS_FULL_INVALID_QUEUE, + SW_FAULT_ID_MSG_QUEUES_IS_FULL_INVALID_QUEUE, // 25 SW_FAULT_ID_WATCHDOG_INVALID_SELF_TEST_STATE, SW_FAULT_ID_RTC_EXEC_INVALID_STATE, SW_FAULT_ID_RTC_SELF_TEST_INVALID_STATE, SW_FAULT_ID_RTC_TRANSACTION_SERVICE_INVALID_STATE, - SW_FAULT_ID_MSG_PENDING_ACK_LIST_FULL, + SW_FAULT_ID_MSG_PENDING_ACK_LIST_FULL, // 30 SW_FAULT_ID_PI_CTRL_INVALID_CONTROLLER, SW_FAULT_ID_PI_CTRL_INVALID_SIGNAL, SW_FAULT_ID_NVDATAMGMT_EXEC_INVALID_STATE, SW_FAULT_ID_NVDATAMGMT_INVALID_SELF_TEST_STATE, - SW_FAULT_ID_TEMPERATURE_SENSORS_INVALID_SELF_TEST_STATE, + SW_FAULT_ID_TEMPERATURE_SENSORS_INVALID_SELF_TEST_STATE, // 35 SW_FAULT_ID_TEMPERATURE_SENSORS_EXEC_INVALID_STATE, SW_FAULT_ID_HEATERS_SELF_TEST_INVALID_STATE, SW_FAULT_ID_HEATERS_PRIMARY_HEATER_EXEC_INVALID_STATE, SW_FAULT_ID_HEATERS_TRIMMER_HEATER_EXEC_INVALID_STATE, - SW_FAULT_ID_VALVES_INVALID_VALVE_STATE_NAME, - SW_FAULT_ID_VALVES_INVALID_VALVE_ID, + SW_FAULT_ID_VALVES_INVALID_VALVE_STATE_NAME, // 40 + SW_FAULT_ID_VALVES_INVALID_VALVE_ID, + SW_FAULT_ID_CAN_PARITY_ERROR, + SW_FAULT_ID_CAN_PASSIVE_WARNING, + SW_FAULT_ID_CAN_OFF_ERROR, + SW_FAULT_ID_FPGA_UART_FRAME_ERROR, // 45 + SW_FAULT_ID_FPGA_UART_OVERRUN_ERROR, + SW_FAULT_ID_UTIL_TIME_WINDOWED_COUNT_ERROR, + SW_FAULT_ID_ACCEL_INVALID_STATE, + SW_FAULT_ID_ACCEL_GET_INVALID_AXIS, + SW_FAULT_ID_ACCEL_GET_MAX_INVALID_AXIS, // 50 + SW_FAULT_ID_ACCEL_INVALID_SELF_TEST_STATE, + SW_FAULT_ID_UTIL_INVALID_WIN_COUNT, + SW_FAULT_ID_UTIL_INVALID_WIN_MAX_COUNT, + SW_FAULT_ID_PERSISTENT_ALARM_INVALID_INDEX, + SW_FAULT_ID_UV_REACTORS_INVALID_EXEC_STATE, // 55 + SW_FAULT_ID_UV_REACTORS_INVALID_SELF_TEST_STATE, + SW_FAULT_ID_THERMISTORS_INVALID_EXEC_STATE, + SW_FAULT_ID_THERMISTORS_INVALID_SELF_TEST_STATE, + SW_FAULT_ID_INVALID_THERMISTOR_SELECTED, + SW_FAULT_ID_FAN_INVALID_EXEC_STATE, // 60 + SW_FAULT_ID_FAN_INVALID_SELF_TEST_STATE, + SW_FAULT_ID_INVALID_FAN_SELECTED, + SW_FAULT_ID_RO_PUMP_INVALID_EXEC_STATE, + SW_FAULT_ID_RO_PUMP_INVALID_FLOW_RATE_SET, + SW_FAULT_ID_DRAIN_PUMP_INVALID_EXEC_STATE, // 65 + SW_FAULT_ID_UV_REACTORS_INVALID_REACTOR_SELECTED, + SW_FAULT_ID_RO_PUMP_INVALID_PRESSURE_SELECTED, + SW_FAULT_ID_DRAIN_PUMP_INVALID_DELTA_PRESSURE_SELECTED, + SW_FAULT_ID_INVALID_TEMPERATURE_SENSOR_SELECTED, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; @@ -146,9 +173,9 @@ void clearAlarm( ALARM_ID_T alarm ); BOOL isAlarmActive( ALARM_ID_T alarm ); -/**@}*/ - BOOL testSetAlarmStateOverride( U32 alarmID, BOOL value ); BOOL testResetAlarmStateOverride( U32 alarmID ); - + +/**@}*/ + #endif