Index: firmware/App/Controllers/LoadCell.c =================================================================== diff -u -ra2c32d4d221603054ca9ad7a097112caebf08c4e -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/Controllers/LoadCell.c (.../LoadCell.c) (revision a2c32d4d221603054ca9ad7a097112caebf08c4e) +++ firmware/App/Controllers/LoadCell.c (.../LoadCell.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -59,7 +59,7 @@ F32 smallFilteredWeight; ///< Load cell small filtered (100 100Hz raw sample) weight. F32 largeFilterReadings[ SIZE_OF_LARGE_LOAD_CELL_AVG ]; ///< Load cell samples for large load cell moving average. - F32 largeFilterTotal; ///< Large filter rolling total - used to calc small load cell moving average. + F64 largeFilterTotal; ///< Large filter rolling total - used to calc small load cell moving average. F32 largeFilteredWeight; ///< Load cell large filtered (40 10Hz filtered sample) weight. } LOADCELL_T; @@ -219,7 +219,7 @@ loadcells[ ii ].largeFilterTotal -= loadcells[ ii ].largeFilterReadings[ largeReadingsIdx ]; loadcells[ ii ].largeFilterReadings[ largeReadingsIdx ] = loadcells[ ii ].smallFilteredWeight; loadcells[ ii ].largeFilterTotal += loadcells[ ii ].smallFilteredWeight; - loadcells[ ii ].largeFilteredWeight = loadcells[ ii ].largeFilterTotal / (F32)SIZE_OF_LARGE_LOAD_CELL_AVG; + loadcells[ ii ].largeFilteredWeight = (F32)( loadcells[ ii ].largeFilterTotal / (F64)SIZE_OF_LARGE_LOAD_CELL_AVG ); } loadCellFilterTimerCount = 0; Index: firmware/App/DGCommon.h =================================================================== diff -u -ra2c32d4d221603054ca9ad7a097112caebf08c4e -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/DGCommon.h (.../DGCommon.h) (revision a2c32d4d221603054ca9ad7a097112caebf08c4e) +++ firmware/App/DGCommon.h (.../DGCommon.h) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -57,6 +57,7 @@ //#define V_2_SYSTEM 1 //#define SKIP_RECIRC 1 #define THD_USING_TRO_CONNECTOR 1 + #define IGNORE_CONC_PUMP_IN_HEAT_DISINFECT 1 #include #include #endif Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -ra2c32d4d221603054ca9ad7a097112caebf08c4e -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision a2c32d4d221603054ca9ad7a097112caebf08c4e) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -55,7 +55,7 @@ #define DRAIN_WEIGHT_UNCHANGE_TIMEOUT ( 6 * MS_PER_SECOND ) ///< Time period of unchanged weight during draining before timeout. // Flush drain path state defines -#define FLUSH_DRAIN_WAIT_TIME_MS ( SEC_PER_MIN * MS_PER_SECOND ) ///< Flush Drain path wait time in milliseconds. TODo original time was 60 seconds +#define FLUSH_DRAIN_WAIT_TIME_MS ( SEC_PER_MIN * MS_PER_SECOND ) ///< Flush Drain path wait time in milliseconds. #define MIN_INLET_TEMPERATURE_C 15.0 ///< Minimum water inlet temperature in C. TODO original temperature was 25 C #define MAX_INLET_CONDUCTIVITY_US_PER_CM 2000.0 ///< Maximum water inlet conductivity in us/cm @@ -75,29 +75,29 @@ #define RSRVRS_DRAIN_TIMEOUT_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 drain timeout in ms. // R1 to R2 & R2 to R1 chemical disinfect circulation -#define CHEM_DISINFECT_TARGET_RO_FLOW_LPM 0.9 ///< Chemical disinfect target RO flow rate in L/min. TODO original value was 0.8 -#define CHEM_DISINFECT_MAX_RO_PRESSURE_PSI 130 ///< Chemical disinfect maximum RO pressure in psi. -#define CHEM_DISINFECT_TARGET_DRAIN_PRES_PSI 10.0 ///< Chemical disinfect target drain outlet pressure in psi. -#define CHEM_DISINFECT_TIME_MS ( 20 * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect time for each section in milliseconds. TODO original time was 10 minutes -#define CHEM_DISINFECT_START_TEMP_TIMOUT_MS ( 4 * MIN_PER_HOUR * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect reaching to minimum temperature timeout in milliseconds. TODO figure out this timeout -#define RSRVRS_TARGET_VOL_OUT_TIMEOUT_MS ( 0.5 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 maximum volume out of range timeout during chemical disinfect. TODO change this to 5 seconds -#define RSRVRS_MAX_TARGET_VOL_CHANGE_ML 600.0 ///< Reservoirs 1 & 2 maximum allowed volume change when full during chemical disinfect. TODO original value is 100 mL -#define POST_CHEM_DISINFECT_WAIT_TIME_MS ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect final wait time before flushing the system in milliseconds. +#define CHEM_DISINFECT_TARGET_RO_FLOW_LPM 0.9 ///< Chemical disinfect target RO flow rate in L/min. TODO original value was 0.8 +#define CHEM_DISINFECT_MAX_RO_PRESSURE_PSI 130 ///< Chemical disinfect maximum RO pressure in psi. +#define CHEM_DISINFECT_TARGET_DRAIN_PRES_PSI 10.0 ///< Chemical disinfect target drain outlet pressure in psi. +#define CHEM_DISINFECT_TIME_MS ( 20 * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect time for each section in milliseconds. TODO original time was 10 minutes +#define CHEM_DISINFECT_START_TEMP_TIMOUT_MS ( 4 * MIN_PER_HOUR * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect reaching to minimum temperature timeout in milliseconds. TODO figure out this timeout +#define RSRVRS_TARGET_VOL_OUT_TIMEOUT_MS ( 0.5 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 maximum volume out of range timeout during chemical disinfect. TODO change this to 5 seconds +#define RSRVRS_MAX_TARGET_VOL_CHANGE_ML 600.0 ///< Reservoirs 1 & 2 maximum allowed volume change when full during chemical disinfect. TODO original value is 100 mL +#define POST_CHEM_DISINFECT_WAIT_TIME_MS ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect final wait time before flushing the system in milliseconds. // Prime acid line -#define PRIME_ACID_LINE_TIMEOUT_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< Priming acid line timeout in milliseconds. -#define CONC_PUMP_PRIME_SPEED_ML_PER_MIN 40.0 ///< Concentrate pump prime speed in ml/min. -#define MIN_ACID_CONDUCTIVITY_US_PER_CM 2000.0 ///< Minimum conductivity that indicates acid is in the line in uS/cm. -#define PRIME_ACID_STEADY_CONDUCTIVITY_TIME_MS ( ( 2 * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ) ///< Minimum time that a steady conductivity of acid must be read in milliseconds. +#define PRIME_ACID_LINE_TIMEOUT_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< Priming acid line timeout in milliseconds. +#define CONC_PUMP_PRIME_SPEED_ML_PER_MIN 40.0 ///< Concentrate pump prime speed in ml/min. +#define MIN_ACID_CONDUCTIVITY_US_PER_CM 2000.0 ///< Minimum conductivity that indicates acid is in the line in uS/cm. +#define PRIME_ACID_STEADY_CONDUCTIVITY_TIME_MS ( ( 2 * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ) ///< Minimum time that a steady conductivity of acid must be read in milliseconds. // Fill with disinfectant and water -#define MIN_RO_FLOW_FOR_CONC_PUMP_MIXING_LPM 0.3 ///< Minimum RO flow rate that is need to be able to turn on the concentrate pump for mixing. +#define MIN_RO_FLOW_FOR_CONC_PUMP_MIXING_LPM 0.3 ///< Minimum RO flow rate that is need to be able to turn on the concentrate pump for mixing. // Fill heat up -#define CHEM_DISINFECT_TARGET_TEMPERATURE_C 21.0 ///< Chemical disinfect target water temperature in C. +#define CHEM_DISINFECT_TARGET_TEMPERATURE_C 21.0 ///< Chemical disinfect target water temperature in C. // Post disinfect rinses -#define NUM_OF_POST_DISINFECT_RINSES 1 ///< Number of rinses after a chemical disinfect. +#define NUM_OF_POST_DISINFECT_RINSES 1 ///< Number of rinses after a chemical disinfect. static const F32 ACID_TO_WATER_MIXING_RATIO = ( 1.0 / 70.0 ); ///< Acid to water mixing ratio for chemical disinfect. @@ -1013,7 +1013,8 @@ state = DG_CHEM_DISINFECT_STATE_FILL_WITH_WATER_AND_DISINFECTANT; } } - else if ( TRUE == didTimeout( stateTimer, PRIME_ACID_LINE_TIMEOUT_MS ) ) + + if ( TRUE == didTimeout( stateTimer, PRIME_ACID_LINE_TIMEOUT_MS ) ) { // TODO transition to cancellation path prevChemDisinfectState = state; Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -r1a5efe97f5f39594b45797fded52cafce92afe80 -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 1a5efe97f5f39594b45797fded52cafce92afe80) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -17,6 +17,7 @@ #include "ConductivitySensors.h" #include "DrainPump.h" +#include "Heaters.h" #include "ModeDrain.h" #include "OperationModes.h" #include "Pressures.h" @@ -49,8 +50,6 @@ static DG_DRAIN_STATE_T drainState; ///< Currently active drain state. static U32 drainEmptyTareTimerCtr; ///< Timer counter for delay between drain complete and load cell tare. -static U32 tempTrans = 0; - // ********** private function prototypes ********** static DG_DRAIN_STATE_T handleDrainState( void ); @@ -157,27 +156,8 @@ static DG_DRAIN_STATE_T handleDrainState( void ) { DG_DRAIN_STATE_T result = DG_DRAIN_STATE_DRAIN; - - // TODO test code remove DG_RESERVOIR_ID_T inactiveReservoir = getInactiveReservoir(); - if ( ++tempTrans == 20 ) - { - if ( DG_RESERVOIR_2 == inactiveReservoir ) - { - setValveState( VRD2, VALVE_STATE_OPEN ); - } - else if ( DG_RESERVOIR_1 == inactiveReservoir ) - { - setValveState( VRD1, VALVE_STATE_OPEN ); - } - } - else if ( tempTrans == 40 ) - { - setDrainPumpTargetRPM( TARGET_DRAIN_PUMP_RPM ); - } - // TODO test code remove - // if we have reached our target drain to volume (by weight) or cannot drain anymore, we are done draining - go back to re-circ mode if ( TRUE == hasTargetDrainVolumeBeenReached( inactiveReservoir, DRAIN_WEIGHT_UNCHANGE_TIMEOUT ) ) { Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -rf656b17f3d8d93b4fca49c9725e096e7eb55acc7 -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision f656b17f3d8d93b4fca49c9725e096e7eb55acc7) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -20,7 +20,6 @@ #include "FPGA.h" #include "Heaters.h" #include "LoadCell.h" -#include "ModeFault.h" #include "ModeFill.h" #include "OperationModes.h" #include "PersistentAlarm.h" @@ -119,10 +118,6 @@ turnOnUVReactor( INLET_UV_REACTOR ); turnOnUVReactor( OUTLET_UV_REACTOR ); - // TODO remove - setPrimaryHeaterTargetTemperature( 39.0 ); - // TODO remove - // NOTE: The target flow rate should be set prior to setting the start primary heater // because the initial guess in the heaters driver needs the target flow to calculate // the new PWMs for the main and small primary heaters Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -ra2c32d4d221603054ca9ad7a097112caebf08c4e -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision a2c32d4d221603054ca9ad7a097112caebf08c4e) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -79,11 +79,11 @@ #define HEAT_DISINFECT_START_TEMPERATURE_C 81.0 ///< Heat disinfect minimum acceptable temperature in C. // R1 to R2 & R2 to R1 heat disinfect circulation -#define HEAT_DISINFECT_TARGET_RO_FLOW_LPM 1.4 ///< Heat disinfect target RO flow rate in L/min. +#define HEAT_DISINFECT_TARGET_RO_FLOW_LPM 1.3 ///< Heat disinfect target RO flow rate in L/min. #define HEAT_DISINFECT_MAX_RO_PRESSURE_PSI 30 ///< Heat disinfect maximum RO pressure in psi. -#define HEAT_DISINFECT_TARGET_DRAIN_PRES_PSI 14.0 ///< Heat disinfect target drain outlet pressure in psi. +#define HEAT_DISINFECT_TARGET_DRAIN_PRES_PSI 12.0 ///< Heat disinfect target drain outlet pressure in psi. #define HEAT_DISINFECT_TIME_MS ( 10 * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect time for each section in milliseconds. -#define HEAT_DISINFECT_START_TEMP_TIMOUT_MS ( 4 * MIN_PER_HOUR * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect reaching to minimum temperature timeout in milliseconds. TODO figure out this timeout +#define HEAT_DISINFECT_START_TEMP_TIMOUT_MS ( 4 * MIN_PER_HOUR * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect reaching to minimum temperature timeout in milliseconds. #define RSRVRS_TARGET_VOL_OUT_TIMEOUT_MS ( 0.5 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 maximum volume out of range timeout during heat disinfect. TODO change this to 5 seconds #define RSRVRS_MAX_TARGET_VOL_CHANGE_ML 600.0 ///< Reservoirs 1 & 2 maximum allowed volume change when full during heat disinfect. TODO original value is 100 mL #define POST_HEAT_DISINFECT_WAIT_TIME_MS ( 3 * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect final wait time before flushing the system in milliseconds. @@ -92,6 +92,7 @@ #define THD_REACH_BELOW_45_AFTER_CIRC_TIME_MS ( 5 * MS_PER_SECOND ) ///< Number of circulations that are needed to make the RO filter is below 45 C. #define ROF_COOL_DOWN_TARGET_FLOW_LPM 0.3 ///< RO filter cool down target flow in L/min. #define ROF_COOL_DOWN_CIRCULATION_TIME_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< RO filter cool down circulation timer in milliseconds. +#define TARGET_THD_SENSOR_FOR_RINSING_C 44.0 ///< Target THd temperature sensor value before rinsing in C. // Mix drain R1 and R2 #define RSRVRS_MIX_DRAIN_TIMEOUT_MS ( 20 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 mix drain timeout in ms. @@ -697,15 +698,15 @@ else { areTempSensorsInRange = TRUE; - +#ifndef IGNORE_CONC_PUMP_IN_HEAT_DISINFECT // Turn on the concentrate pumps requestConcentratePumpsOn( CONCENTRATEPUMPS_CP1_ACID ); requestConcentratePumpsOn( CONCENTRATEPUMPS_CP2_BICARB ); // Turn the pumps on in reverse setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1_ACID, CONC_PUMPS_REVERSE_SPEED_ML_PER_MIN ); setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP2_BICARB, CONC_PUMPS_REVERSE_SPEED_ML_PER_MIN ); - +#endif concentratePumpsPrimeTimer = getMSTimerCount(); } } @@ -1188,8 +1189,6 @@ R1HeatDisinfectVol = getLoadCellLargeFilteredWeight( LOAD_CELL_RESERVOIR_1_PRIMARY ); R2HeatDisinfectVol = getLoadCellLargeFilteredWeight( LOAD_CELL_RESERVOIR_2_PRIMARY ); - //TODO turn on CP1 and CP2 - state = DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1; } else if ( DG_RESERVOIR_NOT_REACHED_TARGET == rsrvr2Status ) @@ -1232,7 +1231,6 @@ case HEAT_DISINFECT_COMPLETE: // Turn off the heaters - // TODO turn off CP1 and CP2 stopPrimaryHeater(); stopTrimmerHeater(); stateTimer = getMSTimerCount(); @@ -1315,7 +1313,7 @@ F32 THdTemp = getTemperatureValue( TEMPSENSORS_HEAT_DISINFECT ); // Check if the coldest spot temperature is less than 45 C so the RO filter can safely run - if ( ( FALSE == isROPumpRunning() ) && ( THdTemp < ROF_MIN_LOW_PRESSURE_TEMPERATURE_C ) ) + if ( ( FALSE == isROPumpRunning() ) && ( THdTemp < TARGET_THD_SENSOR_FOR_RINSING_C ) ) { U32 time = calcTimeSince( ROFCoolingTimer ); @@ -1517,7 +1515,7 @@ setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); setValveState( VRO, VALVE_STATE_R2_C_TO_NC ); #ifndef V_2_SYSTEM - setValveState( VRD1, VALVE_STATE_R1_C_TO_NC ); + setValveState( VRD1, VALVE_STATE_OPEN ); #else setValveState( VRD, VALVE_STATE_R1_C_TO_NC ); #endif @@ -1628,14 +1626,15 @@ // Turn on the drain pump to drain R2 setDrainPumpTargetRPM( DRAIN_PUMP_TARGET_RPM ); - +#ifndef IGNORE_CONC_PUMP_IN_HEAT_DISINFECT // Turn on the concentrate pumps requestConcentratePumpsOn( CONCENTRATEPUMPS_CP1_ACID ); requestConcentratePumpsOn( CONCENTRATEPUMPS_CP2_BICARB ); // Turn the pumps on in reverse setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1_ACID, CONC_PUMPS_REVERSE_SPEED_ML_PER_MIN ); setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP2_BICARB, CONC_PUMPS_REVERSE_SPEED_ML_PER_MIN ); +#endif // This is the last drain of heat disinfect cycle isThisLastDrain = TRUE; @@ -1779,8 +1778,9 @@ if ( DG_RESERVOIR_REACHED_TARGET == rsrvr2Status ) { #ifndef V_2_SYSTEM - // Set the drain valve to reservoir 1 + // Set the drain valve to reservoir 1 and close reservoir 2 setValveState( VRD1, VALVE_STATE_OPEN ); + setValveState( VRD2, VALVE_STATE_CLOSED ); #else // Set the drain valve to reservoir 1 setValveState( VRD, VALVE_STATE_R1_C_TO_NC ); @@ -1789,6 +1789,11 @@ } else if ( DG_RESERVOIR_NOT_REACHED_TARGET == rsrvr2Status ) { + // Stop the actuators that are running before going to basic cancellation path + setValveState( VRD1, VALVE_STATE_CLOSED ); + setValveState( VRD2, VALVE_STATE_CLOSED ); + signalDrainPumpHardStop(); + prevHeatDisinfectState = state; state = DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH; } @@ -1801,10 +1806,18 @@ if ( DG_RESERVOIR_REACHED_TARGET == rsrvr1Status ) { + setValveState( VRD1, VALVE_STATE_CLOSED ); + setValveState( VRD2, VALVE_STATE_CLOSED ); + signalDrainPumpHardStop(); + failHeatDisinfect(); } else if ( DG_RESERVOIR_NOT_REACHED_TARGET == rsrvr1Status ) { + setValveState( VRD1, VALVE_STATE_CLOSED ); + setValveState( VRD2, VALVE_STATE_CLOSED ); + signalDrainPumpHardStop(); + prevHeatDisinfectState = state; state = DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH; } @@ -2008,7 +2021,7 @@ if ( DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2 == heatDisinfectState ) { heatDisinfectUIState = HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_1; - +#ifndef IGNORE_CONC_PUMP_IN_HEAT_DISINFECT // During R1 to R2 disinfect, concentrate pump is run // Turn on the concentrate pumps requestConcentratePumpsOn( CONCENTRATEPUMPS_CP1_ACID ); @@ -2017,6 +2030,7 @@ // Turn the pumps on in reverse setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1_ACID, CONC_PUMPS_REVERSE_SPEED_ML_PER_MIN ); setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP2_BICARB, CONC_PUMPS_REVERSE_SPEED_ML_PER_MIN ); +#endif } else { Index: firmware/App/Modes/ModeHeatDisinfect.h =================================================================== diff -u -r1a5efe97f5f39594b45797fded52cafce92afe80 -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/App/Modes/ModeHeatDisinfect.h (.../ModeHeatDisinfect.h) (revision 1a5efe97f5f39594b45797fded52cafce92afe80) +++ firmware/App/Modes/ModeHeatDisinfect.h (.../ModeHeatDisinfect.h) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -31,18 +31,6 @@ // ********** public definitions ********** -/// Heat disinfect data publish struct -typedef struct -{ - U32 heatDisinfectState; ///< Heat disinfect state. - U32 overallElapsedTime; ///< Overall elapsed time in heat disinfect mode. - U32 stateElapsedTime; ///< Current heat disinfect elapsed time. - U32 cancellationMode; ///< Heat disinfect cancellation mode. - F32 R1FillLevel; ///< Reservoir 1 level upon starting the heat disinfect. - F32 R2FillLevel; ///< Reservoir 2 level upon starting the heat disinfect. - U32 heatDisinfectUIState; ///< Heat disinfect UI state. -} MODE_HEAT_DISINFECT_DATA_T; - /// Heat disinfect UI data publish struct typedef struct { Index: firmware/DG.dil =================================================================== diff -u -r1a5efe97f5f39594b45797fded52cafce92afe80 -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/DG.dil (.../DG.dil) (revision 1a5efe97f5f39594b45797fded52cafce92afe80) +++ firmware/DG.dil (.../DG.dil) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -1,4 +1,4 @@ -# RM46L852PGE 04/27/21 16:18:17 +# RM46L852PGE 06/16/21 11:12:38 # ARCH=RM46L852PGE # @@ -5957,7 +5957,7 @@ DRIVER.HET.VAR.HET1_BIT27_PSL.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT19_PSL.VALUE=0x00080000 DRIVER.HET.VAR.HET2_EDGE6_LVL.VALUE=0x00000000 -DRIVER.HET.VAR.HET1_BIT24_PULL.VALUE=0 +DRIVER.HET.VAR.HET1_BIT24_PULL.VALUE=1 DRIVER.HET.VAR.HET1_BIT16_PULL.VALUE=1 DRIVER.HET.VAR.HET1_BIT2_DIR.VALUE=0x00000000 DRIVER.HET.VAR.HET2_PWM6_DUTY_INTENA.VALUE=0x00000000 @@ -6337,7 +6337,7 @@ DRIVER.HET.VAR.HET1_LR_ACTUALTIME.VALUE=1238.690 DRIVER.HET.VAR.HET1_BIT21_DIR.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT13_DIR.VALUE=0x00000000 -DRIVER.HET.VAR.HET1_BIT11_PULL.VALUE=2 +DRIVER.HET.VAR.HET1_BIT11_PULL.VALUE=1 DRIVER.HET.VAR.HET2_PWM3_DUTY.VALUE=50 DRIVER.HET.VAR.HET1_PWM7_ENA.VALUE=0 DRIVER.HET.VAR.HET1_HR_PRESCALE.VALUE=0 @@ -6426,7 +6426,7 @@ DRIVER.HET.VAR.HET1_EDGE0_EVENT.VALUE=1 DRIVER.HET.VAR.HET2_BIT10_PULDIS.VALUE=0x00000000 DRIVER.HET.VAR.HET1_CAP2_PIN_SELECT.VALUE=4 -DRIVER.HET.VAR.HET1_BIT11_PSL.VALUE=0x00000800 +DRIVER.HET.VAR.HET1_BIT11_PSL.VALUE=0x00000000 DRIVER.HET.VAR.HET2_PWM2_DUTYTIME.VALUE=501.669 DRIVER.HET.VAR.HET2_PWM0_DUTY_LVL.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT31_DIR.VALUE=0x80000000 @@ -6571,7 +6571,7 @@ DRIVER.HET.VAR.HET1_PWM7_DUTY_INTENA.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT10_ANDSHARE.VALUE=0x00000000 DRIVER.HET.VAR.HET1_EDGE7_PIN_SELECT.VALUE=23 -DRIVER.HET.VAR.HET1_BIT24_PDR.VALUE=0x01000000 +DRIVER.HET.VAR.HET1_BIT24_PDR.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT16_PDR.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT5_DOUT.VALUE=0 DRIVER.HET.VAR.HET2_PWM7_PERIOD_PRESCALER.VALUE=103296 @@ -6622,7 +6622,7 @@ DRIVER.HET.VAR.HET2_EDGE1_POLARITY.VALUE=0 DRIVER.HET.VAR.HET1_CAP7_POLARITY.VALUE=0 DRIVER.HET.VAR.HET1_BIT28_ANDSHARE.VALUE=0x00000000 -DRIVER.HET.VAR.HET1_BIT24_PULDIS.VALUE=0x01000000 +DRIVER.HET.VAR.HET1_BIT24_PULDIS.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT16_PULDIS.VALUE=0x00000000 DRIVER.HET.VAR.HET2_BIT16_PULL.VALUE=1 DRIVER.HET.VAR.HET2_BIT12_DIR.VALUE=0x00000000 @@ -6634,7 +6634,7 @@ DRIVER.HET.VAR.HET2_EDGE6_PIN_SELECT.VALUE=12 DRIVER.HET.VAR.HET2_BIT2_PDR.VALUE=0x00000000 DRIVER.HET.VAR.HET2_DIS_BLACKBOX.VALUE=0 -DRIVER.HET.VAR.HET1_BIT24_PSL.VALUE=0x01000000 +DRIVER.HET.VAR.HET1_BIT24_PSL.VALUE=0x00000000 DRIVER.HET.VAR.HET1_BIT16_PSL.VALUE=0x00000000 DRIVER.HET.VAR.HET2_EDGE3_LVL.VALUE=0x00000000 DRIVER.HET.VAR.HET1_EDGE6_EVENT.VALUE=1 Index: firmware/include/het.h =================================================================== diff -u -rc48569a478d727afa7cd69aadb396814248c83f9 -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/include/het.h (.../het.h) (revision c48569a478d727afa7cd69aadb396814248c83f9) +++ firmware/include/het.h (.../het.h) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -372,10 +372,10 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ - | (uint32)0x01000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ + | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ @@ -405,10 +405,10 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ - | (uint32)0x01000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ + | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ @@ -438,10 +438,10 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ - | (uint32)0x01000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ + | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00080000U \ | (uint32)0x00000000U \ @@ -451,7 +451,6 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ - | (uint32)0x00000800U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ @@ -462,6 +461,7 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ + | (uint32)0x00000000U \ | (uint32)0x00000000U) #define HET1_HRSH_CONFIGVALUE ((uint32)0x00000000U \ Index: firmware/source/het.c =================================================================== diff -u -rc48569a478d727afa7cd69aadb396814248c83f9 -rcea079b61dbd17b2ddaec99b1124248147d14e72 --- firmware/source/het.c (.../het.c) (revision c48569a478d727afa7cd69aadb396814248c83f9) +++ firmware/source/het.c (.../het.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) @@ -1152,7 +1152,6 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x01000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U @@ -1176,6 +1175,7 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00000000U | (uint32) 0x00000000U; /** - Set HET pins pullup/down enable */ @@ -1186,7 +1186,6 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x01000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U @@ -1210,6 +1209,7 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00000000U | (uint32) 0x00000000U; /** - Set HET pins pullup/down select */ @@ -1220,11 +1220,11 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x01000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00000000U | (uint32) 0x00080000U | (uint32) 0x00000000U | (uint32) 0x00020000U @@ -1233,7 +1233,6 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U - | (uint32) 0x00000800U | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U @@ -1244,6 +1243,7 @@ | (uint32) 0x00000000U | (uint32) 0x00000000U | (uint32) 0x00000000U + | (uint32) 0x00000000U | (uint32) 0x00000000U; /** - Set HET pins high resolution share */