Index: firmware/App/Drivers/RotaryValve.c =================================================================== diff -u -r63f70637ccd17ac53cb3664332a670b01f28c744 -r1500c2a584e9e9ce0ffcd32727c0b9e7cdd141b6 --- firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision 63f70637ccd17ac53cb3664332a670b01f28c744) +++ firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision 1500c2a584e9e9ce0ffcd32727c0b9e7cdd141b6) @@ -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 *************************************************************************/