Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -rf7c714a1a09b10d85a8b013712532d37b4d7b97a -r200dfbd12ee14a4dbe5ee1daaece7bfce9e8a104 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision f7c714a1a09b10d85a8b013712532d37b4d7b97a) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 200dfbd12ee14a4dbe5ee1daaece7bfce9e8a104) @@ -14,62 +14,22 @@ * @date (original) 14-Aug-2024 * ***************************************************************************/ - -#ifndef __VALVES_DD_H__ -#define __VALVES_DD_H__ - + +#ifndef __VALVES_DD_H__ +#define __VALVES_DD_H__ + #include "DDCommon.h" - -/** - * @defgroup Valves Valves + +/** + * @defgroup Valves Valves * @brief Valves driver unit. Controls all hydraulics valves, balancing chamber and - * ultrafiltration valves through FPGA Interface. - * - * @addtogroup Valves - * @{ + * ultrafiltration valves through FPGA Interface. + * + * @addtogroup Valves + * @{ */ - -/// Enumeration of valves. -typedef enum Valves -{ - FIRST_HYD_VALVE = 0, ///< Start of Hydraulics valve group - VDR = FIRST_HYD_VALVE, ///< Valve Drain - VTD, ///< Valve Thermal Disinfect - VHB, ///< Valve Hydraulics Bypass - VRP, ///< Valve Rinse Port - VHO, ///< Valve Hydraulics Outlet - VDB1, ///< Valve DryBcarb Inlet - VP1, ///< Valve Purge 1 - VPT, ///< Valve Pressure Test - VDB2, ///< Valve Dialyzer Bypass - VDI, ///< Valve Dialyzer Inlet - VDO, ///< Valve Dialyzer Outlet - VP2, ///< Valve Dialysate Out Purge 2 - VHI, ///< Valve Hydraulics Inlet - LAST_HYD_VALVE = VHI, ///< End of Hydraulics valve of group - RSRVD_SPACE1, ///< This space has been reserved - RSRVD_SPACE2, ///< This space has been reserved - RSRVD_SPACE3, ///< This space has been reserved - FIRST_BC_VALVE, ///< Start of Balancing Chamber valve group - BCV1 = FIRST_BC_VALVE, ///< Balancing chamber Valve 1 - BCV2, ///< Balancing chamber Valve 2 - BCV3, ///< Balancing chamber Valve 3 - BCV4, ///< Balancing chamber Valve 4 - BCV5, ///< Balancing chamber Valve 5 - BCV6, ///< Balancing chamber Valve 6 - BCV7, ///< Balancing chamber Valve 7 - BCV8, ///< Balancing chamber Valve 8 - LAST_BC_VALVE = BCV8, ///< End of Balancing Chamber valve group - FIRST_UF_VALVE, ///< Start of Ultrafiltration valve group - UFI1 = FIRST_UF_VALVE, ///< Ultrafiltration Valve 1 Inlet - UFI2, ///< Ultrafiltration Valve 2 Inlet - UFO1, ///< Ultrafiltration Valve 1 Outlet - UFO2, ///< Ultrafiltration Valve 2 Outlet - LAST_UF_VALVE = UFO2, ///< End of Ultrafiltration valve group - NUM_OF_VALVES ///< Number of valves -} VALVES_T; -/// Enumeration of available valve state names per valve type (from SA and DG SRS documents). +/// Enumeration of available valve state names per valve type (from SA and DD SRS documents). typedef enum ValveStateNames { VALVE_STATE_OPEN = 0, ///< Open valve state, @@ -84,23 +44,33 @@ U16 valvesStatus; ///< 2 way valves status. U08 valvesBCStatus; ///< Balancing chamber valves status. U08 valvesUFStatus; ///< Ultrafiltration valves status. - U08 valvesSensedState[ NUM_OF_VALVES ]; ///< DD valves sensed states. + U08 valvesSensedState[ DD_NUM_OF_VALVES ]; ///< DD valves sensed states. } DD_VALVES_DATA_T; -#pragma pack(pop) - -// ********** public function prototypes ********** - -void initValves( void ); -void execValves( void ); -BOOL setValveState( VALVES_T valve, VALVE_STATE_NAMES_T valveState ); -BOOL setValveStateDelayed( VALVES_T valve, VALVE_STATE_NAMES_T valveState, U32 delayMs ); -VALVE_STATE_NAMES_T getValveStateName( VALVES_T valveID ); - +/// Balancing chamber valve states override structure +typedef struct +{ + U32 valveStatesBits; ///< Bits indicating whether balancing chamber valve states should be open(1) or closed(0). +} DD_BC_VALVE_OVERRIDE_PAYLOAD_T; +#pragma pack(pop) + +// ********** public function prototypes ********** + +void initValves( void ); +void execValves( void ); + +BOOL setValveState( DD_VALVES_T valve, VALVE_STATE_NAMES_T valveState ); +BOOL setValveStateDelayed( DD_VALVES_T valve, VALVE_STATE_NAMES_T valveState, U32 delayMs ); +VALVE_STATE_NAMES_T getValveStateName( DD_VALVES_T valveID ); +void setHydValvesStatetoClosedState( void ); +void setUFValvesStatetoClosedState( void ); + BOOL testValvesStatesPublishIntervalOverride( MESSAGE_T *message ); BOOL testValveStateOverride( MESSAGE_T *message ); +BOOL testBCValveStatesOverride( MESSAGE_T *message ); BOOL testValveSensedStateOverride( MESSAGE_T *message ); - -/**@}*/ - -#endif +BOOL testValveOpenCloseStateOverride( MESSAGE_T *message ); + +/**@}*/ + +#endif