Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r069dee3a2428d3c6bb281db1844a372ae6e2063a -re4eceb1ac6e8091d10e0fab49d2d5a9c5e5f1c67 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 069dee3a2428d3c6bb281db1844a372ae6e2063a) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision e4eceb1ac6e8091d10e0fab49d2d5a9c5e5f1c67) @@ -7,8 +7,8 @@ * * @file Valves.c * -* @author (last) Sean Nash -* @date (last) 04-May-2026 +* @author (last) Dara Navaei +* @date (last) 19-Dec-2025 * * @author (original) Sean Nash * @date (original) 24-Oct-2024 @@ -47,6 +47,21 @@ #define POS_C_FROM_ZERO_CNT VALVE_OFFEST_FROM_EDG_CNT ///< Position C from zero position in counts. #define POS_D_PARTIAL_CLOSE_FROM_ZERO_CNT ( POS_C_FROM_ZERO_CNT + 32 ) ///< Position D partial close from zero position in counts. +/// Valve controller states +typedef enum Valve_Control_States +{ + VALVE_STATE_WAIT_FOR_POST = 0, ///< Valve state wait for POST. + VALVE_STATE_RESET_VALVE, ///< Valve state reset valve. + VALVE_STATE_RESET_ENCODER, ///< Valve state reset encoder. + VALVE_STATE_ENABLE_VALVE, ///< Valve state enable valve. + VALVE_STATE_HOMING_NOT_STARTED, ///< Valve state homing not started. + VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE, ///< Valve state homing find energized edge. + VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE, ///< Valve state homing find de-energized edge. + VALVE_STATE_IDLE, ///< Valve state idle. + VALVE_STATE_IN_TRANSITION, ///< Valve state in transition. + NUM_OF_VALVE_STATES, ///< Number of valve exec states. +} VALVE_STATE_T; + /// Valve status structure typedef struct { @@ -237,31 +252,6 @@ /*********************************************************************//** * @brief - * The getValveState function returns the current state of a given valve. - * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given valve is invalid. - * @details \b Inputs: currentValveStates[] - * @details \b Outputs: none - * @param valve ID of valve to get current state of - * @return Current state of the given valve - *************************************************************************/ -VALVE_STATE_T getValveState( VALVE_T valve ) -{ - VALVE_STATE_T result = VALVE_STATE_HOMING_NOT_STARTED; - - if ( valve < NUM_OF_VALVES ) - { - result = currentValveStates[ valve ].controlState; - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_TD_VALVES_INVALID_VALVE2, (U32)valve ) - } - - return result; -} - -/*********************************************************************//** - * @brief * The execValvesController function executes the valves state machine. * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if a valve control state is invalid. * @details \b Inputs: currentValveStates[]