From f9990287537cb0ab9bab6408232bcd0ee26ba3a2 Mon Sep 17 00:00:00 2001 From: vassilis Date: Wed, 21 Apr 2010 02:49:11 +0000 Subject: [PATCH] Flight/UAVObjects Added support for named arrays (i.e. each array element can have a name - needed for alarms) git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@531 ebee16cc-31ac-478f-84a7-5cbb03baadba --- flight/OpenPilot/UAVObjects/inc/exampleobject1.h | 3 ++- flight/OpenPilot/UAVObjects/inc/examplesettings.h | 3 ++- .../UAVObjects/inc/flighttelemetrystats.h | 3 ++- .../OpenPilot/UAVObjects/inc/gcstelemetrystats.h | 3 ++- .../OpenPilot/UAVObjects/inc/settingspersistence.h | 3 ++- flight/OpenPilot/UAVObjects/inc/systemalarms.h | 14 ++++++-------- flight/OpenPilot/UAVObjects/systemalarms.c | 8 ++++---- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/flight/OpenPilot/UAVObjects/inc/exampleobject1.h b/flight/OpenPilot/UAVObjects/inc/exampleobject1.h index 35b294a38..fa7138813 100644 --- a/flight/OpenPilot/UAVObjects/inc/exampleobject1.h +++ b/flight/OpenPilot/UAVObjects/inc/exampleobject1.h @@ -70,7 +70,8 @@ typedef struct { } __attribute__((packed)) ExampleObject1Data; // Enumeration types -typedef enum { EXAMPLEOBJECT1_FIELD8_OPTION1=0, EXAMPLEOBJECT1_FIELD8_OPTION2=1, } EXAMPLEOBJECT1FIELD8Enum; +/* Enumeration options for field Field8 */ +typedef enum { EXAMPLEOBJECT1_FIELD8_OPTION1=0, EXAMPLEOBJECT1_FIELD8_OPTION2=1, } ExampleObject1Field8Options; // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/inc/examplesettings.h b/flight/OpenPilot/UAVObjects/inc/examplesettings.h index f596f2b6c..081b7d6ba 100644 --- a/flight/OpenPilot/UAVObjects/inc/examplesettings.h +++ b/flight/OpenPilot/UAVObjects/inc/examplesettings.h @@ -65,7 +65,8 @@ typedef struct { } __attribute__((packed)) ExampleSettingsData; // Enumeration types -typedef enum { EXAMPLESETTINGS_STEPDIRECTION_UP=0, EXAMPLESETTINGS_STEPDIRECTION_DOWN=1, } EXAMPLESETTINGSSTEPDIRECTIONEnum; +/* Enumeration options for field StepDirection */ +typedef enum { EXAMPLESETTINGS_STEPDIRECTION_UP=0, EXAMPLESETTINGS_STEPDIRECTION_DOWN=1, } ExampleSettingsStepDirectionOptions; // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/inc/flighttelemetrystats.h b/flight/OpenPilot/UAVObjects/inc/flighttelemetrystats.h index 6c22b3dc1..b82189a5b 100644 --- a/flight/OpenPilot/UAVObjects/inc/flighttelemetrystats.h +++ b/flight/OpenPilot/UAVObjects/inc/flighttelemetrystats.h @@ -68,7 +68,8 @@ typedef struct { } __attribute__((packed)) FlightTelemetryStatsData; // Enumeration types -typedef enum { FLIGHTTELEMETRYSTATS_CONNECTED_TRUE=0, FLIGHTTELEMETRYSTATS_CONNECTED_FALSE=1, } FLIGHTTELEMETRYSTATSCONNECTEDEnum; +/* Enumeration options for field Connected */ +typedef enum { FLIGHTTELEMETRYSTATS_CONNECTED_TRUE=0, FLIGHTTELEMETRYSTATS_CONNECTED_FALSE=1, } FlightTelemetryStatsConnectedOptions; // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/inc/gcstelemetrystats.h b/flight/OpenPilot/UAVObjects/inc/gcstelemetrystats.h index 4a13fe929..fbcf36763 100644 --- a/flight/OpenPilot/UAVObjects/inc/gcstelemetrystats.h +++ b/flight/OpenPilot/UAVObjects/inc/gcstelemetrystats.h @@ -68,7 +68,8 @@ typedef struct { } __attribute__((packed)) GCSTelemetryStatsData; // Enumeration types -typedef enum { GCSTELEMETRYSTATS_CONNECTED_TRUE=0, GCSTELEMETRYSTATS_CONNECTED_FALSE=1, } GCSTELEMETRYSTATSCONNECTEDEnum; +/* Enumeration options for field Connected */ +typedef enum { GCSTELEMETRYSTATS_CONNECTED_TRUE=0, GCSTELEMETRYSTATS_CONNECTED_FALSE=1, } GCSTelemetryStatsConnectedOptions; // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/inc/settingspersistence.h b/flight/OpenPilot/UAVObjects/inc/settingspersistence.h index b8f66573b..90c79d8fb 100644 --- a/flight/OpenPilot/UAVObjects/inc/settingspersistence.h +++ b/flight/OpenPilot/UAVObjects/inc/settingspersistence.h @@ -63,7 +63,8 @@ typedef struct { } __attribute__((packed)) SettingsPersistenceData; // Enumeration types -typedef enum { SETTINGSPERSISTENCE_OPERATION_LOAD=0, SETTINGSPERSISTENCE_OPERATION_SAVE=1, } SETTINGSPERSISTENCEOPERATIONEnum; +/* Enumeration options for field Operation */ +typedef enum { SETTINGSPERSISTENCE_OPERATION_LOAD=0, SETTINGSPERSISTENCE_OPERATION_SAVE=1, } SettingsPersistenceOperationOptions; // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/inc/systemalarms.h b/flight/OpenPilot/UAVObjects/inc/systemalarms.h index 00bb747b7..b89968a48 100644 --- a/flight/OpenPilot/UAVObjects/inc/systemalarms.h +++ b/flight/OpenPilot/UAVObjects/inc/systemalarms.h @@ -35,7 +35,7 @@ #include "openpilot.h" // Object constants -#define SYSTEMALARMS_OBJID 1784134234U +#define SYSTEMALARMS_OBJID 2311311912U #define SYSTEMALARMS_NAME "SystemAlarms" #define SYSTEMALARMS_ISSINGLEINST 1 #define SYSTEMALARMS_ISSETTINGS 0 @@ -58,17 +58,15 @@ // Object data typedef struct { - uint8_t Type; - uint8_t Severity; - uint8_t Active; - uint32_t Info; + uint8_t Alarm[4]; } __attribute__((packed)) SystemAlarmsData; // Enumeration types -typedef enum { SYSTEMALARMS_TYPE_NONE=0, SYSTEMALARMS_TYPE_STACKOVERFLOW=1, SYSTEMALARMS_TYPE_OUTOFMEMORY=2, } SYSTEMALARMSTYPEEnum; -typedef enum { SYSTEMALARMS_SEVERITY_INFO=0, SYSTEMALARMS_SEVERITY_WARNING=1, SYSTEMALARMS_SEVERITY_ERROR=2, SYSTEMALARMS_SEVERITY_CRITICAL=3, } SYSTEMALARMSSEVERITYEnum; -typedef enum { SYSTEMALARMS_ACTIVE_TRUE=0, SYSTEMALARMS_ACTIVE_FALSE=1, } SYSTEMALARMSACTIVEEnum; +/* Enumeration options for field Alarm */ +typedef enum { SYSTEMALARMS_ALARM_NONE=0, SYSTEMALARMS_ALARM_WARNING=1, SYSTEMALARMS_ALARM_ERROR=2, SYSTEMALARMS_ALARM_CRITICAL=3, } SystemAlarmsAlarmOptions; +/* Array element names for field Alarm */ +typedef enum { SYSTEMALARMS_ALARM_OUTOFMEMORY=0, SYSTEMALARMS_ALARM_STACKOVERFLOW=1, SYSTEMALARMS_ALARM_CPUOVERLOAD=2, SYSTEMALARMS_ALARM_EVENTSYSTEM=3, } SystemAlarmsAlarmElem; // Generic interface functions diff --git a/flight/OpenPilot/UAVObjects/systemalarms.c b/flight/OpenPilot/UAVObjects/systemalarms.c index 66d742f89..c6294bf76 100644 --- a/flight/OpenPilot/UAVObjects/systemalarms.c +++ b/flight/OpenPilot/UAVObjects/systemalarms.c @@ -49,13 +49,13 @@ int32_t SystemAlarmsInitialize() // Initialize metadata metadata.telemetryAcked = 1; - metadata.telemetryUpdateMode = UPDATEMODE_ONCHANGE; - metadata.telemetryUpdatePeriod = 0; + metadata.telemetryUpdateMode = UPDATEMODE_PERIODIC; + metadata.telemetryUpdatePeriod = 4000; metadata.gcsTelemetryAcked = 1; metadata.gcsTelemetryUpdateMode = UPDATEMODE_ONCHANGE; metadata.gcsTelemetryUpdatePeriod = 0; - metadata.loggingUpdateMode = UPDATEMODE_ONCHANGE; - metadata.loggingUpdatePeriod = 0; + metadata.loggingUpdateMode = UPDATEMODE_PERIODIC; + metadata.loggingUpdatePeriod = 1000; UAVObjSetMetadata(handle, &metadata); // Done