Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r79df137c3c0b60113b1c042b5dae8f753663fb61 -r2cc657d123c9e6db79ed62b02f088c72ccf9ff98 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 79df137c3c0b60113b1c042b5dae8f753663fb61) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 2cc657d123c9e6db79ed62b02f088c72ccf9ff98) @@ -67,7 +67,7 @@ // ********** private function prototypes ********** static void publishValvesStates( void ); -static void readCommandedValveStates( void ); +static void updateValveStates( U16 readValveStates ); static U32 convertValveStateNameToValveState( VALVE_STATE_NAMES_T valveStateName ); static U32 getValveState( U32 valveID ); @@ -80,10 +80,10 @@ *************************************************************************/ void initValves( void ) { - U32 valve; + VALVES_T valve; // initialize valve states - for ( valve = 0; valve < NUM_OF_VALVES; valve++ ) + for ( valve = FIRST_VALVE; valve < NUM_OF_VALVES; valve++ ) { valveStates[ valve ].data = DEENERGIZED; valveStates[ valve ].ovInitData = DEENERGIZED; @@ -106,7 +106,7 @@ valvesStatesPublishInterval.override = OVERRIDE_RESET; // initially set all valves to de-energized state via FPGA - readCommandedValveStates(); + updateValveStates( ALL_VALVES_DEENERGIZED ); setFPGAValveStates( commandedValvesStates ); } @@ -155,7 +155,7 @@ } // Set valves states (via FPGA) to currently commanded states - readCommandedValveStates(); + updateValveStates( readValvesStates ); setFPGAValveStates( commandedValvesStates ); // Publish valve states on interval @@ -164,22 +164,24 @@ /*********************************************************************//** * @brief - * The readCommandedValveStates function gets the hydraulics, Balancing chamber - * and Ultrafiltration valvesStates that can be passed to FPGA for setting valves. + * The updateValveStates function updates the sensed valve states from FPGA + * and sends latest commanded valve states to FPGA. * @details \b Inputs: valveStates[], ValveBits[] - * @details \b Outputs: commandedValvesStates + * @details \b Outputs: commandedValvesStates, valveSensedStates[] + * @param readValveStates bits indicating read valve states * @return none *************************************************************************/ -static void readCommandedValveStates( void ) +static void updateValveStates( U16 readValveStates ) { U32 valve; - // Initiliaze before updating commanded states + // Initialize before updating commanded states commandedValvesStates = ALL_VALVES_DEENERGIZED; - // flag RO valves that are currently commanded to be energized + // Update sensed valve states from FPGA and commanded valve state bits to FPGA for ( valve = FIRST_VALVE; valve < NUM_OF_VALVES; valve++ ) { + valveSensedStates[ valve ].data = ( ( readValveStates & ValveBits[ valve ] ) != 0 ? VALVE_STATE_OPEN : VALVE_STATE_CLOSED ); commandedValvesStates |= ( getValveState( valve ) == ENERGIZED ? ValveBits[ valve ] : 0 ); } } @@ -365,7 +367,7 @@ RO_VALVES_DATA_T data; U32 valve; - data.valvesStatus = getFPGAValveStates(); + data.valvesCmdState = commandedValvesStates; for ( valve = 0; valve < NUM_OF_VALVES; valve++ ) { Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -r030feb7d45fd5efed32f0b0eaf054a0183055e07 -r2cc657d123c9e6db79ed62b02f088c72ccf9ff98 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision 030feb7d45fd5efed32f0b0eaf054a0183055e07) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 2cc657d123c9e6db79ed62b02f088c72ccf9ff98) @@ -46,17 +46,17 @@ /// Enumeration of available valve state names per valve type (from SA and DG SRS documents). typedef enum ValveStateNames { - VALVE_STATE_OPEN = 0, ///< Open valve state, - VALVE_STATE_CLOSED, ///< Closed valve state, + VALVE_STATE_CLOSED = 0, ///< Closed valve state, + VALVE_STATE_OPEN, ///< Open valve state, NUM_OF_VALVE_STATES ///< number of valve states } VALVE_STATE_NAMES_T; #pragma pack(push, 1) /// Valves publish structure typedef struct { - U16 valvesStatus; ///< 2 way valves status. - U08 valvesSensedState[ NUM_OF_VALVES ]; ///< RO valves sensed states. + U16 valvesCmdState; ///< Commanded RO valve states (bits). + U08 valvesSensedState[ NUM_OF_VALVES ]; ///< Sensed RO valve states. } RO_VALVES_DATA_T; #pragma pack(pop)