Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r00b32a5dad2e136d31cfaf0de16f7767b9920fec -r5fc16235c1752c993b3f1285f3a2b9738372af7a --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 00b32a5dad2e136d31cfaf0de16f7767b9920fec) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 5fc16235c1752c993b3f1285f3a2b9738372af7a) @@ -27,6 +27,7 @@ #include "Heaters.h" #include "LoadCell.h" #include "MessagePayloads.h" +#include "ModeHeatDisinfect.h" #include "ModeStandby.h" #include "ModeRecirculate.h" #include "MsgQueues.h" @@ -2365,4 +2366,39 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } +/************************************************************************* + * @brief + * The handleStartStopDGHeatDisinfect function handles a request start or + * stop DG heat disifect cycle. + * @details Inputs: none + * @details Outputs: message handled + * @param message: a pointer to the message to handle + * @return result + *************************************************************************/ +BOOL handleStartStopDGHeatDisinfect( MESSAGE_T *message ) +{ + BOOL result = FALSE; + + if ( message->hdr.payloadLen == sizeof(U32) ) + { + BOOL startingDGHeatDisinfect; + + memcpy( &startingDGHeatDisinfect, message->payload, sizeof(U32) ); + + if ( TRUE == startingDGHeatDisinfect ) + { + startDGHeatDisinfect(); + result = TRUE; + } + else + { + stopDGHeatDisinfect(); + result = TRUE; + } + } + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_HD, result ); + + return result; +} + /**@}*/