Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r1d44cf33cf4461b81b19a8ab0e402c609649786b -r388a6f1cf7661a973b0b08c2eeb4de30522c1e88 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 1d44cf33cf4461b81b19a8ab0e402c609649786b) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 388a6f1cf7661a973b0b08c2eeb4de30522c1e88) @@ -943,18 +943,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; }