Index: firmware/App/Controllers/AlarmAudio.c =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd --- firmware/App/Controllers/AlarmAudio.c (.../AlarmAudio.c) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Controllers/AlarmAudio.c (.../AlarmAudio.c) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) @@ -69,12 +69,11 @@ // ********** private data ********** -/// Alarm audio attenuation level (0..4 where 0 = max volume and 4 = min volume). -static OVERRIDE_U32_T alarmAudioVolumeLevel = { MAX_ALARM_VOLUME_ATTENUATION, MAX_ALARM_VOLUME_ATTENUATION, MAX_ALARM_VOLUME_ATTENUATION, 0 }; +static OVERRIDE_U32_T alarmAudioVolumeLevel; ///< Alarm audio attenuation level (0..4 where 0 = max volume and 4 = min volume). -static OVERRIDE_F32_T alarmPrimaryAudioCurrentHG = { 0.0, 0.0, 0.0, 0 }; ///< Alarm audio current (high gain) measured at ADC. -static OVERRIDE_F32_T alarmPrimaryAudioCurrentLG = { 0.0, 0.0, 0.0, 0 }; ///< Alarm audio current (low gain) measured at ADC. -static OVERRIDE_F32_T alarmBackupAudioCurrent = { 0.0, 0.0, 0.0, 0 }; ///< Alarm backup audio current measured at ADC. +static OVERRIDE_F32_T alarmPrimaryAudioCurrentHG; ///< Alarm audio current (high gain) measured at ADC. +static OVERRIDE_F32_T alarmPrimaryAudioCurrentLG; ///< Alarm audio current (low gain) measured at ADC. +static OVERRIDE_F32_T alarmBackupAudioCurrent; ///< Alarm backup audio current measured at ADC. static ALARM_AUDIO_SELF_TEST_STATE_T alarmAudioSelfTestState; ///< Current state of the alarm audio self tests. static U32 audioTestStartTime; ///< Start time of audio alarm current self-test. @@ -96,6 +95,26 @@ // Disable backup audio clrAlarmBuzzerSignal(); + alarmAudioVolumeLevel.data = MAX_ALARM_VOLUME_ATTENUATION; + alarmAudioVolumeLevel.ovData = MAX_ALARM_VOLUME_ATTENUATION; + alarmAudioVolumeLevel.ovInitData = MAX_ALARM_VOLUME_ATTENUATION; + alarmAudioVolumeLevel.override = OVERRIDE_RESET; + + alarmPrimaryAudioCurrentHG.data = 0.0; + alarmPrimaryAudioCurrentHG.ovData = 0.0; + alarmPrimaryAudioCurrentHG.ovInitData = 0.0; + alarmPrimaryAudioCurrentHG.override = OVERRIDE_RESET; + + alarmPrimaryAudioCurrentLG.data = 0.0; + alarmPrimaryAudioCurrentLG.ovData = 0.0; + alarmPrimaryAudioCurrentLG.ovInitData = 0.0; + alarmPrimaryAudioCurrentLG.override = OVERRIDE_RESET; + + alarmBackupAudioCurrent.data = 0.0; + alarmBackupAudioCurrent.ovData = 0.0; + alarmBackupAudioCurrent.ovInitData = 0.0; + alarmBackupAudioCurrent.override = OVERRIDE_RESET; + alarmAudioTestToneRequested = FALSE; alarmAudioSelfTestState = ALARM_AUDIO_SELF_TEST_STATE_START; audioTestStartTime = 0; Index: firmware/App/Controllers/AlarmLamp.c =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd --- firmware/App/Controllers/AlarmLamp.c (.../AlarmLamp.c) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Controllers/AlarmLamp.c (.../AlarmLamp.c) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) @@ -61,9 +61,8 @@ #define POST_LAMP_STEP_TIME_MS 1000 ///< Duration (in ms) for each alarm lamp self-test step. // ********** private data ********** - -/// Current alarm lamp pattern (overrideable). -static OVERRIDE_U32_T currentLampPattern = { LAMP_PATTERN_MANUAL, LAMP_PATTERN_FAULT, LAMP_PATTERN_FAULT, 0 }; + +static OVERRIDE_U32_T currentLampPattern; ///< Current alarm lamp pattern (overrideable). static LAMP_PATTERN_T pendingLampPattern = LAMP_PATTERN_MANUAL; ///< Pending alarm lamp pattern. static U32 currentLampPatternStep = 0; ///< Current alarm lamp pattern step. static U32 lampPatternStepTimer = 0; ///< Timer counter for current alarm lamp pattern step. @@ -95,7 +94,11 @@ * @return none *************************************************************************/ void initAlarmLamp( void ) -{ +{ + currentLampPattern.data = LAMP_PATTERN_MANUAL; + currentLampPattern.ovData = LAMP_PATTERN_FAULT; + currentLampPattern.ovInitData = LAMP_PATTERN_FAULT; + currentLampPattern.override = OVERRIDE_RESET; pendingLampPattern = LAMP_PATTERN_MANUAL; currentLampPatternStep = 0; lampPatternStepTimer = 0; Index: firmware/App/Monitors/Switches.c =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd --- firmware/App/Monitors/Switches.c (.../Switches.c) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Monitors/Switches.c (.../Switches.c) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) @@ -33,18 +33,12 @@ #define SWITCHES_DEBOUNCE_TIME_MS ( MS_PER_SECOND / 4 ) ///< Switches FPGA status check interval. #define DATA_PUBLISH_COUNTER_START_COUNT 90 ///< Data publish counter start count. -/// Switch status structure -typedef struct -{ - OVERRIDE_U32_T status; ///< Switch status. - U32 debounceStartTime; ///< Debounce start time. -} SWITCH_STATUS_T; - // ********** private data ********** static U32 switchesDataPublicationCounter; ///< Switches data publication counter. static OVERRIDE_U32_T switchesDataPublishInterval; ///< Interval (in ms) at which to publish switches data to CAN bus. -static SWITCH_STATUS_T switchesStatus[ NUM_OF_SWITCHES ]; ///< Switches status array. +static OVERRIDE_U32_T switchesStatus[ NUM_OF_SWITCHES ]; ///< Debounced switch states. +static U32 switchDebounceStartTimes[ NUM_OF_SWITCHES ]; ///< Switch debounce start times. static BOOL requireDoorClosed; ///< Flag indicates whether door is required to be closed in current state. // ********** private function prototypes ********** @@ -74,11 +68,11 @@ // Initialize all the switches for ( i = 0; i < NUM_OF_SWITCHES; i++ ) { - switchesStatus[ i ].status.data = (U32)STATE_CLOSED; - switchesStatus[ i ].status.ovData = (U32)STATE_CLOSED; - switchesStatus[ i ].status.ovInitData = (U32)STATE_CLOSED; - switchesStatus[ i ].status.override = OVERRIDE_RESET; - switchesStatus[ i ].debounceStartTime = 0; + switchesStatus[ i ].data = (U32)STATE_CLOSED; + switchesStatus[ i ].ovData = (U32)STATE_CLOSED; + switchesStatus[ i ].ovInitData = (U32)STATE_CLOSED; + switchesStatus[ i ].override = OVERRIDE_RESET; + switchDebounceStartTimes[ i ] = 0; } } @@ -109,24 +103,24 @@ #endif { // Check if the current switch status is not the same as the recorded data - if ( (U32)currentSwitchStates[ i ] != switchesStatus[ i ].status.data ) + if ( (U32)currentSwitchStates[ i ] != switchesStatus[ i ].data ) { // If the debounce time is 0, start the timer - if ( 0 == switchesStatus[ i ].debounceStartTime ) + if ( 0 == switchDebounceStartTimes[ i ] ) { - switchesStatus[ i ].debounceStartTime = getMSTimerCount(); + switchDebounceStartTimes[ i ] = getMSTimerCount(); } // If the debounce time has been elapsed, update the switch status to the new status - else if ( TRUE == didTimeout( switchesStatus[ i ].debounceStartTime, SWITCHES_DEBOUNCE_TIME_MS ) ) + else if ( TRUE == didTimeout( switchDebounceStartTimes[ i ], SWITCHES_DEBOUNCE_TIME_MS ) ) { // If the bit is 0, the door switch is open, because it is normally open switch - switchesStatus[ i ].debounceStartTime = 0; - switchesStatus[ i ].status.data = currentSwitchStates[ i ]; + switchDebounceStartTimes[ i ] = 0; + switchesStatus[ i ].data = currentSwitchStates[ i ]; } } else { - switchesStatus[ i ].debounceStartTime = 0; + switchDebounceStartTimes[ i ] = 0; } } } @@ -185,11 +179,11 @@ if ( switchId < NUM_OF_SWITCHES ) { - state = switchesStatus[ switchId ].status.data; + state = switchesStatus[ switchId ].data; - if ( OVERRIDE_KEY == switchesStatus[ switchId ].status.override ) + if ( OVERRIDE_KEY == switchesStatus[ switchId ].override ) { - state = switchesStatus[ switchId ].status.ovData; + state = switchesStatus[ switchId ].ovData; } } else Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) @@ -720,7 +720,7 @@ } } -// sendActiveAlarmsList( activeAlarmPayload ); +// TODO sendActiveAlarmsList( activeAlarmPayload ); } /*********************************************************************//** Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) @@ -76,9 +76,9 @@ MSG_ID_TESTER_LOGIN_REQUEST, MSG_ID_TD_SOFTWARE_RESET_REQUEST, MSG_ID_TD_BUBBLE_OVERRIDE_REQUEST, + MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, MSG_ID_TD_VOLTAGE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, MSG_ID_TD_VOLTAGE_OVERRIDE_REQUEST, - MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, MSG_ID_TD_PRESSURE_OVERRIDE_REQUEST, MSG_ID_TD_AIR_PUMP_SET_STATE_REQUEST, MSG_ID_TD_AIR_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, @@ -96,11 +96,11 @@ /// Message handling function table static const MsgFuncPtr MSG_FUNCTION_HANDLERS[] = { &handleTesterLogInRequest, - &handleTDSoftwareResetRequest, + &testTDSoftwareResetRequest, &testBubbleDetectOverride, + &testBubblesDataPublishIntervalOverride, &testVoltageDataPublishIntervalOverride, &testVoltageOverride, - &testBubblesDataPublishIntervalOverride, &testPressureSensorOverride, &testSetAirPump, &testAirPumpDataPublishIntervalOverride, @@ -539,15 +539,15 @@ /*********************************************************************//** * @brief - * The handleTDSoftwareResetRequest function handles a request to reset the + * The testTDSoftwareResetRequest function handles a request to reset the * TD firmware processor. * @note If reset is successful, this function will not return. * @details \b Inputs: none * @details \b Outputs: TD processor soft reset if request is valid * @param message Pointer to the reset request message * @return FALSE if reset command rejected *************************************************************************/ -BOOL handleTDSoftwareResetRequest( MESSAGE_T *message ) +BOOL testTDSoftwareResetRequest( MESSAGE_T *message ) { BOOL result = FALSE; Index: firmware/App/Services/Messaging.h =================================================================== diff -u -r3a8cf075eb6f0d255f516ac26bac7fbaacfde14a -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd --- firmware/App/Services/Messaging.h (.../Messaging.h) (revision 3a8cf075eb6f0d255f516ac26bac7fbaacfde14a) +++ firmware/App/Services/Messaging.h (.../Messaging.h) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) @@ -161,7 +161,7 @@ BOOL sendOffButtonMsgToUI( U08 prompt ); // MSG_ID_TD_SOFTWARE_RESET_REQUEST -BOOL handleTDSoftwareResetRequest( MESSAGE_T *message ); +BOOL testTDSoftwareResetRequest( MESSAGE_T *message ); /**@}*/