Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r437ac340cfe0bd90bc016372113bae3d594b7526 -rf249310122b6543b4145bb4824966535c93515d0 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 437ac340cfe0bd90bc016372113bae3d594b7526) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision f249310122b6543b4145bb4824966535c93515d0) @@ -1256,7 +1256,8 @@ * @brief * The publishBloodLeakData function publishes blood leak data at the set interval. * @details Inputs: bloodLeakDataPublicationTimerCounter - * @details Outputs: bloodLeakDataPublicatimerCouonTinter + * @details Outputs: bloodLeakDataPublicatimerCouonTinter, bloodLeakPersistenceCtr, + * bloodLeakState * @return none *************************************************************************/ static void publishBloodLeakData( void ) @@ -1268,7 +1269,7 @@ data.bloodLeakStatus = (U32)getBloodLeakStatus(); data.bloodLeakState = (U32)bloodLeakState; - data.bloodLeakPersistentCounter = bloodLeakPersistenceCtr; + data.bloodLeakPersistentCounter = bloodLeakPersistenceCtr; bloodLeakDataPublicationCounter = 0; broadcastData( MSG_ID_HD_BLOOD_LEAK_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( BLOOD_LEAK_DATA_T ) ); Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r437ac340cfe0bd90bc016372113bae3d594b7526 -rf249310122b6543b4145bb4824966535c93515d0 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 437ac340cfe0bd90bc016372113bae3d594b7526) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision f249310122b6543b4145bb4824966535c93515d0) @@ -75,8 +75,6 @@ /// Interval (in task intervals) at which to publish standby mode data to CAN bus. static OVERRIDE_U32_T standbyModePublishInterval = { DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, 0 }; -static const U32 SERVICE_TIME_INTERVAL_S = (U32)( 365 * 0.5 * SECONDS_IN_A_DAY ); ///< HD/DG 6-month service interval in seconds. - // ********** private function prototypes ********** static HD_STANDBY_STATE_T handleStandbyModeStartState( void ); @@ -1008,7 +1006,7 @@ currentDGCleaningMode.alarmID = ALARM_ID_NO_ALARM; currentDGCleaningMode.startRequestCmdID = DG_CMD_NONE; currentDGCleaningMode.dgOpMode = DG_MODE_FAUL; - currentDGCleaningMode.sampleRqstTrgrd = FALSE; + currentDGCleaningMode.sampleRqstTrgrd = FALSE; currentDGCleaningMode.sampleRequestID = GENERIC_CONFIRM_ID_NONE; currentDGCleaningMode.stopRequestCmdID = GENERIC_CONFIRM_ID_NONE; } @@ -1160,10 +1158,10 @@ BOOL isChemFlushComplete = ( lastChemFlushCompleteDate > lastChemCompleteDate ? TRUE : FALSE ); // If either of the basic flush, heat disinfect, or chemical disinfect flush have been done within the interval, it means the filters have been flushed - BOOL isBasicFlushValid = ( lastFlushCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : TRUE ); - BOOL isChemFlushValid = ( lastChemFlushCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : TRUE ); - BOOL isHeatDisCoolFlushValid = ( lastHeatCoolCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : TRUE ); - BOOL isFlushValid = ( isBasicFlushValid || isChemFlushValid || isHeatDisCoolFlushValid ); + BOOL isBasicFlushValid = ( lastFlushCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : FALSE ); + BOOL isChemFlushValid = ( lastChemFlushCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : FALSE ); + BOOL isHeatDisCoolFlushValid = ( lastHeatCoolCompleteDate < ( getRTCTimestamp() - FLUSH_TIME_INTERVAL_S ) ? TRUE : FALSE ); + BOOL isFlushValid = ( ( TRUE == isBasicFlushValid ) || ( TRUE == isChemFlushValid ) || ( TRUE == isHeatDisCoolFlushValid ) ); // If all of the above conditions are true, it means we can start a treatment if ( ( TRUE == hasDisBeenDone ) && ( TRUE == isHeatDisValid ) && ( TRUE == isChemFlushComplete ) && ( TRUE == isFlushValid ) ) @@ -1197,8 +1195,8 @@ { U32 dgSrvcElapsedTimeS = getRTCTimestamp() - dgData.dgServiceRecord.lastServiceEpochDate; U32 hdSrvcElapsedTimeS = getRTCTimestamp() - hdServiceRecord.lastServiceEpochDate; - BOOL hasDGSrvcBeenExpired = ( dgSrvcElapsedTimeS > SERVICE_TIME_INTERVAL_S ? TRUE : FALSE ); - BOOL hasHDSrvcBeenExpied = ( hdSrvcElapsedTimeS > SERVICE_TIME_INTERVAL_S ? TRUE : FALSE ); + BOOL hasDGSrvcBeenExpired = ( dgSrvcElapsedTimeS > dgData.dgServiceRecord.serviceIntervalSeconds ? TRUE : FALSE ); + BOOL hasHDSrvcBeenExpied = ( hdSrvcElapsedTimeS > hdServiceRecord.serviceIntervalSeconds ? TRUE : FALSE ); if ( TRUE == hasDGSrvcBeenExpired ) { Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r39677168af0080bcab76ef65ef90875f830e1913 -rf249310122b6543b4145bb4824966535c93515d0 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 39677168af0080bcab76ef65ef90875f830e1913) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision f249310122b6543b4145bb4824966535c93515d0) @@ -1183,7 +1183,7 @@ break; case MSG_ID_DG_SEND_RO_PERMEATE_SAMPLE_DISPENSE_READY_TO_HD: - handleReceiveROPermeateSampleReadyToDispenseFromDG(); + handleReceiveROPermeateSampleReadyToDispenseFromDG( message ); break; // NOTE: this always must be the last case Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r39677168af0080bcab76ef65ef90875f830e1913 -rf249310122b6543b4145bb4824966535c93515d0 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 39677168af0080bcab76ef65ef90875f830e1913) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision f249310122b6543b4145bb4824966535c93515d0) @@ -3504,11 +3504,15 @@ * mode * @details Inputs: none * @details Outputs: none + * @param message a pointer to the message to handle * @return none *************************************************************************/ -void handleReceiveROPermeateSampleReadyToDispenseFromDG( void ) +void handleReceiveROPermeateSampleReadyToDispenseFromDG( MESSAGE_T* message ) { - signalROPermeateSampleDGReadyToDispense(); + if ( 0 == message->hdr.payloadLen ) + { + signalROPermeateSampleDGReadyToDispense(); + } } Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r43949bb09b178239911c2e46c6555bc31289090f -rf249310122b6543b4145bb4824966535c93515d0 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 43949bb09b178239911c2e46c6555bc31289090f) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision f249310122b6543b4145bb4824966535c93515d0) @@ -557,7 +557,7 @@ BOOL sendRequestROPermeateSampleCollectionToDG( U32 status ); // MSG_ID_DG_SEND_RO_PERMEATE_SAMPLE_DISPENSE_READY_TO_HD -void handleReceiveROPermeateSampleReadyToDispenseFromDG( void ); +void handleReceiveROPermeateSampleReadyToDispenseFromDG( MESSAGE_T* message ); // *********** public test support message functions **********