Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r4fdc3246f14c8b3b04724d39803530f60b6caac8 -r8059b3b67364c3593091a23266f33186430ffe26 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 4fdc3246f14c8b3b04724d39803530f60b6caac8) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 8059b3b67364c3593091a23266f33186430ffe26) @@ -20,6 +20,7 @@ #include "etpwm.h" #include "AlarmMgmt.h" +#include "DGDefs.h" #include "Heaters.h" #include "ROPump.h" #include "PIControllers.h" @@ -180,34 +181,20 @@ /*********************************************************************//** * @brief - * The setPrimaryHeaterTargetTemperature function sets the primary heater - * target temperature. + * The setHeatersTargetTemperature function sets the heaters' target temperature. * @details Inputs: none - * @details Outputs: primaryHeaterTargetTemperature - * @param targetTemp target temperature for the primary heater + * @details Outputs: primaryHeaterTargetTemperature, trimmerHeaterTargetTemperature + * @param targetTempPtr pointer to target temperature data record * @return none *************************************************************************/ -void setPrimaryHeaterTargetTemperature( F32 targetTemp ) +void setHeatersTargetTemperature( TARGET_TEMPS_PAYLOAD_T *targetTempPtr ) { - primaryHeaterTargetTemperature = targetTemp; + primaryHeaterTargetTemperature = targetTempPtr->targetPrimaryHeaterTemp; + trimmerHeaterTargetTemperature = targetTempPtr->targetTrimmerHeaterTemp; } /*********************************************************************//** * @brief - * The setTrimmerHeaterTargetTemperature function sets the trimmer heater - * target temperature. - * @details Inputs: none - * @details Outputs: trimmerHeaterTargetTemperature - * @param targetTemp target temperature for the trimmer heater - * @return none - *************************************************************************/ -void setTrimmerHeaterTargetTemperature( F32 targetTemp ) -{ - trimmerHeaterTargetTemperature = targetTemp; -} - -/*********************************************************************//** - * @brief * The startPrimaryHeater function starts the primary heaters. It resets * the primary heaters state and sets the main primary heater duty cycle. * @details Inputs: primaryHeaterTargetTemperature @@ -231,29 +218,6 @@ /*********************************************************************//** * @brief - * The startTrimmerHeater function starts the trimmer heater. It resets the - * trimmer heater's state and sets the duty cycle of the trimmer heater. - * @details Inputs: trimmerHeaterTargetTemperature - * @details Outputs: hasStartTrimmerHeaterRequested - * @return status - *************************************************************************/ -BOOL startTrimmerHeater( void ) -{ - BOOL status = FALSE; - - if ( ( trimmerHeaterTargetTemperature >= MINIMUM_TARGET_TEMPERATURE ) && ( trimmerHeaterTargetTemperature <= MAXIMUM_TARGET_TEMPERATURE ) ) - { -#ifndef DISABLE_HEATERS_AND_TEMPS - hasStartTrimmerHeaterRequested = TRUE; -#endif - status = TRUE; - } - - return status; -} - -/*********************************************************************//** - * @brief * The stopPrimaryHeater function stops the primary heater. * @details Inputs: none * @details Outputs: Primary heater stops @@ -284,6 +248,46 @@ /*********************************************************************//** * @brief + * The handleTrimmerHeaterCmd handles a start trimmer heater command from the HD. + * It resets the trimmer heater's state and sets the duty cycle of the trimmer heater. + * @details Inputs: none + * @details Outputs: process command and send back response + * @param heaterCmdPtr pointer to heater command data record + * @return status + *************************************************************************/ +void handleTrimmerHeaterCmd( TRIMMER_HEATER_CMD_T *heaterCmdPtr ) +{ + DG_CMD_RESPONSE_T cmdResponse; + + cmdResponse.commandID = DG_CMD_START_TRIMMER_HEATER; + cmdResponse.rejected = TRUE; + cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; + + if ( TRUE == heaterCmdPtr->startHeater ) + { + if ( ( MINIMUM_TARGET_TEMPERATURE <= heaterCmdPtr->targetTemp ) && ( heaterCmdPtr->targetTemp <= MAXIMUM_TARGET_TEMPERATURE ) ) + { + cmdResponse.rejected = FALSE; + #ifndef DISABLE_HEATERS_AND_TEMPS + hasStartTrimmerHeaterRequested = TRUE; + #endif + } + else + { + cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_INVALID_PARAMETER; + } + } + else + { + cmdResponse.rejected = FALSE; + stopTrimmerHeater(); + } + + sendCommandResponseMsg( &cmdResponse ); +} + +/*********************************************************************//** + * @brief * The execHeatersMonitor function turns off the heaters when RO pump is not on. * @details Inputs: none * @details Outputs: Turns off the heaters when RO pump is not on