Index: firmware/App/Modes/Prime.c =================================================================== diff -u -r19fc8f015489be63932eed969d28329d123332e0 -r70ccc0b282f1dafcd1f6b95dd53f4efe2efd3b2b --- firmware/App/Modes/Prime.c (.../Prime.c) (revision 19fc8f015489be63932eed969d28329d123332e0) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision 70ccc0b282f1dafcd1f6b95dd53f4efe2efd3b2b) @@ -46,9 +46,12 @@ #define PRIME_DRAIN_RESERVOIR_TO_VOLUME_ML 0 ///< Drain reservoir to this volume (in mL) during prime. -// TODO: Determine the appropriate fill volume for each reservoir during prime state -#define PRIME_FILL_RESERVOIR_TO_VOLUME_ML ( FILL_RESERVOIR_TO_VOLUME_ML / 2 ) ///< Fill reservoir to this volume (in mL) during prime. +#define PRIME_CONSUMED_DIALYSATE_VOLUME_ML 100 ///< Volume of dialysate consumed during prime. +/// Fill reservoir 1 to this volume (in mL) during prime. +#define PRIME_FILL_RESERVOIR_ONE_VOLUME_ML ( FILL_RESERVOIR_TO_VOLUME_ML - PRIME_CONSUMED_DIALYSATE_VOLUME_ML ) +#define PRIME_FILL_RESERVOIR_TWO_VOLUME_ML 500 ///< Fill reservoir 2 to this volume (in mL) during prime. + #define NO_AIR_DETECTED_COUNT ( 10 * MS_PER_SECOND ) ///< No air detected time period count. #define PURGE_AIR_TIME_OUT_COUNT ( 30 * MS_PER_SECOND ) ///< Time period count for purge air time out. #define MIN_LOAD_CELL_STEADY_VOLUME_TIME ( 10 * MS_PER_SECOND ) ///< Minimum time load cell reading need to remain steady in ms. @@ -305,10 +308,10 @@ signalDialInPumpHardStop(); signalBloodPumpHardStop(); - primeStopRequested = FALSE; - primePauseStartTime = getMSTimerCount(); - previousPrimeState = currentPrimeState; - currentPrimeState = HD_PRIME_PAUSE; + primeStopRequested = FALSE; + primePauseStartTime = getMSTimerCount(); + previousPrimeState = currentPrimeState; + currentPrimeState = HD_PRIME_PAUSE; } } @@ -357,7 +360,6 @@ DG_OP_MODE_T dgOpMode = getDGOpMode(); U32 dgSubMode = getDGSubMode(); - // treatment reservoir mgmt. state machine switch ( currentReservoirMgmtState ) { @@ -405,7 +407,15 @@ if ( ( DG_MODE_CIRC == dgOpMode ) && ( DG_RECIRCULATE_MODE_STATE_RECIRC_WATER == dgSubMode ) ) { currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_WAIT_FOR_FILL_CMD_RESP; - cmdStartDGFill( PRIME_FILL_RESERVOIR_TO_VOLUME_ML ); + + if ( DG_RESERVOIR_1 == getDGInactiveReservoir() ) + { + cmdStartDGFill( PRIME_FILL_RESERVOIR_ONE_VOLUME_ML ); + } + else + { + cmdStartDGFill( PRIME_FILL_RESERVOIR_TWO_VOLUME_ML ); + } } break;