Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r844f98879b7425c207b58562e623ab960adbc357 -r124b3745d056ac667280cfa0ae1fab8610d44ed2 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 844f98879b7425c207b58562e623ab960adbc357) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 124b3745d056ac667280cfa0ae1fab8610d44ed2) @@ -601,6 +601,7 @@ if ( diOccl > ( OCCLUSION_THRESHOLD_OFFSET + dialInPumpOcclusionAfterCartridgeInstall ) ) { signalDialInPumpHardStop(); // Stop pump immediately + cmdStopDGTrimmerHeater(); SET_ALARM_WITH_1_U32_DATA( ALARM_ID_OCCLUSION_DIAL_IN_PUMP, diOccl ) } else if ( diOccl < ( OCCLUSION_CLEAR_THRESHOLD_OFFSET + dialInPumpOcclusionAfterCartridgeInstall ) ) Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r124b3745d056ac667280cfa0ae1fab8610d44ed2 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 124b3745d056ac667280cfa0ae1fab8610d44ed2) @@ -1157,8 +1157,8 @@ static void getAndMonitorValvesCurrentFPGAPosition( void ) { VALVE_T valve; - S16 currentPostion = 0; - S16 commandedPoistion = 0; + S16 currentPosition = 0; + S16 commandedPosition = 0; VALVE_POSITION_T commandedPositionEnum; // Get the position of the valves and update the structure of each valve @@ -1176,9 +1176,9 @@ { U32 maxDeviation = MAX_DEVIATION_FROM_TARGET_IN_COUNTS; - currentPostion = getValvePositionCounts( valve ); + currentPosition = getValvePositionCounts( valve ); commandedPositionEnum = valvesStatus[ valve ].commandedPosition; - commandedPoistion = valvesStatus[ valve ].positions[ commandedPositionEnum ]; + commandedPosition = valvesStatus[ valve ].positions[ commandedPositionEnum ]; // If the current position is B, current relaxation requires looser range check if ( VALVE_POSITION_B_OPEN == commandedPositionEnum ) @@ -1189,18 +1189,18 @@ // Check if the current position has deviated from the position it is supposed to be in // For more than a certain amount of time. If it has, raise an alarm // Absolute value is used for comparison to cover +/- from the commanded position - if ( abs( currentPostion - commandedPoistion ) > maxDeviation ) + if ( abs( currentPosition - commandedPosition ) > maxDeviation ) { valvesStatus[ valve ].positionOutOfRangeCounter++; } if ( valvesStatus[ valve ].positionOutOfRangeCounter > MAX_POS_DEVIATION_TIME_INTERVAL_COUNTER ) { #ifndef DISABLE_VALVE_ALARMS - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE, (U32)valve, currentPostion ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE, (U32)valve, currentPosition ); #endif } - else if ( abs( currentPostion - commandedPoistion ) < MAX_DEVIATION_FROM_TARGET_IN_COUNTS && + else if ( abs( currentPosition - commandedPosition ) < MAX_DEVIATION_FROM_TARGET_IN_COUNTS && valvesStatus[ valve ].positionOutOfRangeCounter > 0 ) { valvesStatus[ valve ].positionOutOfRangeCounter = 0; Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r6f2218c22e666aec059afbd60f3d0d268b305ad0 -r124b3745d056ac667280cfa0ae1fab8610d44ed2 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 6f2218c22e666aec059afbd60f3d0d268b305ad0) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 124b3745d056ac667280cfa0ae1fab8610d44ed2) @@ -96,6 +96,8 @@ signalDialInPumpHardStop(); signalDialOutPumpHardStop(); stopSyringePump(); + // Request trimmer heater turned off + cmdStopDGTrimmerHeater(); // Ensure all valves are in safe position setValveAirTrap( STATE_CLOSED ); setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r58e7f4184d79fe6dbef4db3d256ad2b56ba7a0aa -r124b3745d056ac667280cfa0ae1fab8610d44ed2 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 58e7f4184d79fe6dbef4db3d256ad2b56ba7a0aa) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 124b3745d056ac667280cfa0ae1fab8610d44ed2) @@ -841,10 +841,10 @@ { TREATMENT_STATE_T result = TREATMENT_RINSEBACK_STATE; - // Execute treatment re-circ sub-mode + // Execute treatment rinseback sub-mode execRinseback(); - // Handle signals from treatment end sub-mode + // Handle signals from rinseback sub-mode if ( TRUE == rinsebackToRecircRequest ) { transitionToTreatmentRecirc(); @@ -878,7 +878,7 @@ // Execute treatment re-circ sub-mode execTreatmentRecirc(); - // Handle signals from treatment end sub-mode + // Handle signals from treatment re-circ sub-mode if ( TRUE == rinsebackToStoppedRequest ) { transitionToTreatmentStop(); Index: firmware/App/Modes/TreatmentEnd.c =================================================================== diff -u -r844f98879b7425c207b58562e623ab960adbc357 -r124b3745d056ac667280cfa0ae1fab8610d44ed2 --- firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 844f98879b7425c207b58562e623ab960adbc357) +++ firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 124b3745d056ac667280cfa0ae1fab8610d44ed2) @@ -125,6 +125,7 @@ signalDialOutPumpHardStop(); stopSyringePump(); setBloodPumpTargetFlowRate( TX_END_BP_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); + cmdStopDGTrimmerHeater(); // Continue air trap control startAirTrapControl();