Index: firmware/App/Drivers/RotaryValve.c =================================================================== diff -u -re24a98a344ba13ceb0663b415268a7e1dd5ce99e -rc05d9f3de4201542827abfbf762d382bffe4bacf --- firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision e24a98a344ba13ceb0663b415268a7e1dd5ce99e) +++ firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision c05d9f3de4201542827abfbf762d382bffe4bacf) @@ -331,7 +331,88 @@ } } +/*********************************************************************//** + * @brief + * The setValveHomingEnableDisable function enables or disables the homing + * bit in the valve's control set. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if invalid valve given. + * @details \b Inputs: none + * @details \b Outputs: none + * @param valve ID of valve to get status for + * @param enableHoming TRUE if enable homing needed otherwise, FALSE + * @return none + *************************************************************************/ +void setValveHomingEnableDisable( VALVE_T valve, BOOL enableHoming ) +{ + U08 valveControlSet; + switch ( valve ) + { + case H1_VALV: + valveControlSet = getH1Control(); + if ( TRUE == enableHoming ) + { + valveControlSet |= FPGA_PINCH_VALVES_ENABLE_HOMING; + } + else + { + valveControlSet &= ~FPGA_PINCH_VALVES_ENABLE_HOMING; + } + setH1Control( valveControlSet ); + break; + + case H19_VALV: + valveControlSet = getH19Control(); + if ( TRUE == enableHoming ) + { + valveControlSet |= FPGA_PINCH_VALVES_ENABLE_HOMING; + } + else + { + valveControlSet &= ~FPGA_PINCH_VALVES_ENABLE_HOMING; + } + setH19Control( valveControlSet ); + break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_VALVES_INVALID_VALVE_HOMING_SET, (U32)valve ) + break; + } +} + +/*********************************************************************//** + * @brief + * The getValveMaximumEncoderPosition function gets the maximum encoder + * position of the valve. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if invalid valve given. + * @details \b Inputs: none + * @details \b Outputs: none + * @param valve ID of valve to get status for + * @return gets the valves maximum encoder position + *************************************************************************/ +S16 getValveMaximumEncoderPosition( VALVE_T valve ) +{ + S16 maxEncoderValue; + + switch ( valve ) + { + case H1_VALV: + maxEncoderValue = getH1MaxEncPosition(); + break; + + case H19_VALV: + maxEncoderValue = getH19MaxEncPosition(); + break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_VALVES_INVALID_VALVE_MAX_ENC_POS_REQ, (U32)valve ) + break; + } + + return maxEncoderValue; +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/