Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -ra0d405d152c0f451ebf3c25e3c2cfa49a4db17cd -rb692af0986725e87431ca5e23c5721f1b242baac --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision a0d405d152c0f451ebf3c25e3c2cfa49a4db17cd) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision b692af0986725e87431ca5e23c5721f1b242baac) @@ -141,8 +141,6 @@ alarmStatus.alarmsSilenced = FALSE; alarmStatus.alarmsSilenceStart = 0; alarmStatus.alarmsSilenceExpiresIn = 0; - alarmStatus.alarmsEscalatesIn = 0; - alarmStatus.alarmsToEscalate = FALSE; alarmStatus.alarmTop = ALARM_ID_NO_ALARM; alarmStatus.topAlarmConditionDetected = FALSE; alarmStatus.systemFault = FALSE; @@ -1218,7 +1216,7 @@ // Lamp and audio timing sync'd with alarm status broadcast so UI/lamp/audio can stay in sync setAlarmLamp(); setAlarmAudio(); -// broadcastAlarmStatus( alarmStatus ); + broadcastAlarmStatus( alarmStatus ); alarmStatusPublicationTimerCounter = 0; } @@ -1240,7 +1238,7 @@ data.uiAlarmButtonBlocks[ ALARM_BUTTON_STATE_BLOCK_RINSEBACK ] = (U08)alarmButtonBlockers[ ALARM_BUTTON_STATE_BLOCK_RINSEBACK ]; data.uiAlarmButtonBlocks[ ALARM_BUTTON_STATE_BLOCK_END_TREATMENT ] = (U08)alarmButtonBlockers[ ALARM_BUTTON_STATE_BLOCK_END_TREATMENT ]; -// broadcastData( MSG_ID_TD_ALARM_INFORMATION_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)&data, sizeof( ALARM_INFO_PAYLOAD_T ) ); + broadcastData( MSG_ID_TD_ALARM_INFORMATION_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)&data, sizeof( ALARM_INFO_PAYLOAD_T ) ); alarmInfoPublicationTimerCounter = 0; } } @@ -1253,7 +1251,7 @@ /*********************************************************************//** * @brief - * The testSetAlarmStartOverride function overrides the start time for a + * The testSetAlarmStartTimeOverride function overrides the start time for a * given alarm with a given start time. * @details \b Inputs: msTimerCount * @details \b Outputs: alarmStartedAt[] @@ -1263,7 +1261,7 @@ * triggered. * @return TRUE if override is successful, FALSE if not *************************************************************************/ -BOOL testSetAlarmStartOverride( MESSAGE_T *message ) +BOOL testSetAlarmStartTimeOverride( MESSAGE_T *message ) { BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T override; @@ -1309,45 +1307,53 @@ * @details \b Message \b Sent: MSG_ID_ALARM_CLEARED for each active alarm. * @details \b Inputs: none * @details \b Outputs: alarmIsActive[], alarmStartedAt[] - * @param key A 32-bit supervisor alarm key required to perform this function + * @param message Pointer to a clear all alarms message which contains a + * 32-bit supervisor alarm key required to perform this function * @return TRUE if command was successful, FALSE if rejected *************************************************************************/ -BOOL testClearAllAlarms( U32 key ) +BOOL testClearAllAlarms( MESSAGE_T *message ) { BOOL result = FALSE; + U32 key; - // Verify key - if ( SUPERVISOR_ALARM_KEY == key ) + // Verify tester has logged in with TD + if ( TRUE == isTestingActivated() ) { - // Verify tester has logged in with HD - if ( TRUE == isTestingActivated() ) + // Verify payload length + if ( sizeof(U32) == message->hdr.payloadLen ) { - ALARM_ID_T a; + memcpy( &key, message->payload, sizeof(U32) ); - // clear the flags when Dialin clears alarms - resumeBlockedByAlarmProperty = FALSE; - - // Clear all active alarms - for ( a = ALARM_ID_NO_ALARM; a < NUM_OF_ALARM_IDS; a++ ) + // Verify key + if ( SUPERVISOR_ALARM_KEY == key ) { - if ( TRUE == isAlarmActive( a ) ) - { - ALARM_T props = getAlarmProperties( a ); - ALARM_ID_DATA_PUBLISH_T data; + ALARM_ID_T a; - data.alarmID = (U32)a; + // clear the flags when Dialin clears alarms + resumeBlockedByAlarmProperty = FALSE; - broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_TD_ALARM, (U08*)&data, sizeof( ALARM_ID_DATA_PUBLISH_T ) ); - setAlarmActive( a , FALSE ); - alarmStartedAt[ a ].data = 0; - // Clear FIFO if this alarm was in it - if ( alarmPriorityFIFO[ props.alarmPriority ].alarmID == a ) + // Clear all active alarms + for ( a = ALARM_ID_NO_ALARM; a < NUM_OF_ALARM_IDS; a++ ) + { + if ( TRUE == isAlarmActive( a ) ) { - resetAlarmPriorityFIFO( props.alarmPriority ); + ALARM_T props = getAlarmProperties( a ); + ALARM_ID_DATA_PUBLISH_T data; + + data.alarmID = (U32)a; + + broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_TD_ALARM, (U08*)&data, sizeof( ALARM_ID_DATA_PUBLISH_T ) ); + setAlarmActive( a , FALSE ); + alarmStartedAt[ a ].data = 0; + // Clear FIFO if this alarm was in it + if ( alarmPriorityFIFO[ props.alarmPriority ].alarmID == a ) + { + resetAlarmPriorityFIFO( props.alarmPriority ); + } } } + result = TRUE; } - result = TRUE; } } @@ -1356,96 +1362,36 @@ /*********************************************************************//** * @brief - * The testSetAlarmStatusPublishIntervalOverride function sets the override - * of the alarm status publication interval. + * The testAlarmStatusPublishIntervalOverride function overrides the interval + * at which the TD alarm status data is published. * @details \b Inputs: none * @details \b Outputs: alarmStatusPublishInterval - * @param ms Number of milliseconds between alarm status broadcasts - * @return TRUE if override set is successful, FALSE if not + * @param message Override message from Dialin which includes the interval + * (in ms) to override the alarm status broadcast interval to. + * @return TRUE if override request is successful, FALSE if not *************************************************************************/ -BOOL testSetAlarmStatusPublishIntervalOverride( U32 ms ) +BOOL testAlarmStatusPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = FALSE; + BOOL result = u32BroadcastIntervalOverride( message, &alarmStatusPublishInterval, TASK_GENERAL_INTERVAL ); - if ( TRUE == isTestingActivated() ) - { - U32 intvl = ms / TASK_GENERAL_INTERVAL; - - result = TRUE; - alarmStatusPublishInterval.ovData = intvl; - alarmStatusPublishInterval.override = OVERRIDE_KEY; - } - return result; } /*********************************************************************//** * @brief - * The testResetAlarmStatusPublishIntervalOverride function resets the - * override of the alarm status publication interval. + * The testAlarmInfoPublishIntervalOverride function overrides the interval + * at which the TD alarm information is published. * @details \b Inputs: none - * @details \b Outputs: alarmStatusPublishInterval - * @return TRUE if override reset is successful, FALSE if not - *************************************************************************/ -BOOL testResetAlarmStatusPublishIntervalOverride( void ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - result = TRUE; - alarmStatusPublishInterval.override = OVERRIDE_RESET; - alarmStatusPublishInterval.ovData = alarmStatusPublishInterval.ovInitData; - } - - return result; -} - -/*********************************************************************//** - * @brief - * The testSetAlarmInfoPublishIntervalOverride function sets the override - * of the alarm information publication interval. - * @details \b Inputs: none * @details \b Outputs: alarmInfoPublishInterval - * @param ms Number of milliseconds between alarm info broadcasts - * @return TRUE if override set is successful, FALSE if not + * @param message Override message from Dialin which includes the interval + * (in ms) to override the alarm information broadcast interval to. + * @return TRUE if override request is successful, FALSE if not *************************************************************************/ -BOOL testSetAlarmInfoPublishIntervalOverride( U32 ms ) +BOOL testAlarmInfoPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = FALSE; + BOOL result = u32BroadcastIntervalOverride( message, &alarmInfoPublishInterval, TASK_GENERAL_INTERVAL ); - if ( TRUE == isTestingActivated() ) - { - U32 intvl = ms / TASK_GENERAL_INTERVAL; - - result = TRUE; - alarmInfoPublishInterval.ovData = intvl; - alarmInfoPublishInterval.override = OVERRIDE_KEY; - } - return result; } -/*********************************************************************//** - * @brief - * The testResetAlarmInfoPublishIntervalOverride function resets the override - * of the alarm information publication interval. - * @details \b Inputs: none - * @details \b Outputs: alarmInfoPublishInterval - * @return TRUE if override reset is successful, FALSE if not - *************************************************************************/ -BOOL testResetAlarmInfoPublishIntervalOverride( void ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - result = TRUE; - alarmInfoPublishInterval.override = OVERRIDE_RESET; - alarmInfoPublishInterval.ovData = alarmInfoPublishInterval.ovInitData; - } - - return result; -} - /**@}*/