From 220b4b504256341512a5ec90a47e9059a45036ce Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Sat, 20 Apr 2013 02:10:40 +0300 Subject: [PATCH] OP-886: use enum for extended alarm status field See also: http://reviews.openpilot.org/cru/OPReview-430 http://progress.openpilot.org/browse/OP-915 --- flight/Libraries/alarms.c | 11 +++++++---- flight/Libraries/inc/alarms.h | 5 ++++- flight/Libraries/inc/sanitycheck.h | 8 +------- flight/Libraries/sanitycheck.c | 7 +++---- flight/Modules/System/systemmod.c | 2 +- shared/uavobjectdefinition/systemalarms.xml | 7 ++++++- 6 files changed, 22 insertions(+), 18 deletions(-) diff --git a/flight/Libraries/alarms.c b/flight/Libraries/alarms.c index e0da51185..b3706ba24 100644 --- a/flight/Libraries/alarms.c +++ b/flight/Libraries/alarms.c @@ -91,11 +91,14 @@ int32_t AlarmsSet(SystemAlarmsAlarmElem alarm, SystemAlarmsAlarmOptions severity * Set an Extended Alarm * @param alarm The system alarm to be modified * @param severity The alarm severity - * @param status: the Extended alarm status field - * @param subStatus: the Extended alarm substatus field + * @param status The Extended alarm status field + * @param subStatus The Extended alarm substatus field * @return 0 if success, -1 if an error */ -int32_t ExtendedAlarmsSet(SystemAlarmsAlarmElem alarm, SystemAlarmsAlarmOptions severity, uint8_t status, uint8_t subStatus) +int32_t ExtendedAlarmsSet(SystemAlarmsAlarmElem alarm, + SystemAlarmsAlarmOptions severity, + SystemAlarmsExtendedAlarmStatusOptions status, + uint8_t subStatus) { SystemAlarmsData alarms; @@ -170,7 +173,7 @@ void AlarmsDefaultAll() int32_t AlarmsClear(SystemAlarmsAlarmElem alarm) { if (alarm < SYSTEMALARMS_EXTENDEDALARMSTATUS_NUMELEM) { - return ExtendedAlarmsSet(alarm, SYSTEMALARMS_ALARM_OK, 0, 0); + return ExtendedAlarmsSet(alarm, SYSTEMALARMS_ALARM_OK, SYSTEMALARMS_EXTENDEDALARMSTATUS_NONE, 0); } else { return AlarmsSet(alarm, SYSTEMALARMS_ALARM_OK); } diff --git a/flight/Libraries/inc/alarms.h b/flight/Libraries/inc/alarms.h index dc785015e..e91a3be55 100644 --- a/flight/Libraries/inc/alarms.h +++ b/flight/Libraries/inc/alarms.h @@ -33,7 +33,10 @@ int32_t AlarmsInitialize(void); int32_t AlarmsSet(SystemAlarmsAlarmElem alarm, SystemAlarmsAlarmOptions severity); -int32_t ExtendedAlarmsSet(SystemAlarmsAlarmElem alarm, SystemAlarmsAlarmOptions severity, uint8_t status, uint8_t subStatus); +int32_t ExtendedAlarmsSet(SystemAlarmsAlarmElem alarm, + SystemAlarmsAlarmOptions severity, + SystemAlarmsExtendedAlarmStatusOptions status, + uint8_t subStatus); SystemAlarmsAlarmOptions AlarmsGet(SystemAlarmsAlarmElem alarm); int32_t AlarmsDefault(SystemAlarmsAlarmElem alarm); void AlarmsDefaultAll(); diff --git a/flight/Libraries/inc/sanitycheck.h b/flight/Libraries/inc/sanitycheck.h index 9ee72f3c5..b7fd74ca3 100644 --- a/flight/Libraries/inc/sanitycheck.h +++ b/flight/Libraries/inc/sanitycheck.h @@ -29,15 +29,9 @@ #ifndef SANITYCHECK_H #define SANITYCHECK_H -#define SANITYCHECK_STATUS_ERROR_NONE 0 -#define SANITYCHECK_STATUS_ERROR_FLIGHTMODE 1 - -#define BOOTFAULT_STATUS_ERROR_NONE 0 -#define BOOTFAULT_STATUS_ERROR_REQUIRE_REBOOT 1 - #if (SYSTEMALARMS_EXTENDEDALARMSTATUS_NUMELEM != SYSTEMALARMS_EXTENDEDALARMSUBSTATUS_NUMELEM) || \ (SYSTEMALARMS_EXTENDEDALARMSUBSTATUS_NUMELEM > SYSTEMALARMS_ALARM_NUMELEM) -#error incongruent SystemAlarms. Please revise the UAVO definition in SystemAlarm.xml +#error Incongruent SystemAlarms. Please revise the UAVO definition in systemalarms.xml #endif extern int32_t configuration_check(); diff --git a/flight/Libraries/sanitycheck.c b/flight/Libraries/sanitycheck.c index c98369597..07940d764 100644 --- a/flight/Libraries/sanitycheck.c +++ b/flight/Libraries/sanitycheck.c @@ -54,7 +54,7 @@ static int32_t check_stabilization_settings(int index, bool multirotor); int32_t configuration_check() { int32_t severity = SYSTEMALARMS_ALARM_OK; - uint8_t alarmstatus = SANITYCHECK_STATUS_ERROR_NONE; + SystemAlarmsExtendedAlarmStatusOptions alarmstatus = SYSTEMALARMS_EXTENDEDALARMSTATUS_NONE; uint8_t alarmsubstatus = 0; // Get board type const struct pios_board_info * bdinfo = &pios_board_info_blob; @@ -134,9 +134,8 @@ int32_t configuration_check() severity = SYSTEMALARMS_ALARM_ERROR; } // mark the first encountered erroneous setting in status and substatus - if(severity != SYSTEMALARMS_ALARM_OK && alarmstatus == SANITYCHECK_STATUS_ERROR_NONE) - { - alarmstatus = SANITYCHECK_STATUS_ERROR_FLIGHTMODE; + if ((severity != SYSTEMALARMS_ALARM_OK) && (alarmstatus == SYSTEMALARMS_EXTENDEDALARMSTATUS_NONE)) { + alarmstatus = SYSTEMALARMS_EXTENDEDALARMSTATUS_FLIGHTMODE; alarmsubstatus = i; } diff --git a/flight/Modules/System/systemmod.c b/flight/Modules/System/systemmod.c index 4b8cc6772..b3f5f6db8 100644 --- a/flight/Modules/System/systemmod.c +++ b/flight/Modules/System/systemmod.c @@ -344,7 +344,7 @@ static void hwSettingsUpdatedCb(UAVObjEvent * ev) HwSettingsGet(¤tHwSettings); // check whether the Hw Configuration has changed from the one used at boot time if (memcmp(&bootHwSettings, ¤tHwSettings, sizeof(HwSettingsData)) != 0) { - ExtendedAlarmsSet(SYSTEMALARMS_ALARM_BOOTFAULT, SYSTEMALARMS_ALARM_ERROR, BOOTFAULT_STATUS_ERROR_REQUIRE_REBOOT, 0); + ExtendedAlarmsSet(SYSTEMALARMS_ALARM_BOOTFAULT, SYSTEMALARMS_ALARM_ERROR, SYSTEMALARMS_EXTENDEDALARMSTATUS_REBOOTREQUIRED, 0); } } diff --git a/shared/uavobjectdefinition/systemalarms.xml b/shared/uavobjectdefinition/systemalarms.xml index b34bd1612..fedeef14a 100644 --- a/shared/uavobjectdefinition/systemalarms.xml +++ b/shared/uavobjectdefinition/systemalarms.xml @@ -23,11 +23,16 @@ Power - + SystemConfiguration BootFault + + + + +