Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -rc4597167d133bcafd1a0576d0f7c53f430d98d4b -r1f669c93c03ac8f246a2b791678b4b65ecb2dbd4 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision c4597167d133bcafd1a0576d0f7c53f430d98d4b) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 1f669c93c03ac8f246a2b791678b4b65ecb2dbd4) @@ -1162,16 +1162,21 @@ *************************************************************************/ static void checkDGTrimmerHeaterStatus( void ) { - U32 trimmerState = dgHeatersData.trimmerHeaterState; + U32 trimmerState = dgHeatersData.trimmerHeaterState; + DG_OP_MODE_T dgOp = getDGOpMode(); - if ( ( TRUE == dgTrimmerHeaterOn ) && ( HEATER_EXEC_STATE_OFF == trimmerState ) ) + if ( ( dgOp != DG_MODE_HEAT ) && ( dgOp != DG_MODE_CHEM ) ) { - cmdStartDGTrimmerHeater(); + // In heat disinfect and chemical disinfect, the trimmer heater is controlled by the DG itself so no commands from HD should be sent. + if ( ( TRUE == dgTrimmerHeaterOn ) && ( HEATER_EXEC_STATE_OFF == trimmerState ) ) + { + cmdStartDGTrimmerHeater(); + } + else if ( ( FALSE == dgTrimmerHeaterOn ) && ( trimmerState != HEATER_EXEC_STATE_OFF ) ) + { + cmdStopDGTrimmerHeater(); + } } - else if ( ( FALSE == dgTrimmerHeaterOn ) && ( trimmerState != HEATER_EXEC_STATE_OFF ) ) - { - cmdStopDGTrimmerHeater(); - } } Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r46b163d19c65e8c21db7b0247bbb1af0dba1ece5 -r1f669c93c03ac8f246a2b791678b4b65ecb2dbd4 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 46b163d19c65e8c21db7b0247bbb1af0dba1ece5) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 1f669c93c03ac8f246a2b791678b4b65ecb2dbd4) @@ -79,16 +79,16 @@ #define INITIAL_EDGE_OFFSET_READ_COUNT 100U ///< Offset in counts from energized and de-energized edges -#define INITIAL_ENERGIZED_EDGE_UPPER_RANGE 14000U ///< Energized edge maximum count (originally 13000 count) -#define INITIAL_ENERGIZED_EDGE_LOWER_RANGE 9000U ///< Energized edge minimum count +#define INITIAL_ENERGIZED_EDGE_UPPER_RANGE 13250U ///< Energized edge maximum count (originally 13000 count) +#define INITIAL_ENERGIZED_EDGE_LOWER_RANGE 10750U ///< Energized edge minimum count #define AIR_TRAP_VALVE_GPIO_PIN 0x12 ///< Air trap valve GPIO Pin 18 of HET Port 1 #define HOMING_STEP_CHANGE_IN_COUNTS 1000 ///< Step change in counts during homing #define TRANSITION_STEP_CHANGE_IN_COUNTS 15000 ///< Step change in counts during normal operations -#define MAX_DEVIATION_FROM_TARGET_IN_COUNTS 2500 ///< Maximum deviation from target in counts -#define MAX_DEVIATION_FROM_TGT_IN_TRAVEL_CNTS 150 ///< Maximum deviation from target in counts +#define MAX_DEVIATION_FROM_TARGET_IN_COUNTS 1000 ///< Maximum deviation from target in counts +#define MAX_DEVIATION_FROM_TGT_IN_TRAVEL_CNTS 1000 ///< Maximum deviation from target in counts #define MAX_DEVIATION_FROM_TRAGET_IN_POS_B 1000 ///< Maximum allowed deviation from position B in counts #define MAX_ALLOWED_FAILED_HOMINGS 3U ///< Maximum allowed failed homings /// The time that the valve must be at the edge to be considered for edge detection @@ -720,10 +720,10 @@ S16 deltaEdges = energizedEdge - currentPosition; // The range from energized to de-energized should be in between 9000 to 13000 steps - if ( deltaEdges <= INITIAL_ENERGIZED_EDGE_UPPER_RANGE && deltaEdges >= INITIAL_ENERGIZED_EDGE_LOWER_RANGE ) + if ( ( deltaEdges <= INITIAL_ENERGIZED_EDGE_UPPER_RANGE ) && ( deltaEdges >= INITIAL_ENERGIZED_EDGE_LOWER_RANGE ) ) { S16 positionC = currentPosition + INITIAL_EDGE_OFFSET_READ_COUNT; - S16 positionB = valvesStatus[ valve ].positions[ VALVE_POSITION_B_OPEN ] - INITIAL_EDGE_OFFSET_READ_COUNT; + S16 positionB = valvesStatus[ valve ].positions[ VALVE_POSITION_B_OPEN ]; // Positions B and C will have an offset from the edge to make sure each time the valve will not hit the edge valvesStatus[ valve ].positions[ VALVE_POSITION_B_OPEN ] = positionB; @@ -1189,8 +1189,8 @@ { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE, (U32)valve, currentPosition ); } - else if ( abs( currentPosition - commandedPosition ) < MAX_DEVIATION_FROM_TARGET_IN_COUNTS && - valvesStatus[ valve ].positionOutOfRangeCounter > 0 ) + else if ( ( abs( currentPosition - commandedPosition ) < MAX_DEVIATION_FROM_TARGET_IN_COUNTS ) && + ( valvesStatus[ valve ].positionOutOfRangeCounter > 0 ) ) { valvesStatus[ valve ].positionOutOfRangeCounter = 0; } Index: firmware/App/HDCommon.h =================================================================== diff -u -r402885eda2ed755a079c854d1228ac5f76cbec7c -r1f669c93c03ac8f246a2b791678b4b65ecb2dbd4 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 402885eda2ed755a079c854d1228ac5f76cbec7c) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 1f669c93c03ac8f246a2b791678b4b65ecb2dbd4) @@ -45,9 +45,6 @@ #define DISABLE_WD_AND_SFTY_POST_TESTS 1 // Disable watchdog and safety shutdown POST tests #define DISABLE_UI_POST_TEST 1 // Disable the UI POST - // TODO stays as a build switch until the calibration structure is updated with the build - #define SKIP_CAL_CHECK 1 // Implement software configuration - #include #include #endif