Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -ra0aca1a4d87df989303b4f7f41208a4916861afa -r1f3647830e9de0a1f0a4e445ce8d72d5525f51fb --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a0aca1a4d87df989303b4f7f41208a4916861afa) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 1f3647830e9de0a1f0a4e445ce8d72d5525f51fb) @@ -64,6 +64,8 @@ { ALARM_PRIORITY_HIGH, 0, ALARM_ID_NO_ALARM, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE } // ALARM_ID_SOFTWARE_FAULT }; +const ALARM_DATA_T blankAlarmData = { ALARM_DATA_TYPE_U32, 0 }; + // ********** private data ********** DATA_ARRAY_DECL( BOOL, AlarmStates, NUM_OF_ALARM_IDS, alarmIsActive ); @@ -172,11 +174,11 @@ { alarmIsActive[alarm].data = TRUE; alarmStartedAt[alarm].data = getMSTimerCount(); - // TODO - send alarm broadcast msg + //broadcastAlarmTriggered( alarm, blankAlarmData, blankAlarmData ); } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE, alarm ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE_NO_DATA, alarm ) } } @@ -199,11 +201,11 @@ { alarmIsActive[alarm].data = TRUE; alarmStartedAt[alarm].data = getMSTimerCount(); - // TODO - send alarm broadcast msg w/ alarm data + //broadcastAlarmTriggered( alarm, alarmData, blankAlarmData ); } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE1, alarm ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE_1_DATA, alarm ) } } @@ -227,11 +229,11 @@ { alarmIsActive[alarm].data = TRUE; alarmStartedAt[alarm].data = getMSTimerCount(); - // TODO - send alarm broadcast msg w/ alarm data + //broadcastAlarmTriggered( alarm, alarmData1, alarmData2 ); } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE2, alarm ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE_2_DATA, alarm ) } } @@ -260,7 +262,7 @@ { resetAlarmPriorityFIFO( alarmTable[alarm].alarmPriority ); } - // TODO - send alarm broadcast msg w/ alarm data + broadcastAlarmCleared( alarm ); } } else @@ -479,19 +481,63 @@ DATA_ARRAY_OVERRIDE_FUNC( BOOL, testSetAlarmStateOverride, testResetAlarmStateOverride, alarmIsActive, alarmID, NUM_OF_ALARM_IDS-1 ) /************************************************************************* - * @brief testSetAlarmStartOverride and testResetAlarmStartOverride + * @brief testSetAlarmStartOverride * The testSetAlarmStartOverride function overrides the start time \n * for a given alarm with the alarm management with a given start time. \n - * The testResetAlarmStartOverride function resets the override of the \n - * start time for a given alarm with the alarm management. * @details * Inputs : none * Outputs : alarmStartedAt[] * @param alarmID : ID of alarm to override start time for - * @param value : override start time for the given alarm ID + * @param value : override time since start (in ms) for the given alarm ID * @return TRUE if override successful, FALSE if not *************************************************************************/ -DATA_ARRAY_OVERRIDE_FUNC( U32, testSetAlarmStartOverride, testResetAlarmStartOverride, alarmStartedAt, alarmID, NUM_OF_ALARM_IDS-1 ) +BOOL testSetAlarmStartOverride( U32 alarmID, U32 value ) +{ + BOOL result = FALSE; + if ( alarmID < NUM_OF_ALARM_IDS ) + { + if ( TRUE == isTestingActivated() ) + { + U32 tim = getMSTimerCount(); + if ( tim > value ) + { + result = TRUE; + alarmStartedAt[alarmID].ovData = (tim - value); + alarmStartedAt[alarmID].override = OVERRIDE_KEY; + } + } + } + return result; +} + +/************************************************************************* + * @brief testResetAlarmStartOverride + * The testResetAlarmStartOverride function resets the override of the \n + * start time for a given alarm with the alarm management. + * @details + * Inputs : none + * Outputs : alarmStartedAt[] + * @param alarmID : ID of alarm to reset override of start time for + * @return TRUE if override reset successful, FALSE if not + *************************************************************************/ +BOOL testResetAlarmStartOverride( U32 alarmID ) +{ + BOOL result = FALSE; + + if ( alarmID < NUM_OF_ALARM_IDS ) + { + if ( TRUE == isTestingActivated() ) + { + result = TRUE; + alarmStartedAt[alarmID].override = OVERRIDE_RESET; + alarmStartedAt[alarmID].ovData = alarmStartedAt[alarmID].ovInitData; + } + } + + return result; +} + +