Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r2f4f66fcceb986cc592693b08f1b57767cb1c515 -r50086215a9c8977c977f836dcd4c454dd4d7d712 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 2f4f66fcceb986cc592693b08f1b57767cb1c515) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 50086215a9c8977c977f836dcd4c454dd4d7d712) @@ -93,6 +93,7 @@ /// Expected position of empty in relation to home position. #define SYRINGE_PUMP_EMPTY_POS ( SYRINGE_ENCODER_COUNTS_PER_ML * 10.84F ) + /// Margin of error for empty position determination. #define SYRINGE_PUMP_EMPTY_POS_MARGIN ( SYRINGE_ENCODER_COUNTS_PER_ML * 0.5F ) /// Minimum retract position. @@ -156,8 +157,10 @@ #define SYRINGE_PUMP_STALL_SPEED_THRESHOLD 0.05F ///< Minimum syringe pump speed to be considered not stalled. #define SYRINGE_PUMP_ADC_FPGA_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Syringe pump ADC FPGA error timeout in milliseconds. + #define SYRINGE_PUMP_DAC_MAX_RETRIES 5 ///< Syringe pump DAC retries to write. #define SYRINGE_PUMP_DAC_TIMER ( 200 / TASK_PRIORITY_INTERVAL ) ///< Syringe pump DAC timer between retries. + /// Defined states for the syringe pump control state machine. typedef enum SyringePump_States { Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r9100ec6e93d7a5826cfc185533050155c9f37f3f -r50086215a9c8977c977f836dcd4c454dd4d7d712 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 9100ec6e93d7a5826cfc185533050155c9f37f3f) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 50086215a9c8977c977f836dcd4c454dd4d7d712) @@ -668,8 +668,7 @@ signalBloodPumpHardStop(); signalDialOutPumpHardStop(); - //setDialInPumpTargetFlowRate( DIP_PATIENT_CONNECTION_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - setDialInPumpTargetFlowRate( 250, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); // TODO remove this line once the new flow control is implemented + setDialInPumpTargetFlowRate( DIP_PATIENT_CONNECTION_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); cmdStartDGTrimmerHeater(); } Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rceeba51c01b896855eb03ab81281a2b0f48c75d2 -r50086215a9c8977c977f836dcd4c454dd4d7d712 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision ceeba51c01b896855eb03ab81281a2b0f48c75d2) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 50086215a9c8977c977f836dcd4c454dd4d7d712) @@ -69,6 +69,7 @@ static OVERRIDE_U32_T standbyModePublishInterval = { DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, 0 }; static const U32 SERVICE_TIME_INTERVAL_S = (U32)( 365 * 0.5 * SECONDS_IN_A_DAY ); ///< HD/DG 6-month service interval in seconds. +static BOOL homingInitiated; ///< Flag indicates actuator homing has been initiated from standby mode. // ********** private function prototypes ********** @@ -112,6 +113,7 @@ heatDisinfectStartReqReceived = FALSE; chemDisinfectStartReqReceived = FALSE; disinfectCancelReqID = GENERIC_CONFIRM_ID_NONE; + homingInitiated = FALSE; dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; homingInitiated = FALSE; } Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r2f4f66fcceb986cc592693b08f1b57767cb1c515 -r50086215a9c8977c977f836dcd4c454dd4d7d712 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 2f4f66fcceb986cc592693b08f1b57767cb1c515) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 50086215a9c8977c977f836dcd4c454dd4d7d712) @@ -361,7 +361,7 @@ } else { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT, currentNoCartSelfTestsState ); +// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT, currentNoCartSelfTestsState ); } } }