Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -r9102c5da21a15bdaf4bb3bc38795ceb064e3c443 -r200dfbd12ee14a4dbe5ee1daaece7bfce9e8a104 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision 9102c5da21a15bdaf4bb3bc38795ceb064e3c443) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 200dfbd12ee14a4dbe5ee1daaece7bfce9e8a104) @@ -14,60 +14,20 @@ * @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 (D53) - VTD, ///< Valve Thermal Disinfect (D52) - VHB, ///< Valve Hydraulics Bypass (D8) - VRP, ///< Valve Rinse Port (D54) - VHO, ///< Valve Hydraulics Outlet (D14) - VDB1, ///< Valve DryBcarb Inlet (D65) - VP1, ///< Valve Purge 1 (D64) - VPT, ///< Valve Pressure Test (D31) - VDB2, ///< Valve Dialyzer Bypass (D34) - VDI, ///< Valve Dialyzer Inlet (D35) - VDO, ///< Valve Dialyzer Outlet (D40) - VP2, ///< Valve Dialysate Out Purge 2 (D47) - VHI, ///< Valve Hydraulics Inlet (D3) - VWI, ///< Valve Water Inlet (M4) - LAST_HYD_VALVE = VWI, ///< End of Hydraulics valve of group - RSRVD_SPACE1, ///< This space has been reserved - RSRVD_SPACE2, ///< This space has been reserved - FIRST_BC_VALVE, ///< Start of Balancing Chamber valve group - BCV1 = FIRST_BC_VALVE, ///< Balancing chamber Valve 1 (D23) - BCV2, ///< Balancing chamber Valve 2 (D19) - BCV3, ///< Balancing chamber Valve 3 (D25) - BCV4, ///< Balancing chamber Valve 4 (D21) - BCV5, ///< Balancing chamber Valve 5 (D24) - BCV6, ///< Balancing chamber Valve 6 (D20) - BCV7, ///< Balancing chamber Valve 7 (D26) - BCV8, ///< Balancing chamber Valve 8 (D22) - 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 (D69) - UFI2, ///< Ultrafiltration Valve 2 Inlet (D71) - UFO1, ///< Ultrafiltration Valve 1 Outlet (D70) - UFO2, ///< Ultrafiltration Valve 2 Outlet (D72) - 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 DD SRS documents). typedef enum ValveStateNames @@ -84,26 +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 ); BOOL testValveOpenCloseStateOverride( MESSAGE_T *message ); - -/**@}*/ - -#endif + +/**@}*/ + +#endif