Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -rb0f71f7faa129e67fa5a36629801e4ae6a0173f4 -r66c624837b7b915415810e67249048ce5a46c163 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision b0f71f7faa129e67fa5a36629801e4ae6a0173f4) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 66c624837b7b915415810e67249048ce5a46c163) @@ -46,9 +46,9 @@ #define MAX_CONDUCTIVITY_SENSOR_FAILURE_WINDOW_MS (60 * MS_PER_SECOND) ///< Conductivity sensor error window #define RO_REJECTION_RATIO_REPORT_PERIOD (MS_PER_SECOND / TASK_PRIORITY_INTERVAL) ///< Broadcast RO rejection ratio message every second -#define RO_REJECTION_RATIO_OUT_OF_RANGE_VALUE 1 ///< Out of range value for RO rejection ratio when CPi conductivity is zero +#define RO_REJECTION_RATIO_OUT_OF_RANGE_VALUE 1.0 ///< Out of range value for RO rejection ratio when CPi conductivity is zero #define MAX_RO_REJECTION_RATIO_ALLOW 0.1 ///< Maximum RO Rejection ratio -#define MAX_CPO_CONDUCTIVITY_ALLOW 15 ///< Maximum CPo sensor conductivity value +#define MAX_CPO_CONDUCTIVITY_ALLOW 15.0 ///< Maximum CPo sensor conductivity value #define RO_REJECTION_RATIO_PERSISTENCE_COUNT (10 * MS_PER_SECOND / TASK_GENERAL_INTERVAL) ///< Number of persistence count for RO rejection ro // ********** private data ********** @@ -62,7 +62,7 @@ static U08 readCount[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Read count for conductivity readings. static U32 internalErrorCount[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Internal error count for conductivity readings. static OVERRIDE_F32_T compensatedConductivityValues[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Latest compensated conductivity values. -static OVERRIDE_F32_T roRejectionRatio; ///< Latest RO rejection ratio +static F32 roRejectionRatio; ///< Latest RO rejection ratio static OVERRIDE_U32_T conductivityDataPublishInterval = { COND_SENSOR_REPORT_PERIOD, COND_SENSOR_REPORT_PERIOD, 0, 0 }; ///< Conductivity sensors publish time interval override @@ -73,7 +73,6 @@ static void processCPiCPoSensorRead( U32 sensorId, U32 fgpaRead, U08 fpgaReadCount, U08 fpgaErrorCount, U08 fpgaSensorFault ); static F32 calcCompensatedConductivity( F32 conductivity, F32 temperature); static void calcRORejectionRatio( void ); -static F32 getRORejectionRatio( void ); static DATA_GET_PROTOTYPE( U32, getConductivityDataPublishInterval ); /************************************************************************* @@ -87,6 +86,7 @@ void initConductivitySensors( void ) { U32 i; + roRejectionRatio = 0.0; for ( i = 0; i < NUM_OF_CONDUCTIVITY_SENSORS; i++ ) { @@ -99,17 +99,15 @@ compensatedConductivityValues[ i ].override = OVERRIDE_RESET; } - roRejectionRatio.data = 0.0; - roRejectionRatio.ovData = 0.0; - roRejectionRatio.ovInitData = 0.0; - roRejectionRatio.override = OVERRIDE_RESET; - setFPGACPoProbeType( COND_CPO_SENSOR_PROBE_TYPE ); initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_CONDUCTIVITY_SENSOR_ERROR, MAX_CONDUCTIVITY_SENSOR_FAILURES, MAX_CONDUCTIVITY_SENSOR_FAILURE_WINDOW_MS ); - initPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY, ALARM_DATA_TYPE_F32, COND_SENSOR_PERSISTENCE_COUNT, COND_SENSOR_PERSISTENCE_COUNT ); - initPersistentAlarm( ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, ALARM_DATA_TYPE_F32, COND_SENSOR_PERSISTENCE_COUNT, COND_SENSOR_PERSISTENCE_COUNT ); - initPersistentAlarm( ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE, ALARM_DATA_TYPE_F32, RO_REJECTION_RATIO_PERSISTENCE_COUNT, RO_REJECTION_RATIO_PERSISTENCE_COUNT ); + initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_CONDUCTIVITY, ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY, + COND_SENSOR_PERSISTENCE_COUNT, COND_SENSOR_PERSISTENCE_COUNT ); + initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_LOW_CONDUCTIVITY, ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, + COND_SENSOR_PERSISTENCE_COUNT, COND_SENSOR_PERSISTENCE_COUNT ); + initPersistentAlarm( PERSISTENT_ALARM_RO_REJECTION_RATIO_OUT_OF_RANGE, ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE, + RO_REJECTION_RATIO_PERSISTENCE_COUNT, RO_REJECTION_RATIO_PERSISTENCE_COUNT ); } /************************************************************************* @@ -130,7 +128,7 @@ { conductivityDataPublicationTimerCounter = 0; calcRORejectionRatio(); - broadcastConductivityData( getRORejectionRatio(), getConductivityValue(CONDUCTIVITYSENSORS_CPI_SENSOR), + broadcastConductivityData( roRejectionRatio, getConductivityValue(CONDUCTIVITYSENSORS_CPI_SENSOR), getConductivityValue(CONDUCTIVITYSENSORS_CPO_SENSOR) ); } @@ -151,8 +149,8 @@ BOOL const isCondTooHigh = ( conductivity > COND_SENSOR_CPI_CPO_MAX_VALUE ); BOOL const isCondTooLow = ( conductivity < COND_SENSOR_CPI_CPO_MIN_VALUE ); - checkPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY, isCondTooHigh, conductivity ); - checkPersistentAlarm( ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, isCondTooLow, conductivity ); + checkPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_CONDUCTIVITY, isCondTooHigh, conductivity ); + checkPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_LOW_CONDUCTIVITY, isCondTooLow, conductivity ); } /************************************************************************* @@ -167,10 +165,9 @@ *************************************************************************/ void checkRORejectionRatio( void ) { - F32 const roRejectionRatio = getRORejectionRatio(); F32 const cpo = getConductivityValue( CONDUCTIVITYSENSORS_CPO_SENSOR ); BOOL const isRORejectionRatioOutOfRange = ( roRejectionRatio > MAX_RO_REJECTION_RATIO_ALLOW ) || ( cpo >= MAX_CPO_CONDUCTIVITY_ALLOW ); - checkPersistentAlarm( ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE, isRORejectionRatioOutOfRange, roRejectionRatio ); + checkPersistentAlarm( PERSISTENT_ALARM_RO_REJECTION_RATIO_OUT_OF_RANGE, isRORejectionRatioOutOfRange, roRejectionRatio ); } /************************************************************************* @@ -185,7 +182,7 @@ *************************************************************************/ F32 getConductivityValue( U32 sensorId ) { - F32 result = 0; + F32 result = 0.0; if ( sensorId < NUM_OF_CONDUCTIVITY_SENSORS ) { @@ -221,33 +218,13 @@ static F32 calcCompensatedConductivity( F32 conductivity, F32 temperature) { // EC = EC_25 * (1 + temp_coef * (temperature - 25)) - F32 const compensatedCoef = ( 1 + ( COND_SENSOR_TEMPERATURE_COEF * (temperature - COND_SENSOR_REFERENCE_TEMPERATURE) ) ); + F32 const compensatedCoef = ( 1.0 + ( COND_SENSOR_TEMPERATURE_COEF * (temperature - COND_SENSOR_REFERENCE_TEMPERATURE) ) ); return conductivity * compensatedCoef; } /************************************************************************* * @brief - * The getRORejectionRatio function gets the latest RO rejection ratio - * @details - * Inputs: roRejectionRatio - * Outputs: none - * @return RO rejection ratio - *************************************************************************/ -F32 getRORejectionRatio( void ) -{ - F32 result = roRejectionRatio.data; - - if ( OVERRIDE_KEY == roRejectionRatio.override ) - { - result = roRejectionRatio.ovData; - } - - return result; -} - -/************************************************************************* - * @brief * The calcRORejectionRatio function calculates the RO rejection ratio using * the cpi sensor conductivity value and cpo sensor conductivity value. * @details @@ -259,11 +236,11 @@ { F32 const cpi = getConductivityValue( CONDUCTIVITYSENSORS_CPI_SENSOR ); F32 const cpo = getConductivityValue( CONDUCTIVITYSENSORS_CPO_SENSOR ); - roRejectionRatio.data = RO_REJECTION_RATIO_OUT_OF_RANGE_VALUE; + roRejectionRatio = RO_REJECTION_RATIO_OUT_OF_RANGE_VALUE; - if ( cpi > 0 ) + if ( fabs(cpi) >= NEARLY_ZERO ) { - roRejectionRatio.data = cpo / cpi; + roRejectionRatio = cpo / cpi; } } @@ -394,52 +371,6 @@ /************************************************************************* * @brief - * The testSetRORejectionRatioOverride function overrides the RO Rejection ratio. - * @details - * Inputs : roRejectionRatio - * Outputs : roRejectionRatio - * @param value Override RO Rejection ratio value - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -BOOL testSetRORejectionRatioOverride( F32 value ) -{ - BOOL result = FALSE; - - if ( isTestingActivated() ) - { - result = TRUE; - roRejectionRatio.ovData = value; - roRejectionRatio.override = OVERRIDE_KEY; - } - - return result; -} - -/************************************************************************* - * @brief - * The testResetRORejectionRatioOverride function resets the override of - * the RO Rejection ratio. - * @details - * Inputs : roRejectionRatio - * Outputs : roRejectionRatio - * @return TRUE if reset successful, FALSE if not - *************************************************************************/ -BOOL testResetRORejectionRatioOverride( void ) -{ - BOOL result = FALSE; - - if ( isTestingActivated() ) - { - result = TRUE; - roRejectionRatio.ovData = roRejectionRatio.ovInitData; - roRejectionRatio.override = OVERRIDE_RESET; - } - - return result; -} - -/************************************************************************* - * @brief * The testSetConductivityDataPublishIntervalOverride function overrides * the conductivity data publish interval. * @details Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -rb07b7e985cc46d55f1db4fe7e2b544c45ea9c7db -r66c624837b7b915415810e67249048ce5a46c163 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision b07b7e985cc46d55f1db4fe7e2b544c45ea9c7db) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 66c624837b7b915415810e67249048ce5a46c163) @@ -236,9 +236,11 @@ // Windowed time count for FPGA temperature sensor error initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_TEMPERATURE_SENSOR_ERROR, MAX_TEMPERATURE_SENSOR_FAILURES, MAX_TEMPERATURE_SENSOR_FAILURE_WINDOW_MS ); - initPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, ALARM_DATA_TYPE_F32, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT ); - - initPersistentAlarm( ALARM_ID_INLET_WATER_LOW_TEMPERATURE, ALARM_DATA_TYPE_F32, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT ); + // Persistent alarms for inlet water high/low temperature + initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_TEMPERATURE, ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, + INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT ); + initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_LOW_TEMPERATURE, ALARM_ID_INLET_WATER_LOW_TEMPERATURE, + INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT ); } /************************************************************************* @@ -324,8 +326,8 @@ BOOL const isWaterTempTooHigh = temperature > MAX_WATER_INPUT_TEMPERATURE; BOOL const isWaterTempTooLow = temperature < MIN_WATER_INPUT_TEMPERATURE; - checkPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, isWaterTempTooHigh, temperature ); - checkPersistentAlarm( ALARM_ID_INLET_WATER_LOW_TEMPERATURE, isWaterTempTooLow, temperature ); + checkPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_TEMPERATURE, isWaterTempTooHigh, temperature ); + checkPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_LOW_TEMPERATURE, isWaterTempTooLow, temperature ); } /************************************************************************* Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -rdc0d9b087c609e71cacdb7f0395cccf29d749c00 -r66c624837b7b915415810e67249048ce5a46c163 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision dc0d9b087c609e71cacdb7f0395cccf29d749c00) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 66c624837b7b915415810e67249048ce5a46c163) @@ -144,6 +144,7 @@ SW_FAULT_ID_ACCEL_INVALID_SELF_TEST_STATE, SW_FAULT_ID_UTIL_INVALID_WIN_COUNT, SW_FAULT_ID_UTIL_INVALID_WIN_MAX_COUNT, + SW_FAULT_ID_PERSISTENT_ALARM_INVALID_INDEX, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; Index: firmware/App/Services/FPGA.c =================================================================== diff -u -rb07b7e985cc46d55f1db4fe7e2b544c45ea9c7db -r66c624837b7b915415810e67249048ce5a46c163 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision b07b7e985cc46d55f1db4fe7e2b544c45ea9c7db) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 66c624837b7b915415810e67249048ce5a46c163) @@ -1425,7 +1425,7 @@ /************************************************************************* * @brief - * The getFPGACPoReadCount function gets CPi conductivity sensor fault + * The getFPGACPiFault function gets CPi conductivity sensor fault * @details * Inputs : fpgaSensorReadings.fpgaCPiFault * Outputs : none @@ -1481,7 +1481,7 @@ /************************************************************************* * @brief - * The getFPGACPoReadCount function gets CPo conductivity sensor fault + * The getFPGACPoFault function gets CPo conductivity sensor fault * @details * Inputs : fpgaSensorReadings.fpgaCPoFault * Outputs : none Index: firmware/App/Services/FPGA.h =================================================================== diff -u -rb07b7e985cc46d55f1db4fe7e2b544c45ea9c7db -r66c624837b7b915415810e67249048ce5a46c163 --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision b07b7e985cc46d55f1db4fe7e2b544c45ea9c7db) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision 66c624837b7b915415810e67249048ce5a46c163) @@ -35,7 +35,7 @@ void setFPGAValveStates( U16 valveStates ); void setFPGADrainPumpSpeed( U08 drainPumpDAC ); -void setFPGACPoProbeType( U16 valveStates ); +void setFPGACPoProbeType( U16 probeType ); void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ); U16 getFPGAValveStates( void ); Fisheye: Tag 66c624837b7b915415810e67249048ce5a46c163 refers to a dead (removed) revision in file `firmware/App/Services/PersistentAlarm.c'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 66c624837b7b915415810e67249048ce5a46c163 refers to a dead (removed) revision in file `firmware/App/Services/PersistentAlarm.h'. Fisheye: No comparison available. Pass `N' to diff? Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rdc0d9b087c609e71cacdb7f0395cccf29d749c00 -r66c624837b7b915415810e67249048ce5a46c163 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision dc0d9b087c609e71cacdb7f0395cccf29d749c00) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 66c624837b7b915415810e67249048ce5a46c163) @@ -1161,7 +1161,7 @@ case MSG_ID_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE: handleTestSetConductivityDataPublishIntervalOverrideRequest ( message ); break; - + case MSG_ID_DG_ACCEL_OVERRIDE: handleTestDGAccelOverrideRequest( message ); break;