Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r06462a7f903d6ac4835125746b6b6394be4601ae -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 06462a7f903d6ac4835125746b6b6394be4601ae) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -15,6 +15,8 @@ * ***************************************************************************/ +#include "AirTrap.h" +#include "AirPump.h" #include "BloodFlow.h" #include "Buttons.h" #include "DDInterface.h" @@ -25,6 +27,7 @@ #include "TubeSetInstall.h" #include "TxParams.h" #include "Valves.h" +#include "Valve3Way.h" /** * @addtogroup TDPreTreatmentMode @@ -176,7 +179,11 @@ switch ( currentPreTreatmentState ) { case TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE: - signalBloodPumpHardStop(); + // H4, H1, H19 and H5 are controlled by the Tube Set Install Service. + 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(); break; case TD_PRE_TREATMENT_SELF_TEST_DRY_STATE: @@ -382,13 +389,6 @@ { presUFVolumeL = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); 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, - getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ), - bicarbConvFactor, - getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ), - getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ) ); } state = TD_PRE_TREATMENT_RECIRCULATE_STATE; Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r120487ddf3e3d69d1de5094d5252c037588e2ed8 -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 120487ddf3e3d69d1de5094d5252c037588e2ed8) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -255,8 +255,8 @@ resetAirTrap(); // Send UI default pressure settings since user is not asked to set them. respRecord.artPresLimitWindowmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ); - respRecord.venPresLimitWindowmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ); - respRecord.venPresLimitAsymmetricmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); + respRecord.venPresLimitWindowmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW ); + respRecord.venPresLimitAsymmetricmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW ); respRecord.tmpPresLimitWindowmmHg = getSysConfigTreatmentParameterU32DefaultValue( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW ); sendPressureLimitsChangeResponse( &respRecord ); // start DD pre-gen // TODO Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r9c833ef5623ce842267e284d958820ac0dc3a7fc -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 9c833ef5623ce842267e284d958820ac0dc3a7fc) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -217,8 +217,8 @@ getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ) ); // Read back limits for transmit to UI. respRecord.artPresLimitWindowmmHg = getSysConfigTreatmentParameterU32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ); - respRecord.venPresLimitWindowmmHg = getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ); - respRecord.venPresLimitAsymmetricmmHg = getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); + respRecord.venPresLimitWindowmmHg = getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW ); + respRecord.venPresLimitAsymmetricmmHg = getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW ); respRecord.tmpPresLimitWindowmmHg = getSysConfigTreatmentParameterU32( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW ); // Send response sendPressureLimitsChangeResponse( &respRecord ); Index: firmware/App/Monitors/Pressures.c =================================================================== diff -u -ra12f3ce494cd2a18aee31659c17d8a619fc70f7d -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision a12f3ce494cd2a18aee31659c17d8a619fc70f7d) +++ firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -497,8 +497,8 @@ { // apply pressure windows when stable S32 artOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ) / 2; - S32 venMinOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); - S32 venMaxOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ) - venMinOffset; + S32 venMinOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW ); + S32 venMaxOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW ) - venMinOffset; S32 tmpOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW ) / 2; currentArterialMinLimit = stableArterialPressure - artOffset; Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r06462a7f903d6ac4835125746b6b6394be4601ae -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 06462a7f903d6ac4835125746b6b6394be4601ae) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -132,7 +132,7 @@ { MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST, &bloodPrimeHandleCmdRequest }, { MSG_ID_UI_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_REQUEST, &bloodPrimeHandleBloodFlowChangeRequest }, { MSG_ID_UI_ADJUST_DISPOSABLES_CONFIRM_REQUEST, &handleAutoLoadRequest }, - { MSG_ID_UI_SETUP_CONNECTION_CONFIRM_REQUEST, &handleSetupConnectionConfirmRequest }, + { MSG_ID_UI_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_REQUEST, &handleSetupTubingSetConnectionConfirmRequest }, { MSG_ID_UI_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_REQUEST, &handleAutoEjectRequest }, { MSG_ID_FFU_SIGNAL_TD_UPDATE_AVAILABLE, &handleUpdateAvailable }, { MSG_ID_UI_FLUID_BOLUS_REQUEST, &handleFluidBolusRequest }, Index: firmware/App/Services/StateServices/TubeSetInstall.c =================================================================== diff -u -r593393009f0796d971fd90ce072bee561109debc -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Services/StateServices/TubeSetInstall.c (.../TubeSetInstall.c) (revision 593393009f0796d971fd90ce072bee561109debc) +++ firmware/App/Services/StateServices/TubeSetInstall.c (.../TubeSetInstall.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -378,15 +378,16 @@ /*********************************************************************//** * @brief - * The handleSetupConnectionConfirmRequest function handles a UI request + * The handleSetupTubingSetConnectionConfirmRequest function handles a UI request * to confirm setup connections are complete. + * @details \b Message \b Sent: MSG_ID_TD_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_RESPONSE * @details \b Inputs: none * @details \b Outputs: setupConnectionsConfirmed * @param message UI message which includes the user confirmation of * setup connections completion. * @return TRUE if confirmation accepted, FALSE otherwise. *************************************************************************/ -BOOL handleSetupConnectionConfirmRequest( MESSAGE_T *message ) +BOOL handleSetupTubingSetConnectionConfirmRequest( MESSAGE_T *message ) { BOOL result = FALSE; UI_RESPONSE_PAYLOAD_T response; @@ -395,7 +396,7 @@ if ( 0 == message->hdr.payloadLen ) { - if ( TUBE_SET_INSTALL_STATE_AWAIT_SETUP_CONNECTION_CONFIRMATION == currentInstallState ) + if ( TUBE_SET_INSTALL_STATE_COMPLETE != currentInstallState ) { setupConnectionsConfirmed = TRUE; result = TRUE; @@ -412,7 +413,7 @@ response.accepted = result; - sendMessage( MSG_ID_TD_SETUP_CONNECTION_CONFIRM_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)&response, sizeof( UI_RESPONSE_PAYLOAD_T ) ); + sendMessage( MSG_ID_TD_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)&response, sizeof( UI_RESPONSE_PAYLOAD_T ) ); return result; } Index: firmware/App/Services/StateServices/TubeSetInstall.h =================================================================== diff -u -r06462a7f903d6ac4835125746b6b6394be4601ae -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Services/StateServices/TubeSetInstall.h (.../TubeSetInstall.h) (revision 06462a7f903d6ac4835125746b6b6394be4601ae) +++ firmware/App/Services/StateServices/TubeSetInstall.h (.../TubeSetInstall.h) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -51,9 +51,9 @@ void initTubeSetInstall( void ); // Initialize this service void execTubeSetInstall( void ); // Execute the service state machine (call from ModePreTreat and ModeTreatment) -BOOL isTubeSetInstallComplete( void ); // Returns True once auto-load finished successfully -BOOL handleAutoLoadRequest( MESSAGE_T *message ); // Handle UI auto-load confirmation request -BOOL handleSetupConnectionConfirmRequest( MESSAGE_T *message ); // Handle UI setup connection confirmation request +BOOL isTubeSetInstallComplete( void ); // Returns True once auto-load finished successfully +BOOL handleAutoLoadRequest( MESSAGE_T *message ); // Handle UI auto-load confirmation request +BOOL handleSetupTubingSetConnectionConfirmRequest( MESSAGE_T *message ); // Handle UI setup tubing set connection confirmation request /**@}*/ Index: firmware/App/Services/TxParams.c =================================================================== diff -u -r5cc57a6d8eb3721811a2d6ace3176b7074c52fe8 -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision 5cc57a6d8eb3721811a2d6ace3176b7074c52fe8) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -140,10 +140,10 @@ { // type min max default { CRITICAL_DATA_TYPE_U32, {.uInt=50}, {.uInt=100}, {.uInt=50} }, // TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW - { CRITICAL_DATA_TYPE_U32, {.uInt=50}, {.uInt=100}, {.uInt=50} }, // TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW - { CRITICAL_DATA_TYPE_U32, {.uInt=20}, {.uInt=35}, {.uInt=35} }, // TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC + { CRITICAL_DATA_TYPE_U32, {.uInt=50}, {.uInt=100}, {.uInt=50} }, // TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW + { CRITICAL_DATA_TYPE_U32, {.uInt=20}, {.uInt=35}, {.uInt=35} }, // TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW { CRITICAL_DATA_TYPE_U32, {.uInt=20}, {.uInt=50}, {.uInt=20} }, // TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW - { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=500}, {.uInt=200} }, // TREATMENT_PARAM_RINSEBACK_FLOW_RATEs + { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=500}, {.uInt=200} }, // TREATMENT_PARAM_RINSEBACK_FLOW_RATE { CRITICAL_DATA_TYPE_U32, {.uInt=300}, {.uInt=1000}, {.uInt=300} }, // TREATMENT_PARAM_PRIME_DISCARD_VOLUME { CRITICAL_DATA_TYPE_U32, {.uInt=70}, {.uInt=140}, {.uInt=90} }, // TREATMENT_PARAM_SYSTOLIC_BP_LOW_ALARM_LIMIT { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=260}, {.uInt=200} }, // TREATMENT_PARAM_SYSTOLIC_BP_HIGH_ALARM_LIMIT @@ -1808,12 +1808,12 @@ response.arterialPressureLimitWindowRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } - if ( FALSE == isVenousPressureLimitWindowValid( request.venousPressureLimitWindowMMHG ) ) + if ( FALSE == isVenousPressureLimitWindowValid( request.venousHighPressureLimitWindowMMHG ) ) { response.venousPressureLimitWindowRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } - if ( FALSE == isVenousAsymmetricPressureLimitWindowValid( request.venousAsymmetricPressureLimitWindowMMHG ) ) + if ( FALSE == isVenousAsymmetricPressureLimitWindowValid( request.venousLowPressureLimitWindowMMHG ) ) { response.venousAsymmetricPressureLimitWindowRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } @@ -1833,9 +1833,9 @@ { setSysConfigTreatmentParameterU32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW, request.arterialPressureLimitWindowMMHG ); - setSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW, request.venousPressureLimitWindowMMHG ); + setSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW, request.venousHighPressureLimitWindowMMHG ); - setSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC, request.venousAsymmetricPressureLimitWindowMMHG ); + setSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW, request.venousLowPressureLimitWindowMMHG ); setSysConfigTreatmentParameterU32( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW, request.tmpPressureLimitWindowMMHG ); @@ -1902,8 +1902,8 @@ pressureValid = isPressureLimitValueValid( value, - getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ), - getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ) ); + getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW ), + getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW ) ); return pressureValid; } @@ -1923,8 +1923,8 @@ pressureValid = isPressureLimitValueValid( value, - getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ), - getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ) ); + getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW ), + getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW ) ); return pressureValid; } Index: firmware/App/Services/TxParams.h =================================================================== diff -u -r5cc57a6d8eb3721811a2d6ace3176b7074c52fe8 -rce9145f506c3b7b970285bf2ab2e464b66f83bab --- firmware/App/Services/TxParams.h (.../TxParams.h) (revision 5cc57a6d8eb3721811a2d6ace3176b7074c52fe8) +++ firmware/App/Services/TxParams.h (.../TxParams.h) (revision ce9145f506c3b7b970285bf2ab2e464b66f83bab) @@ -171,8 +171,8 @@ typedef struct { U32 arterialPressureLimitWindowMMHG; ///< Arterial pressure limit window in mmHg. - U32 venousPressureLimitWindowMMHG; ///< Venous pressure limit window in mmHg. - U32 venousAsymmetricPressureLimitWindowMMHG; ///< Venous asymmetric pressure limit window in mmHg. + U32 venousHighPressureLimitWindowMMHG;; ///< Venous high pressure limit window in mmHg. + U32 venousLowPressureLimitWindowMMHG; ///< Venous low pressure limit window in mmHg. U32 tmpPressureLimitWindowMMHG; ///< TMP pressure limit window in mmHg. } PRESSURE_LIMIT_CHANGE_REQUEST_T;