Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r16a65b53941177fb79af9a262740da5f992f4776 -r44cc25461e4936f7928904640c87a03ef7cf3c16 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 16a65b53941177fb79af9a262740da5f992f4776) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 44cc25461e4936f7928904640c87a03ef7cf3c16) @@ -127,7 +127,14 @@ U32 mainPrimayHeaterDC; U32 smallPrimaryHeaterDC; U32 trimmerHeaterDC; -} HEATERS_DATA_T; +} HEATERS_DATA_T; + +typedef struct +{ + U32 internalState; + F32 elapsedTimeMins; + U32 currentCycle; +} DG_HEAT_DISINFECT_DATA_T; #pragma pack(pop) @@ -666,7 +673,7 @@ * The broadcastTemperatureSensorsData function sends out DG temperature * sensors data * Inputs : heaters data - * Outputs : temperatur sensors data msg constructed and queued + * Outputs : temperature sensors data msg constructed and queued * @param sensorsValue : sensors value array * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ @@ -687,6 +694,41 @@ result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); return result; +} + +/************************************************************************* + * @brief + * The broadcastHeatDisinfectData function sends out DG heat disinfection + * data + * Inputs : DG heat disinfect data + * Outputs : DG heat disinfect data msg constructed and queued + * @param internalState : The state of the internal state machine of the mode + * @param minutesElapsed: Minutes elapsed since the start of heat disinfection + * @param currentCycle: Current cycle count of DG heat disinfection + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastHeatDisinfectData( U32 internalState, F32 minutesElapsed, U32 currentCycle ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + DG_HEAT_DISINFECT_DATA_T payload; + + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DG_HEAT_DISINFECT_DATA; + msg.hdr.payloadLen = sizeof( DG_HEAT_DISINFECT_DATA_T ); + + payload.internalState = internalState; + payload.elapsedTimeMins = minutesElapsed; + payload.currentCycle = currentCycle; + + memcpy( payloadPtr, &payload, sizeof( DG_HEAT_DISINFECT_DATA_T ) ); + + // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); + + return result; } // *********************************************************************** @@ -1287,7 +1329,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestPressureDataBroadcastIntervalOverrideRequest, testSetPressuresDataPublishIntervalOverride, testResetPressuresDataPublishIntervalOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestPressureDataBroadcastIntervalOverrideRequest, \ + testSetPressuresDataPublishIntervalOverride, testResetPressuresDataPublishIntervalOverride ) /************************************************************************* * @brief @@ -1299,7 +1342,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( F32, handleTestROPumpSetPointOverrideRequest, testSetTargetROPumpFlowRateOverride, testResetTargetROPumpFlowRateOverride ) +DATA_OVERRIDE_HANDLER_FUNC_F32( F32, handleTestROPumpSetPointOverrideRequest, \ + testSetTargetROPumpFlowRateOverride, testResetTargetROPumpFlowRateOverride ) /************************************************************************* * @brief @@ -1323,7 +1367,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestROPumpDataBroadcastIntervalOverrideRequest, testSetROPumpDataPublishIntervalOverride, testResetROPumpDataPublishIntervalOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestROPumpDataBroadcastIntervalOverrideRequest, \ + testSetROPumpDataPublishIntervalOverride, testResetROPumpDataPublishIntervalOverride ) /************************************************************************* * @brief @@ -1335,7 +1380,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDrainPumpSetPointOverrideRequest, testSetTargetDrainPumpSpeedOverride, testResetTargetDrainPumpSpeedOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDrainPumpSetPointOverrideRequest, \ + testSetTargetDrainPumpSpeedOverride, testResetTargetDrainPumpSpeedOverride ) /************************************************************************* * @brief @@ -1347,7 +1393,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDrainPumpDataBroadcastIntervalOverrideRequest, testSetDrainPumpDataPublishIntervalOverride, testResetDrainPumpDataPublishIntervalOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDrainPumpDataBroadcastIntervalOverrideRequest, \ + testSetDrainPumpDataPublishIntervalOverride, testResetDrainPumpDataPublishIntervalOverride ) /************************************************************************* * @brief @@ -1371,7 +1418,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestValvesStatesPublishIntervalOverrideRequest, testSetValvesStatesPublishIntervalOverride, testResetValvesStatesPublishIntervalOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestValvesStatesPublishIntervalOverrideRequest, \ + testSetValvesStatesPublishIntervalOverride, testResetValvesStatesPublishIntervalOverride ) /************************************************************************* * @brief @@ -1383,7 +1431,8 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDGSafetyShutdownOverrideRequest, testSetSafetyShutdownOverride, testResetSafetyShutdownOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleTestDGSafetyShutdownOverrideRequest, \ + testSetSafetyShutdownOverride, testResetSafetyShutdownOverride ) /************************************************************************* * @brief @@ -1395,4 +1444,76 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleSetDrainPumpDeltaPressureOverrideRequest, testSetTargetDrainPumpDeltaPressureOverride, testResetTargetDrainPumpDeltaPressureOverride ) +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleSetDrainPumpDeltaPressureOverrideRequest, \ + testSetTargetDrainPumpDeltaPressureOverride, testResetTargetDrainPumpDeltaPressureOverride ) + +/************************************************************************* + * @brief + * The handleSetHeatDisinfectRecircStateDurationOverrideRequest function handles a \n + * request to override the heat disinfection recirculation state duration in minutes + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( F32, handleSetHeatDisinfectRecircStateDurationOverrideRequest, \ + testSetHeatDisinfectRecircDurationOverride, testResetHeatDisinfectRecircDurationOverride ) + +/************************************************************************* + * @brief + * The handleSetHeatDisinfectRSVR1ToRSVR2StateDurationOverrideRequest \n + * function handles a request to override the heat disinfection reservoir 1 \n + * to reservoir 2 state duration in minutes + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( F32, handleSetHeatDisinfectRSVR1ToRSVR2StateDurationOverrideRequest, \ + testSetHeatDisinfectR1ToR2DurationOverride, testResetHeatDisinfectR1ToR2DurationOverride ) + +/************************************************************************* + * @brief + * The handleSetHeatDisinfectRSVR2ToRSVR1StateDurationOverrideRequest \n + * function handles a request to override the heat disinfection reservoir 2 \n + * to reservoir 1 state duration in minutes + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( F32, handleSetHeatDisinfectRSVR2ToRSVR1StateDurationOverrideRequest, \ + testSetHeatDisinfectionR2ToR1DurationOverride, testResetHeatDisinfectionR2ToR1DurationOverride ) + +/************************************************************************* + * @brief + * The handleSetHeatDisinfectNoOfCyclesStateDurationOverrideRequest \n + * function handles a request to override the heat disinfection no of \n + * cycles to run request + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleSetHeatDisinfectNoOfCyclesStateDurationOverrideRequest, \ + testSetHeatDisinfectNoOfCyclesOverride, testResetHeatDisinfectNoOfCyclesOverride ) + + +/************************************************************************* + * @brief + * The handleSetHeatDisinfectionPublishDataIntervalOverrideRequest \n + * function handles a request to override the heat disinfection data \n + * publish interval + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( U32, handleSetHeatDisinfectionPublishDataIntervalOverrideRequest, \ + testSetHeatDisinfectDataPublishIntervalOverride, testResetHeatDisinfectDataPublishIntervalOverride ) +