Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -r48c75a394c56b82886760e9a136b638edecf7572 -r322747d530c1b8205be257557e53dcfe9caad50a --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision 48c75a394c56b82886760e9a136b638edecf7572) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 322747d530c1b8205be257557e53dcfe9caad50a) @@ -14,62 +14,68 @@ * @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 -{ + +/// 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 - VWI, ///< Valve Water Inlet - LAST_HYD_VALVE = VWI, ///< End of Hydraulics valve of group + D14_VALV = FIRST_HYD_VALVE, ///< Valve Hydraulics Outlet (D14) + D52_VALV, ///< Valve Thermal Disinfect (D52) + D8_VALV, ///< Valve Hydraulics Bypass (D8) + D54_VALV, ///< Valve Rinse Port (D54) + D53_VALV, ///< Valve Drain (D53) + D34_VALV, ///< Valve Dialyzer Bypass (D34) + D64_VALV, ///< Valve Purge 1 (D64) + D31_VALV, ///< Valve Pressure Test (D31) + D65_VALV, ///< Valve DryBcarb Inlet (D65) + D35_VALV, ///< Valve Dialyzer Inlet (D35) + D40_VALV, ///< Valve Dialyzer Outlet (D40) + D47_VALV, ///< Valve Dialysate Out Purge 2 (D47) + D3_VALV, ///< Valve Hydraulics Inlet (D3) + M4_VALV, ///< Valve Water Inlet (M4) +#ifdef __PUMPTEST__ + UF1, ///< UF1 valve + UF2, ///< UF2 valve + LAST_HYD_VALVE = UF2, ///< End of Hydraulics valve of group +#else + LAST_HYD_VALVE = M4_VALV, ///< End of Hydraulics valve of group RSRVD_SPACE1, ///< This space has been reserved RSRVD_SPACE2, ///< This space has been reserved +#endif 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 + D23_VALV = FIRST_BC_VALVE, ///< Balancing chamber Valve 1 (D23) + D19_VALV, ///< Balancing chamber Valve 2 (D19) + D25_VALV, ///< Balancing chamber Valve 3 (D25) + D26_VALV, ///< Balancing chamber Valve 7 (D26) + D24_VALV, ///< Balancing chamber Valve 5 (D24) + D20_VALV, ///< Balancing chamber Valve 6 (D20) + D21_VALV, ///< Balancing chamber Valve 4 (D21) + D22_VALV, ///< Balancing chamber Valve 8 (D22) + LAST_BC_VALVE = D22_VALV, ///< 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 + D69_VALV = FIRST_UF_VALVE, ///< Ultrafiltration Valve 1 Inlet (D69) + D71_VALV, ///< Ultrafiltration Valve 2 Inlet (D71) + D70_VALV, ///< Ultrafiltration Valve 1 Outlet (D70) + D72_VALV, ///< Ultrafiltration Valve 2 Outlet (D72) + LAST_UF_VALVE = D72_VALV, ///< 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, @@ -86,21 +92,31 @@ U08 valvesUFStatus; ///< Ultrafiltration valves status. U08 valvesSensedState[ NUM_OF_VALVES ]; ///< DD valves sensed states. } DD_VALVES_DATA_T; -#pragma pack(pop) - -// ********** public function prototypes ********** - -void initValves( void ); -void execValves( void ); +/// 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( 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 ); - +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