Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -r14d740bbb065f043daaa348bcda5f447e1c16a32 -r8e9aa2234cc1318c6465480785a0e4af75e7be48 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 14d740bbb065f043daaa348bcda5f447e1c16a32) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 8e9aa2234cc1318c6465480785a0e4af75e7be48) @@ -998,29 +998,29 @@ if ( TRUE == isTestingActivated() ) { // Test one parameter for set since all parameters are set after parameter validation. - if(TRUE == isCriticalDataSet( &treatmentParameters[TREATMENT_PARAM_BLOOD_FLOW] )) + if ( TRUE == isCriticalDataSet( &treatmentParameters[ TREATMENT_PARAM_BLOOD_FLOW ] ) ) { result = TRUE; current_treatment_params.accepted = TRUE; - current_treatment_params.treatment_parameters.bloodFlowRate_mL_min = getTreatmentParameterU32(TREATMENT_PARAM_BLOOD_FLOW); - current_treatment_params.treatment_parameters.dialysateFlowRate_mL_min = getTreatmentParameterU32(TREATMENT_PARAM_DIALYSATE_FLOW); - current_treatment_params.treatment_parameters.treatmentDuration_min = getTreatmentParameterU32(TREATMENT_PARAM_TREATMENT_DURATION); - current_treatment_params.treatment_parameters.heparinPreStop_min = getTreatmentParameterU32(TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME); - current_treatment_params.treatment_parameters.salineBolusVolume_mL = getTreatmentParameterU32(TREATMENT_PARAM_SALINE_BOLUS_VOLUME); - current_treatment_params.treatment_parameters.acidConcentrate = getTreatmentParameterU32(TREATMENT_PARAM_ACID_CONCENTRATE); - current_treatment_params.treatment_parameters.bicarbConcentrate = getTreatmentParameterU32(TREATMENT_PARAM_BICARB_CONCENTRATE); - current_treatment_params.treatment_parameters.dialyzerType = getTreatmentParameterU32(TREATMENT_PARAM_DIALYZER_TYPE); - current_treatment_params.treatment_parameters.heparinType = getTreatmentParameterU32(TREATMENT_PARAM_HEPARIN_TYPE); - current_treatment_params.treatment_parameters.bloodPressureMeasurementInterval_min = getTreatmentParameterU32(TREATMENT_PARAM_BP_MEAS_INTERVAL); - current_treatment_params.treatment_parameters.rinsebackFlowRate_mL_min = getTreatmentParameterU32(TREATMENT_PARAM_RINSEBACK_FLOW_RATE); - current_treatment_params.treatment_parameters.arterialPressureLowLimit_mmHg = getTreatmentParameterS32(TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT); - current_treatment_params.treatment_parameters.arterialPressureHighLimit_mmHg = getTreatmentParameterS32(TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT); - current_treatment_params.treatment_parameters.venousPressureLowLimit_mmHg = getTreatmentParameterS32(TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT); - current_treatment_params.treatment_parameters.venousPressureHighLimit_mmHg = getTreatmentParameterS32(TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT); - current_treatment_params.treatment_parameters.heparinDispenseRate_mL_hr = getTreatmentParameterF32(TREATMENT_PARAM_HEPARIN_DISPENSE_RATE); - current_treatment_params.treatment_parameters.heparinBolusVolume_mL = getTreatmentParameterF32(TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME); - current_treatment_params.treatment_parameters.dialysateTemperature_degC = getTreatmentParameterF32(TREATMENT_PARAM_DIALYSATE_TEMPERATURE); - current_treatment_params.uFVolume_L = getTreatmentParameterF32(TREATMENT_PARAM_UF_VOLUME); + current_treatment_params.treatment_parameters.bloodFlowRate_mL_min = getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ); + current_treatment_params.treatment_parameters.dialysateFlowRate_mL_min = getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ); + current_treatment_params.treatment_parameters.treatmentDuration_min = getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); + current_treatment_params.treatment_parameters.heparinPreStop_min = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ); + current_treatment_params.treatment_parameters.salineBolusVolume_mL = getTreatmentParameterU32( TREATMENT_PARAM_SALINE_BOLUS_VOLUME ); + current_treatment_params.treatment_parameters.acidConcentrate = getTreatmentParameterU32( TREATMENT_PARAM_ACID_CONCENTRATE ); + current_treatment_params.treatment_parameters.bicarbConcentrate = getTreatmentParameterU32( TREATMENT_PARAM_BICARB_CONCENTRATE ); + current_treatment_params.treatment_parameters.dialyzerType = getTreatmentParameterU32( TREATMENT_PARAM_DIALYZER_TYPE ); + current_treatment_params.treatment_parameters.heparinType = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_TYPE ); + current_treatment_params.treatment_parameters.bloodPressureMeasurementInterval_min = getTreatmentParameterU32( TREATMENT_PARAM_BP_MEAS_INTERVAL ); + current_treatment_params.treatment_parameters.rinsebackFlowRate_mL_min = getTreatmentParameterU32( TREATMENT_PARAM_RINSEBACK_FLOW_RATE ); + current_treatment_params.treatment_parameters.arterialPressureLowLimit_mmHg = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT ); + current_treatment_params.treatment_parameters.arterialPressureHighLimit_mmHg = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT ); + current_treatment_params.treatment_parameters.venousPressureLowLimit_mmHg = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT ); + current_treatment_params.treatment_parameters.venousPressureHighLimit_mmHg = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); + current_treatment_params.treatment_parameters.heparinDispenseRate_mL_hr = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ); + current_treatment_params.treatment_parameters.heparinBolusVolume_mL = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); + current_treatment_params.treatment_parameters.dialysateTemperature_degC = getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); + current_treatment_params.uFVolume_L = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); } else { @@ -1047,6 +1047,7 @@ } sendTestCurrentTreatmentParametersResponse(current_treatment_params); } + return result; } Index: firmware/App/Modes/Prime.c =================================================================== diff -u -r1d07de4e970f54f2ae1786ef546cf5567df9ba8e -r8e9aa2234cc1318c6465480785a0e4af75e7be48 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision 1d07de4e970f54f2ae1786ef546cf5567df9ba8e) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision 8e9aa2234cc1318c6465480785a0e4af75e7be48) @@ -421,11 +421,7 @@ { U32 const elapsedPrimeTimeInSecs = calcTimeSince( primeStartTime ) / MS_PER_SECOND; - if ( elapsedPrimeTimeInSecs > MAX_PRIME_TIME ) - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_PRIME_OUT_OF_TIME, elapsedPrimeTimeInSecs, MAX_PRIME_TIME ); - } - + // timeout alarm that used to trigger when max prime time elapsed was removed. if ( ++primeStatusBroadcastTimerCounter >= PRIME_DATA_PUB_INTERVAL ) { PRIMING_DATA_PAYLOAD_T primeData; Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r1d07de4e970f54f2ae1786ef546cf5567df9ba8e -r8e9aa2234cc1318c6465480785a0e4af75e7be48 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 1d07de4e970f54f2ae1786ef546cf5567df9ba8e) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 8e9aa2234cc1318c6465480785a0e4af75e7be48) @@ -491,7 +491,7 @@ void signalAlarmUserActionInitiated( ALARM_USER_ACTION_T action ) { // Validate given action - if ( action < NUMBER_OF_ALARM_USER_ACTIONS ) + if ( ( action < NUMBER_OF_ALARM_USER_ACTIONS ) && ( action != ALARM_USER_ACTION_END_TREATMENT ) ) // end tx action must be confirmed first { ALARM_ID_T a = alarmStatus.alarmTop; @@ -841,6 +841,7 @@ // Check for user confirmation of end treatment alarm response if ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == getConfirmationRequestStatus( GENERIC_CONFIRM_ID_TREATMENT_END ) ) { + clearAllRecoverableAlarms(); initiateAlarmAction( ALARM_ACTION_END_TREATMENT ); } Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r25ede6f944eb53b68c8073404663c99d3ce158b0 -r8e9aa2234cc1318c6465480785a0e4af75e7be48 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 25ede6f944eb53b68c8073404663c99d3ce158b0) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8e9aa2234cc1318c6465480785a0e4af75e7be48) @@ -7040,6 +7040,7 @@ void handleTestCurrentTreamtmentParametersRequest( MESSAGE_T *message ) { BOOL result = FALSE; + // verify payload length if ( 0 == message->hdr.payloadLen ) {