Index: firmware/App/Controllers/DrainPump.c =================================================================== diff -u -rebbb1f85550a1f9b8f946655f7b2b63f76fbf67d -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision ebbb1f85550a1f9b8f946655f7b2b63f76fbf67d) +++ firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -271,7 +271,7 @@ // The RPM is only checked in open loop state that the pump is run at a fixed RPM. // The persistent alarm waits for a couple of seconds before raising an alarm, this is supposed to cover // when the pump is turned on and it takes a while to ramp up to target RPM. - if( drainPumpControlModeSet == PUMP_CONTROL_MODE_OPEN_LOOP ) + if ( drainPumpControlModeSet == PUMP_CONTROL_MODE_OPEN_LOOP ) { U32 targetRPM = getTargetDrainPumpRPM(); F32 threshold = OPEN_LOOP_RPM_OUT_OF_RANGE * targetRPM; Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -rfba89d67dd2bef913e85a13563e2aa49f0e2e2f5 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision fba89d67dd2bef913e85a13563e2aa49f0e2e2f5) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -308,7 +308,7 @@ FANS_EXEC_STATES_T state = FANS_EXEC_STATE_RUN_STATE; // Check if it is time to check for the control - if( ++fansControlCounter > FANS_CONTROL_INTERVAL ) + if ( ++fansControlCounter > FANS_CONTROL_INTERVAL ) { // Get the maximum temperature among all the thermistors and temperature sensors to run fan from the hottest temperature F32 temperature = getMaximumTemperature(); Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r34ed52c598042fdcfa5526e3b1d46fa09b040199 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 34ed52c598042fdcfa5526e3b1d46fa09b040199) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -561,7 +561,7 @@ { HEATERS_SELF_TEST_STATES_T state = HEATERS_SELF_TEST_SMALL_PRIMARY_AND_TRIMMER_HEATERS; - if ( didTimeout( selfTestElapsedTime, HEATERS_POST_HEAT_UP_TIME_SECONDS ) ) + if ( TRUE == didTimeout( selfTestElapsedTime, HEATERS_POST_HEAT_UP_TIME_SECONDS ) ) { setSmallPrimaryHeaterPWM( 0 ); setTrimmerHeaterPWM( 0 ); @@ -600,7 +600,7 @@ { HEATERS_SELF_TEST_STATES_T state = HEATERS_SELF_TEST_MAIN_PRIMARY_HEATER; - if ( didTimeout( selfTestElapsedTime, HEATERS_POST_HEAT_UP_TIME_SECONDS ) ) + if ( TRUE == didTimeout( selfTestElapsedTime, HEATERS_POST_HEAT_UP_TIME_SECONDS ) ) { setMainPrimaryHeaterPWM( 0 ); @@ -635,7 +635,7 @@ { PRIMARY_HEATERS_EXEC_STATES_T state = PRIMARY_HEATERS_EXEC_STATE_OFF; - if ( hasStartPrimaryHeaterRequested ) + if ( TRUE == hasStartPrimaryHeaterRequested ) { resetHeaterState( PRIMARY_HEATER ); setMainPrimaryHeaterPWM( mainPrimaryHeaterDutyCycle ); @@ -730,7 +730,7 @@ { TRIMMER_HEATER_EXEC_STATES_T state = TRIMMER_HEATER_EXEC_STATE_OFF; - if ( hasStartTrimmerHeaterRequested ) + if ( TRUE == hasStartTrimmerHeaterRequested ) { resetHeaterState( TRIMMER_HEATER ); isTrimmerHeaterOn = TRUE; @@ -783,7 +783,7 @@ trimmerHeaterTimerCounter = 0; } - if ( ! isTrimmerHeaterOn ) + if ( isTrimmerHeaterOn != TRUE ) { // Set the duty cycle to 0 and switch to off state trimmerHeaterDutyCycle = HEATERS_MIN_DUTY_CYCLE; @@ -916,7 +916,7 @@ { BOOL result = FALSE; - if ( isTestingActivated() ) + if ( TRUE == isTestingActivated() ) { U32 interval = value / TASK_PRIORITY_INTERVAL; @@ -940,7 +940,7 @@ { BOOL result = FALSE; - if ( isTestingActivated() ) + if ( TRUE == isTestingActivated() ) { result = TRUE; heatersDataPublishInterval.override = OVERRIDE_RESET; Index: firmware/App/Controllers/ROPump.c =================================================================== diff -u -r1a7b3fdc8c9b47ae713a7ec37670a96df7d73818 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision 1a7b3fdc8c9b47ae713a7ec37670a96df7d73818) +++ firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -343,7 +343,7 @@ checkPersistentAlarm( ALARM_ID_RO_PUMP_OFF_FAULT, isPumpRunning, pressureInlet, ( pressureInlet + MAX_PRESSURE_TARGET_TOLERANCE ) ); // Check if it has timed out - if ( isAlarmActive( ALARM_ID_RO_PUMP_OFF_FAULT ) ) + if ( TRUE == isAlarmActive( ALARM_ID_RO_PUMP_OFF_FAULT ) ) { activateSafetyShutdown(); } Index: firmware/App/Controllers/UVReactors.c =================================================================== diff -u -rccf1219089b835ab2f9d401c0be0d2000be9010a -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Controllers/UVReactors.c (.../UVReactors.c) (revision ccf1219089b835ab2f9d401c0be0d2000be9010a) +++ firmware/App/Controllers/UVReactors.c (.../UVReactors.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -353,7 +353,7 @@ // If the a reactor is requested to be on and it is off, turn it on // and change the state - if( TURN_ON == reactorsStatus[ reactor ].switchState ) + if ( TURN_ON == reactorsStatus[ reactor ].switchState ) { setReactorEnableStatus( reactor, PIN_SIGNAL_HIGH ); @@ -382,13 +382,13 @@ checkPersistentAlarm( ALARM_ID_UV_REACTOR_NOT_HEALTHY, !isReactorHealthy, (U32)reactor, MAX_ALLOWED_UNHEALTHY_REACTOR_PERIOD ); // Check if the alarm has been active - if( isAlarmActive( ALARM_ID_UV_REACTOR_NOT_HEALTHY ) ) + if ( TRUE == isAlarmActive( ALARM_ID_UV_REACTOR_NOT_HEALTHY ) ) { reactorsStatus[ reactor ].switchState = TURN_OFF; } // Check if it has been requested to turn off a reactor - if( TURN_OFF == reactorsStatus[ reactor ].switchState ) + if ( TURN_OFF == reactorsStatus[ reactor ].switchState ) { setReactorEnableStatus( reactor, PIN_SIGNAL_LOW ); Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r4ef47949b3e17f400efe794467bdef39ca79e4e0 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 4ef47949b3e17f400efe794467bdef39ca79e4e0) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -15,6 +15,7 @@ * ***************************************************************************/ +#include "ConcentratePumps.h" #include "DrainPump.h" #include "Heaters.h" #include "ModeFault.h" Index: firmware/App/Modes/ModeFlush.c =================================================================== diff -u -re86af65442a36724461317980814f0868bd8c995 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision e86af65442a36724461317980814f0868bd8c995) +++ firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -607,7 +607,7 @@ } } // Once reservoir 2 is full, reservoir 1 must be partially full - else if( DG_RESERVOIR_REACHED_TARGET == rsrvr2Status ) + else if ( DG_RESERVOIR_REACHED_TARGET == rsrvr2Status ) { rsrvr1Status = getRsrvrFillStatus( DG_RESERVOIR_1, RSRVRS_PARTIAL_FILL_VOL_ML, RSRVRS_PARTIAL_FILL_TIMEOUT_MS ); @@ -630,7 +630,7 @@ } } // Check if reservoir 2 fill time out - else if( DG_RESERVOIR_NOT_REACHED_TARGET == rsrvr2Status ) + else if ( DG_RESERVOIR_NOT_REACHED_TARGET == rsrvr2Status ) { state = DG_FLUSH_STATE_CANCEL_WATER_PATH; } Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r8b8b9bbb288c06acec1fdf8a2e93248c3d775478 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 8b8b9bbb288c06acec1fdf8a2e93248c3d775478) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -625,7 +625,7 @@ BOOL isTD2Out = ( fabs( TD2Temp - avgTemp ) > MAX_FLUSH_CIRC_TEMP_SENSOR_DIFF_C ? TRUE : FALSE ); // Check if any of the temperature sensors are out of tolerance - if( ( TRUE == isThdOut ) || ( TRUE == isTPoOut ) || ( TRUE == isTD1Out ) || ( TRUE == isTD2Out ) ) + if ( ( TRUE == isThdOut ) || ( TRUE == isTPoOut ) || ( TRUE == isTD1Out ) || ( TRUE == isTD2Out ) ) { // Check if we have exceeded the number of trials. If not, try another time if ( ++stateTrialCounter < MAX_ALLOWED_STATE_TRIALS ) @@ -703,7 +703,7 @@ } } // Once R1 is full, keep monitoring for R2 level and timeout - else if( DG_RESERVOIR_REACHED_TARGET == rsrvr1Status ) + else if ( DG_RESERVOIR_REACHED_TARGET == rsrvr1Status ) { rsrvr2Status = getRsrvrFillStatus( DG_RESERVOIR_2, RSRVRS_PARTIAL_FILL_VOL_ML, RSRVRS_500ML_FILL_UP_TIMEOUT_MS ); @@ -792,7 +792,7 @@ } } // Once R2 is full, R1 must be partially full - else if( DG_RESERVOIR_REACHED_TARGET == rsrvr2Status ) + else if ( DG_RESERVOIR_REACHED_TARGET == rsrvr2Status ) { rsrvr1Status = getRsrvrFillStatus( DG_RESERVOIR_1, RSRVRS_PARTIAL_FILL_VOL_ML, RSRVRS_500ML_FILL_UP_TIMEOUT_MS ); Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r4ef47949b3e17f400efe794467bdef39ca79e4e0 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 4ef47949b3e17f400efe794467bdef39ca79e4e0) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -31,11 +31,11 @@ // ********** private definitions ********** -const ALARM_DATA_T blankAlarmData = { ALARM_DATA_TYPE_NONE, 0 }; ///< A blank alarm data record for alarms that do not include alarm data when triggered. +const ALARM_DATA_T BLANK_ALARM_DATA = { ALARM_DATA_TYPE_NONE, 0 }; ///< A blank alarm data record for alarms that do not include alarm data when triggered. // ********** private data ********** -static OVERRIDE_U32_T alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Array of current state of each alarm +static BOOL alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Array of current state of each alarm static BOOL alarmConditionIsActive[ NUM_OF_ALARM_IDS ]; ///< Array of flag indicates if an alarm condition is active // ********** private function prototypes ********** @@ -56,11 +56,7 @@ // initialize alarm states and start time stamps for ( alrm = ALARM_ID_NO_ALARM; alrm < NUM_OF_ALARM_IDS; alrm++ ) { - alarmIsActive[ alrm ].data = FALSE; - alarmIsActive[ alrm ].ovData = FALSE; - alarmIsActive[ alrm ].ovInitData = TRUE; - alarmIsActive[ alrm ].override = OVERRIDE_RESET; - + alarmIsActive[ alrm ] = FALSE; alarmConditionIsActive[ alrm ] = FALSE; } } @@ -91,10 +87,10 @@ if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) { // no need to do anything if alarm is already active - if ( FALSE == isAlarmActive( alarm ) ) + if ( FALSE == alarmIsActive[ alarm ] ) { // activate alarm - alarmIsActive[ alarm ].data = TRUE; + alarmIsActive[ alarm ] = TRUE; alarmConditionIsActive[ alarm ] = TRUE; // If alarm is a fault, request transition to fault mode @@ -120,25 +116,8 @@ * @return none *************************************************************************/ void activateAlarmNoData( ALARM_ID_T alarm ) -{ - // broadcast alarm and data if alarm not already active - if ( FALSE == alarmIsActive[ alarm ].data ) - { - broadcastAlarmTriggered( alarm, blankAlarmData, blankAlarmData ); -#ifdef DEBUG_ENABLED -#ifdef ALARMS_DEBUG - { - // TODO - temporary debug code - remove later - char debugStr[ 256 ]; - sprintf( debugStr, "ALARM trig:%5d \n", alarm ); - sendDebugData( (U08*)debugStr, strlen(debugStr) ); - sendDebugDataToUI( (U08*)debugStr ); - } -#endif -#endif - } - - activateAlarm( alarm ); +{ + activateAlarm2Data( alarm, BLANK_ALARM_DATA, BLANK_ALARM_DATA ); } /*********************************************************************//** @@ -153,25 +132,8 @@ * @return none *************************************************************************/ void activateAlarm1Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData ) -{ - // broadcast alarm and data if alarm not already active - if ( FALSE == alarmIsActive[ alarm ].data ) - { - broadcastAlarmTriggered( alarm, alarmData, blankAlarmData ); -#ifdef DEBUG_ENABLED -#ifdef ALARMS_DEBUG - { - // TODO - temporary debug code - remove later - char debugStr[ 256 ]; - sprintf( debugStr, "ALARM trig:%5d %8X \n", alarm, alarmData.data.uInt.data ); - sendDebugData( (U08*)debugStr, strlen(debugStr) ); - sendDebugDataToUI( (U08*)debugStr ); - } -#endif -#endif - } - - activateAlarm( alarm ); +{ + activateAlarm2Data( alarm, alarmData, BLANK_ALARM_DATA ); } /*********************************************************************//** @@ -189,22 +151,10 @@ void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2 ) { // broadcast alarm and data if alarm not already active - if ( FALSE == alarmIsActive[ alarm ].data ) + if ( FALSE == alarmIsActive[ alarm ] ) { broadcastAlarmTriggered( alarm, alarmData1, alarmData2 ); -#ifdef DEBUG_ENABLED -#ifdef ALARMS_DEBUG - { - // TODO - temporary debug code - remove later - char debugStr[ 256 ]; - sprintf( debugStr, "ALARM trig:%5d %8X %8X \n", alarm, alarmData1.data.uInt.data, alarmData2.data.uInt.data ); - sendDebugData( (U08*)debugStr, strlen(debugStr) ); - sendDebugDataToUI( (U08*)debugStr ); - } -#endif -#endif } - activateAlarm( alarm ); } @@ -223,22 +173,11 @@ if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) { // clear alarm and broadcast alarm clear if not already cleared - if ( TRUE == alarmIsActive[ alarm ].data ) + if ( TRUE == alarmIsActive[ alarm ] ) { broadcastAlarmCleared( alarm ); - alarmIsActive[ alarm ].data = FALSE; + alarmIsActive[ alarm ] = FALSE; clearAlarmCondition( alarm ); -#ifdef DEBUG_ENABLED -#ifdef ALARMS_DEBUG - { - // TODO - temporary debug code - remove later - char debugStr[ 256 ]; - sprintf( debugStr, "ALARM cleared:%5d \n", alarm ); - sendDebugData( (U08*)debugStr, strlen(debugStr) ); - sendDebugDataToUI( (U08*)debugStr ); - } -#endif -#endif } } else @@ -284,24 +223,7 @@ *************************************************************************/ BOOL isAlarmActive( ALARM_ID_T alarm ) { - BOOL result = TRUE; - if ( alarm < NUM_OF_ALARM_IDS ) - { - if ( OVERRIDE_KEY == alarmIsActive[ alarm ].override ) - { - result = (BOOL)alarmIsActive[ alarm ].ovData; - } - else - { - result = (BOOL)alarmIsActive[ alarm ].data; - } - } - else - { - activateAlarmNoData( ALARM_ID_DG_SOFTWARE_FAULT ); - } - - return result; + return alarmIsActive[ alarm ]; } /*********************************************************************//** Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r24fd1893101af40cc6736aacaa20382875c80bf1 -ra8bb1da29825b5d666333629fda871652d16229a --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 24fd1893101af40cc6736aacaa20382875c80bf1) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a8bb1da29825b5d666333629fda871652d16229a) @@ -772,13 +772,17 @@ *************************************************************************/ void handleAlarmClear( MESSAGE_T *message ) { + BOOL result = FALSE; + if ( message->hdr.payloadLen == sizeof( U32 ) ) { U32 alarmId; + result = TRUE; memcpy(&alarmId, message->payload, sizeof( U32 ) ); clearAlarm( (ALARM_ID_T)alarmId ); } + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_HD, result ); } /*********************************************************************//**