Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rbd1f452097afa4da0f60f64ecc6b6aab0a341d8c -rd371983d84daf213db3e39d21cf30c13161ce062 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision bd1f452097afa4da0f60f64ecc6b6aab0a341d8c) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d371983d84daf213db3e39d21cf30c13161ce062) @@ -7,8 +7,8 @@ * * @file SystemCommMessages.c * -* @author (last) Sean Nash -* @date (last) 24-Aug-2023 +* @author (last) Michael Garthwaite +* @date (last) 11-Sep-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -1132,6 +1132,27 @@ /*********************************************************************//** * @brief + * The handleParkConecentratePumpsCmd function handles a DG concentrate pumps park + * command message from the HD. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleParkConecentratePumpsCmd( MESSAGE_T *message ) +{ + BOOL result = FALSE; + + if ( message->hdr.payloadLen == 0 ) + { + result = handleConcentratePumpParkRequest(); + } + + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_HD, result ); +} + +/*********************************************************************//** + * @brief * The handleStartStopTrimmerHeaterCmd function handles a trimmer heater start/stop * command message from the HD. * @details Inputs: none @@ -1229,7 +1250,7 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } -/************************************************************************* +/*********************************************************************//** * @brief * The handleStartStopDGHeatDisinfect function handles a request start or * stop DG heat disifect mode. @@ -1686,7 +1707,7 @@ sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_UI, result ); } -/************************************************************************* +/*********************************************************************//** * @brief * The handleStartStopDGHeatDisinfectActiveCool function handles a request * start or stop DG heat disinfect active cool mode. @@ -1814,7 +1835,7 @@ serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_UI, ACK_REQUIRED ); } -/************************************************************************* +/*********************************************************************//** * @brief * The handleStartStopDGROPermeateSample function handles a request to * start or stop DG RO permeate sample mode. @@ -2557,7 +2578,7 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } -/************************************************************************* +/*********************************************************************//** * @brief * The handleSetDrainPumpTargetOutletFlowLPM function handles a * request to set the drain pump outlet flow in L/min. @@ -2583,7 +2604,7 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } -/************************************************************************* +/*********************************************************************//** * @brief * The handleSetSwitchesStatusOverrideRequest function handles a * request to override the status of a switch in DG. @@ -5044,4 +5065,99 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } +/*********************************************************************//** + * @brief + * The handleTestDG77CStateTimerOverride function handles a request + * to override the heat disinfection timer at 77 C + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestDG77CStateTimerOverride( MESSAGE_T * message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) + { + result = testSetDG77CStateTimerOverride( payload.state.u32 ); + } + else + { + result = testResetDG77CStateTimerOverride(); + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief + * The handleTestDG82CStateTimerOverride function handles a request + * to override the heat disinfection timer at 82 C + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestDG82CStateTimerOverride( MESSAGE_T * message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) + { + result = testSetDG82CStateTimerOverride( payload.state.u32 ); + } + else + { + result = testResetDG82CStateTimerOverride(); + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief + * The handleTestChemDisinfectAcidOverride function handles a request + * to override the CD2 moving average in Chem disinfection. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestChemDisinfectAcidOverride( MESSAGE_T * message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) + { + result = testSetChemDisinfectionCD2AvgOverride( payload.state.f32 ); + } + else + { + result = testResetChemDisinfectionCD2AvgOverride(); + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} /**@}*/