Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r7665e7b142961a50c5e77c44877247366a374526 -rdaefaef0d2d3e13ff563f11d9721ccc1d831cf06 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 7665e7b142961a50c5e77c44877247366a374526) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision daefaef0d2d3e13ff563f11d9721ccc1d831cf06) @@ -1274,10 +1274,10 @@ HD_FLOW_SENSORS_CAL_RECORD_T cal = getHDFlowSensorsCalibrationRecord(); // Retrieve blood flow sensor calibration data and check for sensor connected status - if ( ( TRUE == getCalibrationData( &cal ) ) && ( BFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGABloodFlowMeterStatus() ) ) + if ( BFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGABloodFlowMeterStatus() ) { - bloodFlowCalGain = cal.hdFlowSensors.gain; - bloodFlowCalOffset = cal.hdFlowSensors.offset; + bloodFlowCalGain = cal.hdFlowSensors[ CAL_DATA_HD_BLOOD_FLOW_SENSOR ].gain; + bloodFlowCalOffset = cal.hdFlowSensors[ CAL_DATA_HD_BLOOD_FLOW_SENSOR ].offset; result = SELF_TEST_STATUS_PASSED; } Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -reda59c3b44a87b7dca0991b45d60cfe3f3601b27 -rdaefaef0d2d3e13ff563f11d9721ccc1d831cf06 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision eda59c3b44a87b7dca0991b45d60cfe3f3601b27) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision daefaef0d2d3e13ff563f11d9721ccc1d831cf06) @@ -1232,10 +1232,10 @@ HD_FLOW_SENSORS_CAL_RECORD_T cal = getHDFlowSensorsCalibrationRecord(); // Retrieve dialysate flow sensor calibration data - if ( ( TRUE == getCalibrationData( &cal ) ) && ( DFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGADialysateFlowMeterStatus() ) ) + if ( DFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGADialysateFlowMeterStatus() ) { - dialInFlowCalGain = cal.hdFlowSensors.gain; - dialInFlowCalOffset = cal.hdFlowSensors.offset; + dialInFlowCalGain = cal.hdFlowSensors[ CAL_DATA_HD_DIALYZER_FLOW_SENSOR ].gain; + dialInFlowCalOffset = cal.hdFlowSensors[ CAL_DATA_HD_DIALYZER_FLOW_SENSOR ].offset; result = SELF_TEST_STATUS_PASSED; } Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -r111d91eb16612b02663397a2faa713f2a9bafe0c -rdaefaef0d2d3e13ff563f11d9721ccc1d831cf06 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 111d91eb16612b02663397a2faa713f2a9bafe0c) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision daefaef0d2d3e13ff563f11d9721ccc1d831cf06) @@ -567,17 +567,9 @@ currentUFState = handleUFRunningState( &result ); break; - case UF_OFF_STATE: - currentUFState = handleUFOffState( &result ); - break; - - case UF_COMPLETED_STATE: - currentUFState = handleUFCompletedState( &result ); - break; - default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_DIALYSIS_INVALID_UF_STATE, currentUFState ) - currentUFState = UF_COMPLETED_STATE; + currentUFState = UF_PAUSED_STATE; break; } @@ -637,16 +629,9 @@ { UF_STATE_T result; - if ( maxUFVolumeML < NEARLY_ZERO ) - { - result = UF_OFF_STATE; - } - else - { - lastUFTimeStamp = getMSTimerCount(); - uFTimeMS = 0; - result = UF_RUNNING_STATE; - } + lastUFTimeStamp = getMSTimerCount(); + uFTimeMS = 0; + result = UF_RUNNING_STATE; return result; } @@ -725,7 +710,7 @@ // If we have reached target UF volume, UF is complete if ( refUFVolume >= maxUFVolumeML ) { - result = UF_COMPLETED_STATE; + setUFRate = 0.0; } // Handle saline bolus start request from user else if ( TRUE == salineBolusStartRequested ) @@ -750,74 +735,6 @@ /*********************************************************************//** * @brief - * The handleUFCompletedOrOffState function handles the UF Off state - * of the ultrafiltration state machine. - * @details Inputs: none - * @details Outputs: UF volumes updated and provided to DPo pump controller. - * @param dialysisState next dialysis state - * @return next ultrafiltration state - *************************************************************************/ -static UF_STATE_T handleUFOffState( DIALYSIS_STATE_T *dialysisState ) -{ - UF_STATE_T result = UF_OFF_STATE; - - // Calculate UF volumes and provide to dialysate outlet pump controller - updateUFVolumes(); - - // Handle saline bolus start request from user - if ( TRUE == salineBolusStartRequested ) - { - salineBolusAutoResumeUF = FALSE; - // Go to saline bolus state - if ( SALINE_BOLUS_STATE_IDLE == currentSalineBolusState ) - { - *dialysisState = DIALYSIS_SALINE_BOLUS_STATE; - } - else - { - salineBolusStartRequested = FALSE; - } - } - - return result; -} - -/*********************************************************************//** - * @brief - * The handleUFCompletedState function handles the UF Completed - * state of the ultrafiltration state machine. This is a terminal state. - * @details Inputs: none - * @details Outputs: UF volumes updated and provided to DPo pump controller. - * @param dialysisState next dialysis state - * @return next ultrafiltration state - *************************************************************************/ -static UF_STATE_T handleUFCompletedState( DIALYSIS_STATE_T *dialysisState ) -{ - UF_STATE_T result = UF_COMPLETED_STATE; - - // Calculate UF volumes and provide to dialysate outlet pump controller - updateUFVolumes(); - - // Handle saline bolus start request from user - if ( TRUE == salineBolusStartRequested ) - { - salineBolusAutoResumeUF = FALSE; - // Go to saline bolus state - if ( SALINE_BOLUS_STATE_IDLE == currentSalineBolusState ) - { - *dialysisState = DIALYSIS_SALINE_BOLUS_STATE; - } - else - { - salineBolusStartRequested = FALSE; - } - } - - return result; -} - -/*********************************************************************//** - * @brief * The handleSalineBolusIdleState function handles the idle state of the * saline bolus state machine. * @details Inputs: none Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r27f3db92495948d4c1192421c1b0c20338c4a034 -rdaefaef0d2d3e13ff563f11d9721ccc1d831cf06 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 27f3db92495948d4c1192421c1b0c20338c4a034) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision daefaef0d2d3e13ff563f11d9721ccc1d831cf06) @@ -284,10 +284,10 @@ case NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE: // TODO: Implement self tests - currentNoCartSelfTestsState = NO_CART_SELF_TESTS_DOOR_SWITCH_STATE; + currentNoCartSelfTestsState = NO_CART_SELF_TESTS_START_HOMING_STATE; break; - case NO_CART_SELF_TESTS_DOOR_SWITCH_STATE: + case NO_CART_SELF_TESTS_START_HOMING_STATE: // TODO: Implement self tests currentNoCartSelfTestsState = NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE; break; @@ -386,14 +386,6 @@ currentDrySelfTestsState = handleDrySelfTestWaitForDoorCloseState(); break; - case DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE: - currentDrySelfTestsState = handleDrySelfTestBubbleDetectorsState(); - break; - - case DRY_SELF_TESTS_AIR_TRAP_STATE: - currentDrySelfTestsState = handleDrySelfTestAirTrapState(); - break; - case DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE: if ( SELF_TEST_STATUS_PASSED == execPresOcclDryTest() ) { @@ -740,66 +732,14 @@ if ( STATE_CLOSED == getFPGADoorState() ) { - state = DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE; + state = DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE; } return state; } /*********************************************************************//** * @brief - * The handleDrySelfTestBubbleDetectorsState function verify no fluid is detected - * by bubble detectors. - * @details Inputs: none - * @details Outputs: none - * @return the next state of dry self-tests state machine - *************************************************************************/ -static DRY_SELF_TESTS_STATE_T handleDrySelfTestBubbleDetectorsState( void ) -{ - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE; - - BOOL const isADADetectedAir = getFPGAArterialAirBubbleStatus(); - BOOL const isADVDetectedAir = getFPGAVenousAirBubbleStatus(); - - if ( ( TRUE == isADADetectedAir ) && ( TRUE == isADVDetectedAir ) ) - { - state = DRY_SELF_TESTS_AIR_TRAP_STATE; - } - else - { - activateAlarmNoData( ALARM_ID_INSTALL_NEW_CARTRIDGE ); - } - - return state; -} - -/*********************************************************************//** - * @brief - * The handleDrySelfTestAirTrapState function verify no fluid is detected - * by air trap. - * @details Inputs: none - * @details Outputs: none - * @return the next state of dry self-tests state machine - *************************************************************************/ -static DRY_SELF_TESTS_STATE_T handleDrySelfTestAirTrapState( void ) -{ - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_AIR_TRAP_STATE; - - if ( ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) && - ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) ) - { - state = DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE; - } - else - { - activateAlarmNoData( ALARM_ID_INSTALL_NEW_CARTRIDGE ); - } - - return state; -} - -/*********************************************************************//** - * @brief * The handleDrySelfTestPressureSensorsSetupState function handles the setup * for pressure sensors dry self-test. * @details Inputs: none Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -reda59c3b44a87b7dca0991b45d60cfe3f3601b27 -rdaefaef0d2d3e13ff563f11d9721ccc1d831cf06 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision eda59c3b44a87b7dca0991b45d60cfe3f3601b27) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision daefaef0d2d3e13ff563f11d9721ccc1d831cf06) @@ -1179,10 +1179,6 @@ handleTreatmentParametersFromUI( message ); break; - case MSG_ID_UI_START_TREATMENT: - handleUIStartTreatmentMsg( message ); - break; - case MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS: handleUIUserConfirmTreatmentParameters( message ); break;