Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r34ae229d1508df89630f4dc5fbe9291d135f0686 -r79d0c6ca5e03581ba1b4a142f5b450bf4547dded --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 34ae229d1508df89630f4dc5fbe9291d135f0686) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 79d0c6ca5e03581ba1b4a142f5b450bf4547dded) @@ -151,8 +151,8 @@ msrdPressureSum[ i ] = 0; } - initPersistentAlarm( ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_PRES_OUT_OF_RANGE_CLEAR_MS ); - initPersistentAlarm( ALARM_ID_INLET_WATER_PRESSURE_IN_HIGH_RANGE, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_PRES_OUT_OF_RANGE_CLEAR_MS ); + initPersistentAlarm( ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE, INLET_WATER_PRES_OUT_OF_RANGE_CLEAR_MS, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS ); + initPersistentAlarm( ALARM_ID_INLET_WATER_PRESSURE_IN_HIGH_RANGE, INLET_WATER_PRES_OUT_OF_RANGE_CLEAR_MS, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_PRESSURE_OUT_OF_RANGE, PRESSURE_OUT_OF_RANGE_TIMEOUT_MS, PRESSURE_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE, PRESSURE_OUT_OF_RANGE_TIMEOUT_MS, PRESSURE_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_HIGH, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS ); @@ -183,17 +183,17 @@ case DG_MODE_GENE: case DG_MODE_FILL: case DG_MODE_DRAI: - if ( ( pressure >= MIN_INLET_WATER_PRESSURE_WARNING_LOW_PSIG ) && ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE ) ) ) + if ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE ) ) { - isPressureTooLow = FALSE; + isPressureTooLow = ( pressure >= MIN_INLET_WATER_PRESSURE_WARNING_LOW_PSIG ? FALSE : TRUE ); } // Per PRS 401 checkPersistentAlarm( ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE, isPressureTooLow, pressure, MAX_INLET_WATER_PRESSURE_WARNING_LOW_PSIG ); - if ( ( pressure <= MIN_INLET_WATER_PRESSURE_WARNING_HIGH_PSIG ) && ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_PRESSURE_IN_HIGH_RANGE ) ) ) + if ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_PRESSURE_IN_HIGH_RANGE ) ) { - isPressureTooHigh = FALSE; + isPressureTooHigh = ( pressure <= MIN_INLET_WATER_PRESSURE_WARNING_HIGH_PSIG ? FALSE : TRUE ); } // Per PRS 841 @@ -245,6 +245,18 @@ return result; } + +/*********************************************************************//** + * @brief + * The resetPressuresPOSTState function resets the pressures POST state. + * @details Inputs: none + * @details Outputs: pressuresSelfTestState + * @return none + *************************************************************************/ +void resetPressuresPOSTState( void ) +{ + pressuresSelfTestState = PRESSURE_SELF_TEST_STATE_START; +} /*********************************************************************//** * @brief Index: firmware/App/Controllers/Pressures.h =================================================================== diff -u -r19ddae332910253204721af6204594467096f468 -r79d0c6ca5e03581ba1b4a142f5b450bf4547dded --- firmware/App/Controllers/Pressures.h (.../Pressures.h) (revision 19ddae332910253204721af6204594467096f468) +++ firmware/App/Controllers/Pressures.h (.../Pressures.h) (revision 79d0c6ca5e03581ba1b4a142f5b450bf4547dded) @@ -7,8 +7,8 @@ * * @file Pressures.h * -* @author (last) Dara Navaei -* @date (last) 27-Sep-2022 +* @author (last) Bill Bracken +* @date (last) 17-Jan-2023 * * @author (original) Sean * @date (original) 04-Apr-2020 @@ -46,12 +46,13 @@ /// Enumeration of pressure sensors monitored by this module. typedef enum PressureSensors { - PRESSURE_SENSOR_RO_PUMP_INLET = 0, ///< RO pump pressure sensor - PRESSURE_SENSOR_RO_PUMP_OUTLET, ///< RO pump pressure sensor - PRESSURE_SENSOR_DRAIN_PUMP_INLET, ///< drain pump inlet pressure - PRESSURE_SENSOR_DRAIN_PUMP_OUTLET, ///< drain pump outlet pressure - PRESSURE_SENSOR_BAROMETRIC, ///< Barometric pressure sensor - NUM_OF_PRESSURE_SENSORS ///< Number of pressure sensors + PRESSURE_FIRST = 0, ///< First pressure to scan + PRESSURE_SENSOR_RO_PUMP_INLET = PRESSURE_FIRST, ///< RO pump pressure sensor + PRESSURE_SENSOR_RO_PUMP_OUTLET, ///< RO pump pressure sensor + PRESSURE_SENSOR_DRAIN_PUMP_INLET, ///< drain pump inlet pressure + PRESSURE_SENSOR_DRAIN_PUMP_OUTLET, ///< drain pump outlet pressure + PRESSURE_SENSOR_BAROMETRIC, ///< Barometric pressure sensor + NUM_OF_PRESSURE_SENSORS ///< Number of pressure sensors } PRESSURE_SENSORS_T; // ********** public function prototypes ********** Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r34ae229d1508df89630f4dc5fbe9291d135f0686 -r79d0c6ca5e03581ba1b4a142f5b450bf4547dded --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 34ae229d1508df89630f4dc5fbe9291d135f0686) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 79d0c6ca5e03581ba1b4a142f5b450bf4547dded) @@ -324,8 +324,8 @@ tempSensors[ TEMPSENSORS_BAROMETRIC_TEMP_SENSOR ].maxAllowedTemp = NON_FLUID_PATH_TEMP_SENSORS_MAX_ALLOWED_DEGREE_C; // Persistent alarms for inlet water high/low temperature - initPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_TEMP_OUT_OF_RANGE_CLEAR_MS ); - initPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_TEMP_OUT_OF_RANGE_CLEAR_MS ); + initPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE, INLET_WATER_TEMP_OUT_OF_RANGE_CLEAR_MS, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS ); + initPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE, INLET_WATER_TEMP_OUT_OF_RANGE_CLEAR_MS, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_LOW, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS, INLET_WATER_TEMP_OUT_OF_RANGE_TIMEOUT_MS ); @@ -435,17 +435,17 @@ case DG_MODE_GENE: case DG_MODE_FILL: case DG_MODE_DRAI: - if ( ( temperature <= MIN_WATER_TEMPERATURE_WARNING_HIGH_RANGE ) && ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE ) ) ) + if ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE ) ) { - isWaterTempInHighRange = FALSE; + isWaterTempInHighRange = ( temperature <= MIN_WATER_TEMPERATURE_WARNING_HIGH_RANGE ? FALSE : TRUE ); } // Per PRS 406 checkPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE, isWaterTempInHighRange, temperature, MAX_WATER_TEMPERATURE_WARNING_HIGH_RANGE ); - if ( ( temperature >= MAX_WATER_TEMPERATURE_WARNING_LOW_RANGE ) && ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE ) ) ) + if ( TRUE == isAlarmActive( ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE ) ) { - isWaterTempInLowRange = FALSE; + isWaterTempInLowRange = ( temperature >= MAX_WATER_TEMPERATURE_WARNING_LOW_RANGE ? FALSE : TRUE ); } // Per PRS 405 @@ -1091,11 +1091,11 @@ #ifndef _RELEASE_ if ( ( HW_CONFIG_BETA == getHardwareConfigStatus() ) && ( getCurrentOperationMode() != DG_MODE_INIT ) ) -#endif { primaryAndCondSensorsRefResistance = PRIMARY_HEATER_EXT_TEMP_SENSORS_V3_REF_RESISTANCE; externalTempSesnorsRefResitance = TRIMMER_HEATER_EXT_TEMP_SENSORS_V3_REF_RESISTANCE; } +#endif tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].refResistance = primaryAndCondSensorsRefResistance; tempSensors[ TEMPSENSORS_OUTLET_PRIMARY_HEATER ].refResistance = primaryAndCondSensorsRefResistance; Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -r34ae229d1508df89630f4dc5fbe9291d135f0686 -r79d0c6ca5e03581ba1b4a142f5b450bf4547dded --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 34ae229d1508df89630f4dc5fbe9291d135f0686) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 79d0c6ca5e03581ba1b4a142f5b450bf4547dded) @@ -40,7 +40,7 @@ // ********** private definitions ********** #define TARGET_DRAIN_PUMP_RPM 2400 ///< Target drain pump speed (in RPM). -#define DRAIN_WEIGHT_UNCHANGE_TIMEOUT ( 2 * MS_PER_SECOND ) ///< Time period of unchanged weight during draining before timeout. +#define DRAIN_WEIGHT_UNCHANGE_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Time period of unchanged weight during draining before timeout. #define DRAIN_EMPTY_TARE_WAIT ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) /// Time period to wait after drain complete and before taring load cells. @@ -245,7 +245,7 @@ DG_RESERVOIR_ID_T inactiveReservoir = getInactiveReservoir(); // if we have reached our target drain to volume (by weight) or cannot drain anymore, we are done draining - go back to generation idle mode - if ( TRUE == hasTargetDrainVolumeBeenReached( inactiveReservoir, DRAIN_WEIGHT_UNCHANGE_TIMEOUT ) ) + if ( TRUE == hasTargetDrainVolumeBeenReached( inactiveReservoir, DRAIN_WEIGHT_UNCHANGE_TIMEOUT_MS ) ) { DG_ACID_CONCENTRATES_RECORD_T acid; F32 acidBottleVolML; Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r34ae229d1508df89630f4dc5fbe9291d135f0686 -r79d0c6ca5e03581ba1b4a142f5b450bf4547dded --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 34ae229d1508df89630f4dc5fbe9291d135f0686) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 79d0c6ca5e03581ba1b4a142f5b450bf4547dded) @@ -575,12 +575,12 @@ { fpgaReadByteSize = sizeof( DG_FPGA_SENSORS_T ); -#ifndef _RELEASE_ +/*#ifndef _RELEASE_ if ( ( HW_CONFIG_BETA == getHardwareConfigStatus() ) || ( DG_MODE_INIT == getCurrentOperationMode() ) ) { fpgaReadByteSize = FPGA_SIZE_OF_V3_READ_BYTES; } -#endif +#endif*/ // FPGA incoming state machine switch ( fpgaState ) @@ -642,12 +642,12 @@ { fpgaReadByteSize = sizeof( DG_FPGA_SENSORS_T ); -#ifndef _RELEASE_ +/*#ifndef _RELEASE_ if ( ( HW_CONFIG_BETA == getHardwareConfigStatus() ) || ( DG_MODE_INIT == getCurrentOperationMode() ) ) { fpgaReadByteSize = FPGA_SIZE_OF_V3_READ_BYTES; } -#endif +#endif*/ // FPGA outgoing state machine switch ( fpgaState )