Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r9e114bbc273088bff2739e8ea54d3af66b6cd141 -rd838fbaa8507b883fa112e69137e86fc9fb2cb6f --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 9e114bbc273088bff2739e8ea54d3af66b6cd141) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d838fbaa8507b883fa112e69137e86fc9fb2cb6f) @@ -948,18 +948,25 @@ *************************************************************************/ BOOL handleStartStopPrimaryHeater( MESSAGE_T * message ) { - BOOL result; - U32 heaterStatus = message->payload[0]; + BOOL result = FALSE; - if ( heaterStatus == 1 ) + if ( message->hdr.payloadLen == sizeof(U32) ) { - result = startPrimaryHeater(); + BOOL startingHeater; + + memcpy( &startingHeater, message->payload, sizeof(U32) ); + + if ( TRUE == startingHeater ) + { + result = startPrimaryHeater(); + } + else + { + stopPrimaryHeater(); + result = TRUE; + } } - else - { - stopPrimaryHeater(); - result = TRUE; - } + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_HD, result ); return result; }