Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r48ca7fd644c67920acc29a80b7af379d0a134d1a -rb6d20d9e5c704a9f7ebceea9bb12731dac61fc2a --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 48ca7fd644c67920acc29a80b7af379d0a134d1a) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision b6d20d9e5c704a9f7ebceea9bb12731dac61fc2a) @@ -91,15 +91,10 @@ typedef struct { U32 heaterID; ///< Heater ID (0: Primary, 1: Trimmer) + U32 startStop; ///< Heater Start:1 and Stop: 0 F32 temperature; ///< Temperature range ( 10.0 to 90.0 deg ) } HEATER_START_CMD_PAYLOAD_T; -/// Payload record structure for heaters stop request -typedef struct -{ - U32 heaterID; ///< Heater ID (0: Primary, 1: Trimmer) -} HEATER_STOP_CMD_PAYLOAD_T; - static HEATER_STATUS_T heatersStatus[ NUM_OF_DD_HEATERS ]; ///< Heaters status. static U32 dataPublicationTimerCounter; ///< Data publication timer counter. static OVERRIDE_U32_T heatersDataPublishInterval = { HEATERS_DATA_PUBLISH_INTERVAL, HEATERS_DATA_PUBLISH_INTERVAL, 0, 0 }; ///< Heaters data publish time interval. @@ -677,15 +672,15 @@ /*********************************************************************//** * @brief - * The testHeaterStartOverride function starts a given heater + * The testHeaterStartStopOverride function starts/stops a given heater * at mentioned temperature. * @details \b Inputs: tester logged in * @details \b Outputs: heatersStatus[] * @param message set message from Dialin which includes the heater to set * and the state to set the heater to. * @return TRUE if set request is successful, FALSE if not *************************************************************************/ -BOOL testHeaterStartOverride( MESSAGE_T *message ) +BOOL testHeaterStartStopOverride( MESSAGE_T *message ) { BOOL result = FALSE; @@ -699,46 +694,23 @@ memcpy( &payload, message->payload, sizeof(HEATER_START_CMD_PAYLOAD_T) ); - if ( ( (DD_HEATERS_T)payload.heaterID < NUM_OF_DD_HEATERS ) && - ( ( payload.temperature >= HEATER_TARGET_TEMPERATURE_MIN ) && ( payload.temperature <= HEATER_TARGET_TEMPERATURE_MAX ) ) ) - { - setHeaterTargetTemperature( (DD_HEATERS_T)payload.heaterID, payload.temperature ); - startHeater( (DD_HEATERS_T)payload.heaterID ); - result = TRUE; - } - } - } - - return result; -} - -/*********************************************************************//** - * @brief - * The testHeaterStopOverride function stops a given heater. - * @details \b Inputs: tester logged in - * @details \b Outputs: heatersStatus[] - * @param message set message from Dialin which includes the heater to set - * and the state to set the heater to. - * @return TRUE if set request is successful, FALSE if not - *************************************************************************/ -BOOL testHeaterStopOverride( MESSAGE_T *message ) -{ - BOOL result = FALSE; - - // Verify tester has logged in with TD - if ( TRUE == isTestingActivated() ) - { - // Verify payload length is valid - if ( sizeof( HEATER_STOP_CMD_PAYLOAD_T ) == message->hdr.payloadLen ) - { - HEATER_STOP_CMD_PAYLOAD_T payload; - - memcpy( &payload, message->payload, sizeof(HEATER_STOP_CMD_PAYLOAD_T) ); - if ( (DD_HEATERS_T)payload.heaterID < NUM_OF_DD_HEATERS ) { - stopHeater( (DD_HEATERS_T)payload.heaterID ); - result = TRUE; + // Handle start command + if ( ( TRUE == payload.startStop ) && + ( ( payload.temperature >= HEATER_TARGET_TEMPERATURE_MIN ) && ( payload.temperature <= HEATER_TARGET_TEMPERATURE_MAX ) ) ) + { + setHeaterTargetTemperature( (DD_HEATERS_T)payload.heaterID, payload.temperature ); + startHeater( (DD_HEATERS_T)payload.heaterID ); + result = TRUE; + } + + //Handle stop command + if ( FALSE == payload.startStop ) + { + stopHeater( (DD_HEATERS_T)payload.heaterID ); + result = TRUE; + } } } }