mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
Update to SystemAlarms UAVObject.
Added: Battery Flight Time I2C GPS Also added new alarm state of "Uninitialised" no code to set these alarms yet. As this changes UAVObjects both flight and GCS software will need to be recompiled to stay in sync. git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2294 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
bd5316eda0
commit
39cb30d56f
@ -41,7 +41,7 @@
|
||||
#define SYSTEMALARMS_H
|
||||
|
||||
// Object constants
|
||||
#define SYSTEMALARMS_OBJID 2311311584U
|
||||
#define SYSTEMALARMS_OBJID 2311314672U
|
||||
#define SYSTEMALARMS_NAME "SystemAlarms"
|
||||
#define SYSTEMALARMS_METANAME "SystemAlarmsMeta"
|
||||
#define SYSTEMALARMS_ISSINGLEINST 1
|
||||
@ -71,18 +71,18 @@
|
||||
|
||||
// Object data
|
||||
typedef struct {
|
||||
uint8_t Alarm[10];
|
||||
uint8_t Alarm[14];
|
||||
|
||||
} __attribute__((packed)) SystemAlarmsData;
|
||||
|
||||
// Field information
|
||||
// Field Alarm information
|
||||
/* Enumeration options for field Alarm */
|
||||
typedef enum { SYSTEMALARMS_ALARM_OK=0, SYSTEMALARMS_ALARM_WARNING=1, SYSTEMALARMS_ALARM_ERROR=2, SYSTEMALARMS_ALARM_CRITICAL=3 } SystemAlarmsAlarmOptions;
|
||||
typedef enum { SYSTEMALARMS_ALARM_OK=0, SYSTEMALARMS_ALARM_WARNING=1, SYSTEMALARMS_ALARM_ERROR=2, SYSTEMALARMS_ALARM_CRITICAL=3, SYSTEMALARMS_ALARM_UNINITIALISED=4 } 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, SYSTEMALARMS_ALARM_SDCARD=4, SYSTEMALARMS_ALARM_TELEMETRY=5, SYSTEMALARMS_ALARM_MANUALCONTROL=6, SYSTEMALARMS_ALARM_ACTUATOR=7, SYSTEMALARMS_ALARM_STABILIZATION=8, SYSTEMALARMS_ALARM_AHRSCOMMS=9 } SystemAlarmsAlarmElem;
|
||||
typedef enum { SYSTEMALARMS_ALARM_OUTOFMEMORY=0, SYSTEMALARMS_ALARM_STACKOVERFLOW=1, SYSTEMALARMS_ALARM_CPUOVERLOAD=2, SYSTEMALARMS_ALARM_EVENTSYSTEM=3, SYSTEMALARMS_ALARM_SDCARD=4, SYSTEMALARMS_ALARM_TELEMETRY=5, SYSTEMALARMS_ALARM_MANUALCONTROL=6, SYSTEMALARMS_ALARM_ACTUATOR=7, SYSTEMALARMS_ALARM_STABILIZATION=8, SYSTEMALARMS_ALARM_AHRSCOMMS=9, SYSTEMALARMS_ALARM_BATTERY=10, SYSTEMALARMS_ALARM_FLIGHTTIME=11, SYSTEMALARMS_ALARM_I2C=12, SYSTEMALARMS_ALARM_GPS=13 } SystemAlarmsAlarmElem;
|
||||
/* Number of elements for field Alarm */
|
||||
#define SYSTEMALARMS_ALARM_NUMELEM 10
|
||||
#define SYSTEMALARMS_ALARM_NUMELEM 14
|
||||
|
||||
|
||||
// Generic interface functions
|
||||
|
@ -80,6 +80,20 @@ static void setDefaults(UAVObjHandle obj, uint16_t instId)
|
||||
// Initialize object fields to their default values
|
||||
UAVObjGetInstanceData(obj, instId, &data);
|
||||
memset(&data, 0, sizeof(SystemAlarmsData));
|
||||
data.Alarm[0] = 4;
|
||||
data.Alarm[1] = 4;
|
||||
data.Alarm[2] = 4;
|
||||
data.Alarm[3] = 4;
|
||||
data.Alarm[4] = 4;
|
||||
data.Alarm[5] = 4;
|
||||
data.Alarm[6] = 4;
|
||||
data.Alarm[7] = 4;
|
||||
data.Alarm[8] = 4;
|
||||
data.Alarm[9] = 4;
|
||||
data.Alarm[10] = 4;
|
||||
data.Alarm[11] = 4;
|
||||
data.Alarm[12] = 4;
|
||||
data.Alarm[13] = 4;
|
||||
|
||||
UAVObjSetInstanceData(obj, instId, &data);
|
||||
|
||||
|
@ -300,12 +300,15 @@ function [] = OPLogConvert()
|
||||
PipXtremeModemSettings(1).Frequency = 0;
|
||||
PipXtremeModemSettings(1).Max_RF_Bandwidth = 0;
|
||||
PipXtremeModemSettings(1).Max_Tx_Power = 0;
|
||||
PipXtremeModemSettings(1).Tx_Data_Wait = 0;
|
||||
PipXtremeModemSettings(1).AES_Encryption = 0;
|
||||
PipXtremeModemSettings(1).AES_EncryptionKey = zeros(1,16);
|
||||
PipXtremeModemSettings(1).Paired_Serial_Number = 0;
|
||||
|
||||
pipxtrememodemstatusIdx = 1;
|
||||
PipXtremeModemStatus.timestamp = 0;
|
||||
PipXtremeModemStatus(1).Firmware_Version_Major = 0;
|
||||
PipXtremeModemStatus(1).Firmware_Version_Minor = 0;
|
||||
PipXtremeModemStatus(1).Serial_Number = 0;
|
||||
PipXtremeModemStatus(1).Up_Time = 0;
|
||||
PipXtremeModemStatus(1).Frequency = 0;
|
||||
@ -350,7 +353,7 @@ function [] = OPLogConvert()
|
||||
|
||||
systemalarmsIdx = 1;
|
||||
SystemAlarms.timestamp = 0;
|
||||
SystemAlarms(1).Alarm = zeros(1,10);
|
||||
SystemAlarms(1).Alarm = zeros(1,14);
|
||||
|
||||
systemsettingsIdx = 1;
|
||||
SystemSettings.timestamp = 0;
|
||||
@ -488,10 +491,10 @@ function [] = OPLogConvert()
|
||||
case 572614706
|
||||
ObjectPersistence(objectpersistenceIdx) = ReadObjectPersistenceObject(fid, timestamp);
|
||||
objectpersistenceIdx = objectpersistenceIdx + 1;
|
||||
case 3822692478
|
||||
case 444830632
|
||||
PipXtremeModemSettings(pipxtrememodemsettingsIdx) = ReadPipXtremeModemSettingsObject(fid, timestamp);
|
||||
pipxtrememodemsettingsIdx = pipxtrememodemsettingsIdx + 1;
|
||||
case 539085060
|
||||
case 2490854928
|
||||
PipXtremeModemStatus(pipxtrememodemstatusIdx) = ReadPipXtremeModemStatusObject(fid, timestamp);
|
||||
pipxtrememodemstatusIdx = pipxtrememodemstatusIdx + 1;
|
||||
case 3765671478
|
||||
@ -506,7 +509,7 @@ function [] = OPLogConvert()
|
||||
case 3792991236
|
||||
StabilizationSettings(stabilizationsettingsIdx) = ReadStabilizationSettingsObject(fid, timestamp);
|
||||
stabilizationsettingsIdx = stabilizationsettingsIdx + 1;
|
||||
case 2311311584
|
||||
case 2311314672
|
||||
SystemAlarms(systemalarmsIdx) = ReadSystemAlarmsObject(fid, timestamp);
|
||||
systemalarmsIdx = systemalarmsIdx + 1;
|
||||
case 59202798
|
||||
@ -1099,6 +1102,7 @@ function [PipXtremeModemSettings] = ReadPipXtremeModemSettingsObject(fid, timest
|
||||
PipXtremeModemSettings.Frequency = double(fread(fid, 1, 'uint32'));
|
||||
PipXtremeModemSettings.Max_RF_Bandwidth = double(fread(fid, 1, 'uint8'));
|
||||
PipXtremeModemSettings.Max_Tx_Power = double(fread(fid, 1, 'uint8'));
|
||||
PipXtremeModemSettings.Tx_Data_Wait = double(fread(fid, 1, 'uint8'));
|
||||
PipXtremeModemSettings.AES_Encryption = double(fread(fid, 1, 'uint8'));
|
||||
PipXtremeModemSettings.AES_EncryptionKey = double(fread(fid, 16, 'uint8'));
|
||||
PipXtremeModemSettings.Paired_Serial_Number = double(fread(fid, 1, 'uint32'));
|
||||
@ -1115,6 +1119,8 @@ function [PipXtremeModemStatus] = ReadPipXtremeModemStatusObject(fid, timestamp)
|
||||
end
|
||||
|
||||
PipXtremeModemStatus.timestamp = timestamp;
|
||||
PipXtremeModemStatus.Firmware_Version_Major = double(fread(fid, 1, 'uint8'));
|
||||
PipXtremeModemStatus.Firmware_Version_Minor = double(fread(fid, 1, 'uint8'));
|
||||
PipXtremeModemStatus.Serial_Number = double(fread(fid, 1, 'uint32'));
|
||||
PipXtremeModemStatus.Up_Time = double(fread(fid, 1, 'uint32'));
|
||||
PipXtremeModemStatus.Frequency = double(fread(fid, 1, 'uint32'));
|
||||
@ -1209,7 +1215,7 @@ function [SystemAlarms] = ReadSystemAlarmsObject(fid, timestamp)
|
||||
end
|
||||
|
||||
SystemAlarms.timestamp = timestamp;
|
||||
SystemAlarms.Alarm = double(fread(fid, 10, 'uint8'));
|
||||
SystemAlarms.Alarm = double(fread(fid, 14, 'uint8'));
|
||||
% read CRC
|
||||
fread(fid, 1, 'uint8');
|
||||
end
|
||||
|
@ -54,11 +54,16 @@ SystemAlarms::SystemAlarms(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAM
|
||||
AlarmElemNames.append("Actuator");
|
||||
AlarmElemNames.append("Stabilization");
|
||||
AlarmElemNames.append("AHRSComms");
|
||||
AlarmElemNames.append("Battery");
|
||||
AlarmElemNames.append("FlightTime");
|
||||
AlarmElemNames.append("I2C");
|
||||
AlarmElemNames.append("GPS");
|
||||
QStringList AlarmEnumOptions;
|
||||
AlarmEnumOptions.append("OK");
|
||||
AlarmEnumOptions.append("Warning");
|
||||
AlarmEnumOptions.append("Error");
|
||||
AlarmEnumOptions.append("Critical");
|
||||
AlarmEnumOptions.append("Uninitialised");
|
||||
fields.append( new UAVObjectField(QString("Alarm"), QString(""), UAVObjectField::ENUM, AlarmElemNames, AlarmEnumOptions) );
|
||||
|
||||
// Initialize object
|
||||
@ -95,6 +100,20 @@ UAVObject::Metadata SystemAlarms::getDefaultMetadata()
|
||||
*/
|
||||
void SystemAlarms::setDefaultFieldValues()
|
||||
{
|
||||
data.Alarm[0] = 4;
|
||||
data.Alarm[1] = 4;
|
||||
data.Alarm[2] = 4;
|
||||
data.Alarm[3] = 4;
|
||||
data.Alarm[4] = 4;
|
||||
data.Alarm[5] = 4;
|
||||
data.Alarm[6] = 4;
|
||||
data.Alarm[7] = 4;
|
||||
data.Alarm[8] = 4;
|
||||
data.Alarm[9] = 4;
|
||||
data.Alarm[10] = 4;
|
||||
data.Alarm[11] = 4;
|
||||
data.Alarm[12] = 4;
|
||||
data.Alarm[13] = 4;
|
||||
|
||||
}
|
||||
|
||||
|
@ -43,22 +43,22 @@ class UAVOBJECTS_EXPORT SystemAlarms: public UAVDataObject
|
||||
public:
|
||||
// Field structure
|
||||
typedef struct {
|
||||
quint8 Alarm[10];
|
||||
quint8 Alarm[14];
|
||||
|
||||
} __attribute__((packed)) DataFields;
|
||||
|
||||
// Field information
|
||||
// Field Alarm information
|
||||
/* Enumeration options for field Alarm */
|
||||
typedef enum { ALARM_OK=0, ALARM_WARNING=1, ALARM_ERROR=2, ALARM_CRITICAL=3 } AlarmOptions;
|
||||
typedef enum { ALARM_OK=0, ALARM_WARNING=1, ALARM_ERROR=2, ALARM_CRITICAL=3, ALARM_UNINITIALISED=4 } AlarmOptions;
|
||||
/* Array element names for field Alarm */
|
||||
typedef enum { ALARM_OUTOFMEMORY=0, ALARM_STACKOVERFLOW=1, ALARM_CPUOVERLOAD=2, ALARM_EVENTSYSTEM=3, ALARM_SDCARD=4, ALARM_TELEMETRY=5, ALARM_MANUALCONTROL=6, ALARM_ACTUATOR=7, ALARM_STABILIZATION=8, ALARM_AHRSCOMMS=9 } AlarmElem;
|
||||
typedef enum { ALARM_OUTOFMEMORY=0, ALARM_STACKOVERFLOW=1, ALARM_CPUOVERLOAD=2, ALARM_EVENTSYSTEM=3, ALARM_SDCARD=4, ALARM_TELEMETRY=5, ALARM_MANUALCONTROL=6, ALARM_ACTUATOR=7, ALARM_STABILIZATION=8, ALARM_AHRSCOMMS=9, ALARM_BATTERY=10, ALARM_FLIGHTTIME=11, ALARM_I2C=12, ALARM_GPS=13 } AlarmElem;
|
||||
/* Number of elements for field Alarm */
|
||||
static const quint32 ALARM_NUMELEM = 10;
|
||||
static const quint32 ALARM_NUMELEM = 14;
|
||||
|
||||
|
||||
// Constants
|
||||
static const quint32 OBJID = 2311311584U;
|
||||
static const quint32 OBJID = 2311314672U;
|
||||
static const QString NAME;
|
||||
static const QString DESCRIPTION;
|
||||
static const bool ISSINGLEINST = 1;
|
||||
|
@ -40,7 +40,7 @@ _fields = [ \
|
||||
uavobject.UAVObjectField(
|
||||
'Alarm',
|
||||
'b',
|
||||
10,
|
||||
14,
|
||||
[
|
||||
'OutOfMemory',
|
||||
'StackOverflow',
|
||||
@ -52,12 +52,17 @@ _fields = [ \
|
||||
'Actuator',
|
||||
'Stabilization',
|
||||
'AHRSComms',
|
||||
'Battery',
|
||||
'FlightTime',
|
||||
'I2C',
|
||||
'GPS',
|
||||
],
|
||||
{
|
||||
'0' : 'OK',
|
||||
'1' : 'Warning',
|
||||
'2' : 'Error',
|
||||
'3' : 'Critical',
|
||||
'4' : 'Uninitialised',
|
||||
}
|
||||
),
|
||||
]
|
||||
@ -65,7 +70,7 @@ _fields = [ \
|
||||
|
||||
class SystemAlarms(uavobject.UAVObject):
|
||||
## Object constants
|
||||
OBJID = 2311311584
|
||||
OBJID = 2311314672
|
||||
NAME = "SystemAlarms"
|
||||
METANAME = "SystemAlarmsMeta"
|
||||
ISSINGLEINST = 1
|
||||
|
@ -1,8 +1,8 @@
|
||||
<xml>
|
||||
<object name="SystemAlarms" singleinstance="true" settings="false">
|
||||
<description>Alarms from OpenPilot to indicate failure conditions or warnings. Set by various modules.</description>
|
||||
<field name="Alarm" units="" type="enum" options="OK,Warning,Error,Critical"
|
||||
elementnames="OutOfMemory,StackOverflow,CPUOverload,EventSystem,SDCard,Telemetry,ManualControl,Actuator,Stabilization,AHRSComms"/>
|
||||
<field name="Alarm" units="" type="enum" options="OK,Warning,Error,Critical,Uninitialised"
|
||||
elementnames="OutOfMemory,StackOverflow,CPUOverload,EventSystem,SDCard,Telemetry,ManualControl,Actuator,Stabilization,AHRSComms,Battery,FlightTime,I2C,GPS" defaultvalue="Uninitialised"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="periodic" period="4000"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user