Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r35f1db1a4e254a69234e50082d0cce0122e6a84c -rcc3f9f20ed1a76552e2f433f4cbb7a9f2ae67713 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 35f1db1a4e254a69234e50082d0cce0122e6a84c) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision cc3f9f20ed1a76552e2f433f4cbb7a9f2ae67713) @@ -24,6 +24,7 @@ #include "ModePreTreat.h" #include "OperationModes.h" #include "PinchValve.h" +#include "Prime.h" #include "StatePreTxRecirculate.h" #include "SyringePump.h" #include "TaskGeneral.h" @@ -108,13 +109,13 @@ { initPreTreatmentMode(); initTubeSetInstall(); + initPrime(); // TODO: remove after implementing blood pump homing in some state homeBloodPump(); - // TODO: remove these homeValve() when SELF_TEST_NO_CART_STATE is implemented (homing valves is handled over there). - homeValve(H1_VALV, FALSE, FALSE); - homeValve(H19_VALV, FALSE, FALSE); + setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( H19_VALV, VALVE_POSITION_A_INSERT_EJECT ); return (U32)currentPreTreatmentState; } @@ -214,7 +215,9 @@ break; case TD_PRE_TREATMENT_CONFIRM_RX_STATE: - // No action required. + signalBloodPumpHardStop(); + setValvePosition( H1_VALV, VALVE_POSITION_C_CLOSE ); + setValvePosition( H19_VALV, VALVE_POSITION_C_CLOSE ); break; case TD_PRE_TREATMENT_RECIRCULATE_STATE: @@ -223,14 +226,14 @@ case TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE: signalBloodPumpHardStop(); - setValvePosition( H1_VALV, VALVE_POSITION_B_OPEN ); + setValvePosition( H1_VALV, VALVE_POSITION_C_CLOSE ); setValvePosition( H19_VALV, VALVE_POSITION_C_CLOSE ); setAirPumpState( AIR_PUMP_STATE_OFF, AIR_PUMP_MOTOR_OFF ); set3WayValveState( H13_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); set3WayValveState( H20_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE ); stopSyringePump(); - // TODO: Set H5 ejector Off. + // TODO: Set H5 ejector Off.state // TODO: Command DD to bypass dialyzer, set QDt to prescribed rate, // Quf to 0, and Qs to 0. break; @@ -286,6 +289,7 @@ state = TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE; } + setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); state = TD_PRE_TREATMENT_PRIME_STATE; return state; @@ -307,6 +311,9 @@ if ( PRIME_COMPLETE_STATE == getCurrentPrimeState() ) { + setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, FALSE ); + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_TD_PRIME_COMPLETE, (U32)getCurrentPrimeState() ); + transitionToPreTxRecirculate(); state = TD_PRE_TREATMENT_RECIRCULATE_STATE; } @@ -327,9 +334,11 @@ execPreTxRecirculate(); - if ( TRUE == continueFromRecirculateRequested ) + //if ( TRUE == continueFromRecirculateRequested ) + if ( FALSE == isAnyAlarmActive() ) { - continueFromRecirculateRequested = FALSE; + //continueFromRecirculateRequested = FALSE; + endAirTrapControl(); state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; } @@ -366,7 +375,8 @@ presUFRateMlMin = ( presUFVolumeL * (F32)ML_PER_LITER ) / (F32)getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); // Direct DD to generate dialysate and bypass while priming blood cmdStartGenerateDialysate( (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), presUFRateMlMin, - getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ), TRUE, + 0, //getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ), //TODO: Update temperature with tx param temp when we are ready + TRUE, getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ), bicarbConvFactor, getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ), Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r5b3f0d8e659384a1c13b164a47ee66e4eb76cae4 -rcc3f9f20ed1a76552e2f433f4cbb7a9f2ae67713 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 5b3f0d8e659384a1c13b164a47ee66e4eb76cae4) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision cc3f9f20ed1a76552e2f433f4cbb7a9f2ae67713) @@ -275,7 +275,7 @@ respRecord.tmpPresLimitWindowmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW ); sendPressureLimitsChangeResponse( &respRecord ); // start DD pre-gen // TODO - cmdStartPreGenerateDialysate( (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), + cmdStartPreGenerateDialysate( 600, //(F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ), getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ), bicarbConvFactor, Index: firmware/App/Services/Messaging.c =================================================================== diff -u -rab24da862afac9c2cf9294521791dfbc2911f53f -rcc3f9f20ed1a76552e2f433f4cbb7a9f2ae67713 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision ab24da862afac9c2cf9294521791dfbc2911f53f) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision cc3f9f20ed1a76552e2f433f4cbb7a9f2ae67713) @@ -39,6 +39,7 @@ #include "OperationModes.h" #include "PAL.h" #include "Pressures.h" +#include "Prime.h" #include "StateTxBloodPrime.h" #include "StateTxDialysis.h" #include "StateTxPaused.h" @@ -233,6 +234,7 @@ { MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST, &testGetAlarmPropertiesRequest }, { MSG_ID_TD_RINSEBACK_VOLUME_OVERRIDE, &testRinsebackVolumeOverride }, { MSG_ID_TD_RINSEBACK_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testRinsebackPublishIntervalOverride }, + { MSG_ID_TD_PRIME_PUBLISH_INTERVAL_OVERRIDE, &testPrimePublishIntervalOverride }, }; /// Number of entries in the message handling function lookup table.