Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -re5d6674fbf4b6ddd8057385babac0a085ce18f42 -r709def41bcde8e2e59d83c5e9c5a06ab0ee74ec8 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision e5d6674fbf4b6ddd8057385babac0a085ce18f42) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 709def41bcde8e2e59d83c5e9c5a06ab0ee74ec8) @@ -7,8 +7,8 @@ * * @file ModeTreatment.c * -* @author (last) Sean Nash -* @date (last) 07-Feb-2023 +* @author (last) Michael Garthwaite +* @date (last) 17-Mar-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -740,11 +740,19 @@ TREATMENT_STATE_T result = TREATMENT_DIALYSIS_STATE; U32 newTime = getMSTimerCount(); U32 msSinceLast = calcTimeBetween( lastTreatmentTimeStamp, newTime ); + DIALYSIS_STATE_T dialysisState = getDialysisState(); // Update treatment time (unless delivering a saline bolus) - if ( getDialysisState() != DIALYSIS_SALINE_BOLUS_STATE ) + if ( dialysisState != DIALYSIS_SALINE_BOLUS_STATE ) { +#ifdef DIALYZER_REPRIME_ENABLED + if ( dialysisState != DIALYSIS_DIALYZER_REPRIME_STATE ) + { +#endif treatmentTimeMS += msSinceLast; +#ifdef DIALYZER_REPRIME_ENABLED + } +#endif } lastTreatmentTimeStamp = newTime; @@ -1077,7 +1085,7 @@ pendingParamChangesTimer = getMSTimerCount(); // Verify UF rate change would be valid (leave zero if not valid - UI will disable option) - if ( uFRate <= (F32)MAX_UF_RATE_ML_MIN ) + if ( ( uFRate <= (F32)MAX_UF_RATE_ML_MIN ) && ( uFRate >= MIN_UF_RATE_ML_MIN ) ) { result = TRUE; pendingUFVolumeChange = uFVolume; @@ -1405,7 +1413,7 @@ data.treatmentTimeElapsedinSec = elapsedTreatmentTimeInSecs; data.treatmentTimeRemaininginSec = presTreatmentTimeSecs - elapsedTreatmentTimeInSecs; } - broadcastData( MSG_ID_TREATMENT_TIME, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_TIME_DATA_T ) ); + broadcastData( MSG_ID_TREATMENT_TIME_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_TIME_DATA_T ) ); treatmentTimeBroadcastTimerCtr = 0; } // Broadcast treatment state data at interval @@ -1423,8 +1431,13 @@ payload.txEndState = getCurrentTreatmentEndState(); payload.heparinState = getHeparinState(); payload.dialysisState = getDialysisState(); +#ifdef DIALYZER_REPRIME_ENABLED + payload.dlzReprimeState = getDialyzerRePrimeState(); +#else + payload.dlzReprimeState = 0; +#endif - broadcastData( MSG_ID_TREATMENT_STATE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&payload, sizeof( TREATMENT_STATE_DATA_T ) ); + broadcastData( MSG_ID_TREATMENT_STATE_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&payload, sizeof( TREATMENT_STATE_DATA_T ) ); treatmentStateBroadcastTimerCtr = 0; } }