Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -r22176ce95e49213c48454f34ddf5d29b8109f2cb -r7d4711edd7b40cd3e29f43e766f79a8a09586fe9 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision 22176ce95e49213c48454f34ddf5d29b8109f2cb) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 7d4711edd7b40cd3e29f43e766f79a8a09586fe9) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file Valves.h * * @author (last) Dara Navaei -* @date (last) 26-Mar-2022 +* @date (last) 03-Nov-2022 * * @author (original) Sean * @date (original) 06-May-2020 @@ -33,44 +33,47 @@ /// 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, used only for VPi, VBf, VRD1, VRD2, and VSP - VALVE_STATE_CLOSED, ///< Closed valve state, used only for VPi, VBf, VRD1, VRD2, and VSP - VALVE_STATE_OPEN_C_TO_NC, ///< Open Common to Normally Closed valve state, used only for VPd - VALVE_STATE_NOFILL_C_TO_NO, ///< No Fill Common to Normally Open valve state, used only for VPo - VALVE_STATE_FILL_C_TO_NC, ///< Fill Common to Normally Closed valve state, used only for VPo - VALVE_STATE_DRAIN_C_TO_NO, ///< Drain Common to Normally Open valve state, used only for VDr and VRc. It is also used for VPd in V3 - VALVE_STATE_RECIRC_C_TO_NC, ///< Recirculate Common to Normally Closed valve state, used only for VDr and VRc - VALVE_STATE_R1_C_TO_NO, ///< Reservoir 1 Common to Normally Open valve state, used only for VRo and VRi - VALVE_STATE_R1_C_TO_NC, ///< Reservoir 1 Common to Normally Closed valve state, used only for VRd and VRf - VALVE_STATE_R2_C_TO_NO, ///< Reservoir 2 Common to Normally Open valve state, used only for VRd and VRf - VALVE_STATE_R2_C_TO_NC, ///< Reservoir 2 Common to Normally Closed valve state, used only for VRo and VRi - NUM_OF_VALVE_STATES ///< number of valve states + VALVE_STATE_OPEN = 0, ///< Open valve state, used only for VPi, VBf, VRD1, VRD2, and VSP + VALVE_STATE_CLOSED, ///< Closed valve state, used only for VPi, VBf, VRD1, VRD2, and VSP + VALVE_STATE_OPEN_C_TO_NC, ///< Open Common to Normally Closed valve state, used only for VPd + VALVE_STATE_NOFILL_C_TO_NO, ///< No Fill Common to Normally Open valve state, used only for VPo + VALVE_STATE_FILL_C_TO_NC, ///< Fill Common to Normally Closed valve state, used only for VPo + VALVE_STATE_DRAIN_C_TO_NO, ///< Drain Common to Normally Open valve state, used only for VDr and VRc. It is also used for VPd in V3 + VALVE_STATE_RECIRC_C_TO_NC, ///< Recirculate Common to Normally Closed valve state, used only for VDr and VRc + VALVE_STATE_R1_C_TO_NO, ///< Reservoir 1 Common to Normally Open valve state, used only for VRo and VRi + VALVE_STATE_R1_C_TO_NC, ///< Reservoir 1 Common to Normally Closed valve state, used only for VRf + VALVE_STATE_R2_C_TO_NO, ///< Reservoir 2 Common to Normally Open valve state, used only for VRf + VALVE_STATE_R2_C_TO_NC, ///< Reservoir 2 Common to Normally Closed valve state, used only for VRo and VRi + NUM_OF_VALVE_STATES ///< number of valve states } VALVE_STATE_NAMES_T; /// Enumeration of valves. typedef enum Valves { - VRF = 0, ///< Valve Reservoir Fill - VRI, ///< Valve Reservoir Inlet - VRD, ///< Valve Reservoir Drain - VRO, ///< Valve Reservoir Outlet - VPO, ///< Valve Pressure Outlet - VBF, ///< Valve Bypass Filter - VRC, ///< Valve Recirculate - VDR, ///< Valve Drain - VPI, ///< Valve Pressure Inlet - VSP, ///< Valve Sampling Port - VRD1, ///< Valve Reservoir 1 Drain - VRD2, ///< Valve Reservoir 2 Drain - VPD, ///< Valve Production Drain - NUM_OF_VALVES ///< Number of valves + VRF = 0, ///< Valve Reservoir Fill + VRI, ///< Valve Reservoir Inlet + RSRVD_SPACE, ///< This space has been reserved + VRO, ///< Valve Reservoir Outlet + VPO, ///< Valve Pressure Outlet + VBF, ///< Valve Bypass Filter + VRC, ///< Valve Recirculate + VDR, ///< Valve Drain + VPI, ///< Valve Pressure Inlet + VSP, ///< Valve Sampling Port + VRD1, ///< Valve Reservoir 1 Drain + VRD2, ///< Valve Reservoir 2 Drain + VPD, ///< Valve Production Drain + NUM_OF_VALVES ///< Number of valves } VALVES_T; +#pragma pack(push, 1) /// Valves publish structure typedef struct { - U16 valvesStatus; ///< DG valves status. -} DG_VALVES_DATA_T; + U16 valvesStatus; ///< DG valves status. + U08 valvesSensedState[ NUM_OF_VALVES ]; ///< DG valves sensed states. +} DG_VALVES_DATA_T; +#pragma pack(pop) // ********** public function prototypes ********** @@ -79,12 +82,18 @@ BOOL setValveState( VALVES_T valve, VALVE_STATE_NAMES_T valveState ); BOOL setValveStateDelayed( VALVES_T valve, VALVE_STATE_NAMES_T valveState, U32 delayMs ); -U32 getValveState( U32 valveID ); +VALVE_STATE_NAMES_T getValveStateName( VALVES_T valveID ); + +BOOL isFliterFlushRequired( void ); BOOL testSetValvesStatesPublishIntervalOverride( U32 value ); -BOOL testResetValvesStatesPublishIntervalOverride( void ); +BOOL testResetValvesStatesPublishIntervalOverride( void ); + BOOL testSetValveStateOverride( U32 valve, U32 state ); -BOOL testResetValveStateOverride( U32 valveID ); +BOOL testResetValveStateOverride( U32 valveID ); + +BOOL testSetValveSensedStateOverride( U32 valve, U32 status ); +BOOL testResetValveSensedStateOverride( U32 valve ); /**@}*/