/************************************************************************** * * Copyright (c) 2026-2026 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 PinchValve.h * * @author (last) Varshini Nagabooshanam * @date (last) 08-Jul-2026 * * @author (original) Varshini Nagabooshanam * @date (original) 08-Jul-2026 * ***************************************************************************/ #ifndef __PINCHVALVE_H__ #define __PINCHVALVE_H__ #include "TDCommon.h" /** * @defgroup PinchValve PinchValve * @brief pinch valve communication driver. * This driver sends one generic command at a time through the FPGA * interface. High level functions such as homing and movement to positions * A, B, and C belong in the controller layer. * * @addtogroup PinchValve * @{ */ // ********** public definitions ********** /// Valves positions typedef enum valveStatesNames { VALVE_POSITION_NOT_IN_POSITION = 0, ///< Valve position is unknown (cannot be used as a command) VALVE_POSITION_A_INSERT_EJECT, ///< Position A, Insert/Eject VALVE_POSITION_B_OPEN, ///< Position B, Open VALVE_POSITION_C_CLOSE, ///< Position C, Close NUM_OF_VALVE_POSITIONS, ///< Number of valve positions } VALVE_POSITION_T; /// rotary pinch valve names typedef enum valveNames { H1_VALV = 0, ///< Arterial rotary pinch valve FIRST_VALVE = H1_VALV, ///< First valve H19_VALV, ///< Venous rotary pinch valve NUM_OF_VALVES ///< Number of valves } VALVE_T; // ********** public function prototypes ********** void initPinchValveDriver( void ); void execPinchValveFunction( void ); void execPinchValveCommand( void ); BOOL homePinchValve( VALVE_T valve ); BOOL setPinchValvePosition( VALVE_T valve, S32 position ); S32 getPinchValvePosition( VALVE_T valve ); void setPinchValveEnableReset( VALVE_T valve, BOOL enable, BOOL reset ); U08 getPinchValveEnableReset( VALVE_T valve ); BOOL isPinchValveBusy( VALVE_T valve ); /**@}*/ #endif