Index: firmware/App/HDCommon.h =================================================================== diff -u -rd270bdd420b6cab26851f3f195256b5c4b383d43 -reeeb0e3bd5139142394b4b454dcc5b5583cd2e29 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision d270bdd420b6cab26851f3f195256b5c4b383d43) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision eeeb0e3bd5139142394b4b454dcc5b5583cd2e29) @@ -24,8 +24,8 @@ #define HD_VERSION_MAJOR 0 #define HD_VERSION_MINOR 6 -#define HD_VERSION_MICRO 5 -#define HD_VERSION_BUILD 25 +#define HD_VERSION_MICRO 0 +#define HD_VERSION_BUILD 0 // ********** development build switches ********** @@ -49,14 +49,14 @@ // #define RUN_BP_OPEN_LOOP 1 // Run blood pump in open loop mode // #define RUN_DPI_OPEN_LOOP 1 // Run dialysate inlet pump in open loop mode #define WORN_OUT_CARTRIDGE 1 // Running with an old worn out cartridge (max wear) - #define PBA_ESTIMATION 1 // Estimate arterial pressure rather than look at PBA sensor +// #define PBA_ESTIMATION 1 // Estimate arterial pressure rather than look at PBA sensor #define DISABLE_MOTOR_CURRENT_CHECKS 1 // Do not error on HD pump current checks #define DISABLE_PUMP_FLOW_CHECKS 1 // Do not error on HD pump flow checks #define DISABLE_PUMP_SPEED_CHECKS 1 // Do not error on HD pump speed checks #define DISABLE_PUMP_DIRECTION_CHECKS 1 // Do not error on HD pump direction checks #define DISABLE_SYRINGE_PUMP 1 // Disable syringe pump functionality #define ALWAYS_ALLOW_SYRINGE_PUMP_CMDS 1 // Allow syringe pump commands at any time except when pump is busy -// #define DISABLE_PRESSURE_CHECKS 1 // Do not error on HD pressure checks + #define DISABLE_PRESSURE_CHECKS 1 // Do not error on HD pressure checks // #define DISABLE_UF_ALARMS 1 // Do not error on HD ultrafiltration checks #define DISABLE_DIALYSATE_TEMP_CHECK 1 // Disable dialysate temperature check // #define DISABLE_VALVE_ALARMS 1 // Do not error on HD valve position @@ -80,12 +80,12 @@ // #define DISABLE_UI_COMM_TO_ALARM 1 // Disable UI comm timeouts // Skip Pre-Treatment and get to treatment as soon as possible - #define SKIP_UI_INTERACTION 1 // Skip UI interaction. +// #define SKIP_UI_INTERACTION 1 // Skip UI interaction. #define SKIP_SAMPLE_WATER 1 // Skip pre-treatment sample water #define SKIP_CONSUMABLE_TESTS 1 // Skip pre-treatment consumable Self-tests #define SKIP_DRY_SELF_TESTS 1 // Skip pre-treatment dry self-tests - #define SKIP_PRIMING 1 // Skip Pre-treatment Prime - #define SKIP_WET_SELF_TESTS 1 // Skip Pre-treatment prime wet self-tests +// #define SKIP_PRIMING 1 // Skip Pre-treatment Prime +// #define SKIP_WET_SELF_TESTS 1 // Skip Pre-treatment prime wet self-tests #include #include Index: firmware/App/Modes/Prime.c =================================================================== diff -u -rce64f27cc40a432ce45badf365af3e20283e0a7f -reeeb0e3bd5139142394b4b454dcc5b5583cd2e29 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision ce64f27cc40a432ce45badf365af3e20283e0a7f) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision eeeb0e3bd5139142394b4b454dcc5b5583cd2e29) @@ -45,7 +45,7 @@ #define DIALYSATE_PUMP_PRIME_FLOW_RATE_ML_MIN 300 ///< Dialysate pump flow rate during priming fluid path. #define LOAD_CELL_VOLUME_NOISE_TOLERANCE 0.05 ///< Allow 5% tolerance on load cell readings. -#define PRIME_SALINE_DIALYZER_STOP_WEIGHT 10.0 ///< Load cell readings of 10 grams ( 10 mL ) used in prime saline dialyzer state +#define PRIME_SALINE_DIALYZER_STOP_WEIGHT 200.0 // 10.0 try 200.0 11/19/2021 Sean ///< Load cell readings of 10 grams ( 10 mL ) used in prime saline dialyzer state #define NO_AIR_DETECTED_COUNT ( 20 * MS_PER_SECOND ) ///< No air detected time period count. #define PURGE_AIR_TIME_OUT_COUNT ( 60 * MS_PER_SECOND ) ///< Time period count for purge air time out. @@ -196,16 +196,16 @@ currentPrimeState = handlePrimeCircBloodCircuitState(); break; - case HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE: - currentPrimeState = handlePrimeReservoirTwoFillCompleteState(); + case HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE: + currentPrimeState = handlePrimeReservoirOneFillCompleteState(); break; case HD_PRIME_DIALYSATE_BYPASS_STATE: currentPrimeState = handlePrimeDialysateBypassState(); break; - case HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE: - currentPrimeState = handlePrimeReservoirOneFillCompleteState(); + case HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE: + currentPrimeState = handlePrimeReservoirTwoFillCompleteState(); break; case HD_PRIME_DIALYSATE_DIALYZER_STATE: @@ -559,7 +559,7 @@ if ( TRUE == didTimeout( noAirDetectedStartTime, NO_AIR_DETECTED_COUNT ) ) { signalBloodPumpHardStop(); - state = HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE; + state = HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE; } if ( TRUE == doesAlarmStatusIndicateStop() ) @@ -573,19 +573,19 @@ /*********************************************************************//** * @brief - * The handlePrimeReservoirTwoFillCompleteState function waits for DG to finish - * filling reservoir 2 before moving to pre-treatment re-circulation. + * The handlePrimeReservoirOneFillCompleteState function waits for DG to finish + * filling reservoir 1 before moving to priming dialyzer. * @details Inputs: reservoirFilledStatus[] * @details Outputs: update valves and pumps configuration on state change * @return current state *************************************************************************/ -static HD_PRE_TREATMENT_PRIME_STATE_T handlePrimeReservoirTwoFillCompleteState( void ) +static HD_PRE_TREATMENT_PRIME_STATE_T handlePrimeReservoirOneFillCompleteState( void ) { - HD_PRE_TREATMENT_PRIME_STATE_T state = HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE; + HD_PRE_TREATMENT_PRIME_STATE_T state = HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE; - if ( TRUE == getReservoirFillStatus( DG_RESERVOIR_2 ) ) + if ( TRUE == getReservoirFillStatus( DG_RESERVOIR_1 ) ) { - cmdSetDGActiveReservoir( DG_RESERVOIR_2 ); + cmdSetDGActiveReservoir( DG_RESERVOIR_1 ); if ( TRUE == hasDGCompletedReservoirSwitch() ) { @@ -601,7 +601,12 @@ previousLoadCellReading = 0; primeDialysateBypassStartTime = getMSTimerCount(); loadcellSteadyVolumeStartTime = getMSTimerCount(); + + #ifdef SKIP_PRIMING + state = HD_PRIME_WET_SELF_TESTS_STATE; + #else state = HD_PRIME_DIALYSATE_BYPASS_STATE; + #endif } } @@ -639,7 +644,7 @@ } else { - state = HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE; + state = HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE; } } } @@ -665,19 +670,19 @@ /*********************************************************************//** * @brief - * The handlePrimeReservoirOneFillCompleteState function waits for DG to finish - * filling reservoir 1 before moving to priming dialyzer. + * The handlePrimeReservoirTwoFillCompleteState function waits for DG to finish + * filling reservoir 2 before moving to pre-treatment re-circulation. * @details Inputs: reservoirFilledStatus[] * @details Outputs: update valves and pumps configuration on state change * @return current state *************************************************************************/ -static HD_PRE_TREATMENT_PRIME_STATE_T handlePrimeReservoirOneFillCompleteState( void ) +static HD_PRE_TREATMENT_PRIME_STATE_T handlePrimeReservoirTwoFillCompleteState( void ) { - HD_PRE_TREATMENT_PRIME_STATE_T state = HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE; + HD_PRE_TREATMENT_PRIME_STATE_T state = HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE; - if ( TRUE == getReservoirFillStatus( DG_RESERVOIR_1 ) ) + if ( TRUE == getReservoirFillStatus( DG_RESERVOIR_2 ) ) { - cmdSetDGActiveReservoir( DG_RESERVOIR_1 ); + cmdSetDGActiveReservoir( DG_RESERVOIR_2 ); if ( TRUE == hasDGCompletedReservoirSwitch() ) { @@ -694,11 +699,7 @@ loadcellSteadyVolumeStartTime = getMSTimerCount(); primeDialysateDialyzerStartTime = getMSTimerCount(); - #ifdef SKIP_PRIMING - state = HD_PRIME_WET_SELF_TESTS_STATE; - #else state = HD_PRIME_DIALYSATE_DIALYZER_STATE; - #endif } }