Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -re47489aaf3c818c6f438434ff6b2cf1cafc4210c -rd4e7cd17654a007b5e140e32bd368751dca7977a --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision e47489aaf3c818c6f438434ff6b2cf1cafc4210c) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d4e7cd17654a007b5e140e32bd368751dca7977a) @@ -1284,10 +1284,12 @@ if ( TRUE == startingDGHeatDisinfect ) { + setNocturnalHeatDisinfectStatus( FALSE ); status = startDGHeatDisinfect(); } else { + setNocturnalHeatDisinfectStatus( FALSE ); status = stopDGHeatDisinfect(); } } @@ -1968,7 +1970,41 @@ serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_HD, ACK_REQUIRED ); } +/*********************************************************************//** + * @brief + * The handleStartStopDGNocturnalHeatDisifnect function handles a request to + * start or stop DG nocturnal heat disinfect. + * @details Inputs: none + * @details Outputs: message handled + * @param message: a pointer to the message to handle + * @return result + *************************************************************************/ +void handleStartStopDGNocturnalHeatDisifnect( MESSAGE_T* message ) +{ + BOOL status = FALSE; + if ( message->hdr.payloadLen == sizeof(U32) ) + { + BOOL startingDGNocturnalHeatDisinfect; + + memcpy( &startingDGNocturnalHeatDisinfect, message->payload, sizeof(U32) ); + + if ( TRUE == startingDGNocturnalHeatDisinfect ) + { + setNocturnalHeatDisinfectStatus( TRUE ); + status = startDGHeatDisinfect(); + } + else + { + setNocturnalHeatDisinfectStatus( FALSE ); + status = startDGHeatDisinfect(); + } + } + + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_HD, status ); +} + + // *********************************************************************** // **************** Message Handling Helper Functions ******************** // ***********************************************************************