mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
GCS/UAVObjectGenerator Added support for default field values (used to initialize settings with defaults)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@557 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
1e8abdcc39
commit
ce4aa6efc6
@ -400,6 +400,23 @@ QString UAVObjectParser::processObjectFields(QDomNode& childNode, ObjectInfo* in
|
||||
field->options = options;
|
||||
}
|
||||
}
|
||||
// Get the default value attribute (required for settings objects, optional for the rest)
|
||||
elemAttr = elemAttributes.namedItem("defaultvalue");
|
||||
if ( elemAttr.isNull() )
|
||||
{
|
||||
if ( info->isSettings )
|
||||
{
|
||||
return QString("Object:field:defaultvalue attribute is missing (required for settings objects)");
|
||||
}
|
||||
else
|
||||
{
|
||||
field->defaultValue = QString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
field->defaultValue = elemAttr.nodeValue().trimmed();
|
||||
}
|
||||
// Add field to object
|
||||
info->fields.append(field);
|
||||
// Done
|
||||
@ -573,7 +590,6 @@ bool UAVObjectParser::generateFlightObject(int objIndex, const QString& template
|
||||
outInclude.replace(QString("$(DATAFIELDS)"), fields);
|
||||
|
||||
// Replace the $(DATAFIELDINFO) tag
|
||||
QString name;
|
||||
QString enums;
|
||||
for (int n = 0; n < info->fields.length(); ++n)
|
||||
{
|
||||
@ -630,6 +646,34 @@ bool UAVObjectParser::generateFlightObject(int objIndex, const QString& template
|
||||
}
|
||||
outInclude.replace(QString("$(DATAFIELDINFO)"), enums);
|
||||
|
||||
// Replace the $(INITFIELDS) tag
|
||||
QString initfields;
|
||||
for (int n = 0; n < info->fields.length(); ++n)
|
||||
{
|
||||
if ( !info->fields[n]->defaultValue.isNull() && !info->fields[n]->defaultValue.isEmpty() )
|
||||
{
|
||||
if ( info->fields[n]->type == FIELDTYPE_ENUM )
|
||||
{
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->options.indexOf( info->fields[n]->defaultValue ) ) );
|
||||
}
|
||||
else if ( info->fields[n]->type == FIELDTYPE_FLOAT32 )
|
||||
{
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->defaultValue.toFloat() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->defaultValue.toInt() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
outCode.replace(QString("$(INITFIELDS)"), initfields);
|
||||
|
||||
// Done
|
||||
return true;
|
||||
}
|
||||
@ -769,6 +813,34 @@ bool UAVObjectParser::generateGCSObject(int objIndex, const QString& templateInc
|
||||
}
|
||||
outInclude.replace(QString("$(DATAFIELDINFO)"), enums);
|
||||
|
||||
// Replace the $(INITFIELDS) tag
|
||||
QString initfields;
|
||||
for (int n = 0; n < info->fields.length(); ++n)
|
||||
{
|
||||
if ( !info->fields[n]->defaultValue.isNull() && !info->fields[n]->defaultValue.isEmpty() )
|
||||
{
|
||||
if ( info->fields[n]->type == FIELDTYPE_ENUM )
|
||||
{
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->options.indexOf( info->fields[n]->defaultValue ) ) );
|
||||
}
|
||||
else if ( info->fields[n]->type == FIELDTYPE_FLOAT32 )
|
||||
{
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->defaultValue.toFloat() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->defaultValue.toInt() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
outCode.replace(QString("$(INITFIELDS)"), initfields);
|
||||
|
||||
// Done
|
||||
return true;
|
||||
}
|
||||
|
@ -67,6 +67,7 @@ public:
|
||||
QStringList elementNames;
|
||||
QStringList options; // for enums only
|
||||
bool defaultElementNames;
|
||||
QString defaultValue;
|
||||
} FieldInfo;
|
||||
|
||||
typedef struct {
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString ExampleObject1::NAME = QString("ExampleObject1");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
ExampleObject1::ExampleObject1(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -70,8 +73,13 @@ ExampleObject1::ExampleObject1(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS,
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata ExampleObject1::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -86,13 +94,29 @@ UAVObject::Metadata ExampleObject1::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void ExampleObject1::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
ExampleObject1::DataFields ExampleObject1::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void ExampleObject1::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void ExampleObject1::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -100,6 +124,11 @@ void ExampleObject1::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* ExampleObject1::clone(quint32 instID)
|
||||
{
|
||||
ExampleObject1* obj = new ExampleObject1();
|
||||
|
@ -77,13 +77,15 @@ public:
|
||||
ExampleObject1();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // EXAMPLEOBJECT1_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString ExampleObject2::NAME = QString("ExampleObject2");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
ExampleObject2::ExampleObject2(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -55,8 +58,13 @@ ExampleObject2::ExampleObject2(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS,
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata ExampleObject2::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -71,13 +79,29 @@ UAVObject::Metadata ExampleObject2::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void ExampleObject2::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
ExampleObject2::DataFields ExampleObject2::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void ExampleObject2::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void ExampleObject2::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -85,6 +109,11 @@ void ExampleObject2::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* ExampleObject2::clone(quint32 instID)
|
||||
{
|
||||
ExampleObject2* obj = new ExampleObject2();
|
||||
|
@ -67,13 +67,15 @@ public:
|
||||
ExampleObject2();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // EXAMPLEOBJECT2_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString ExampleSettings::NAME = QString("ExampleSettings");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
ExampleSettings::ExampleSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -52,8 +55,13 @@ ExampleSettings::ExampleSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTING
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata ExampleSettings::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -68,13 +76,32 @@ UAVObject::Metadata ExampleSettings::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void ExampleSettings::setDefaultFieldValues()
|
||||
{
|
||||
data.UpdatePeriod = 10;
|
||||
data.StepSize = 1;
|
||||
data.StepDirection = 0;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
ExampleSettings::DataFields ExampleSettings::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void ExampleSettings::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void ExampleSettings::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -82,6 +109,11 @@ void ExampleSettings::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* ExampleSettings::clone(quint32 instID)
|
||||
{
|
||||
ExampleSettings* obj = new ExampleSettings();
|
||||
|
@ -65,13 +65,15 @@ public:
|
||||
ExampleSettings();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // EXAMPLESETTINGS_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString FlightTelemetryStats::NAME = QString("FlightTelemetryStats");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
FlightTelemetryStats::FlightTelemetryStats(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -61,8 +64,13 @@ FlightTelemetryStats::FlightTelemetryStats(): UAVDataObject(OBJID, ISSINGLEINST,
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata FlightTelemetryStats::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -77,13 +85,29 @@ UAVObject::Metadata FlightTelemetryStats::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void FlightTelemetryStats::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
FlightTelemetryStats::DataFields FlightTelemetryStats::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void FlightTelemetryStats::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void FlightTelemetryStats::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -91,6 +115,11 @@ void FlightTelemetryStats::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* FlightTelemetryStats::clone(quint32 instID)
|
||||
{
|
||||
FlightTelemetryStats* obj = new FlightTelemetryStats();
|
||||
|
@ -71,13 +71,15 @@ public:
|
||||
FlightTelemetryStats();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // FLIGHTTELEMETRYSTATS_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString GCSTelemetryStats::NAME = QString("GCSTelemetryStats");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
GCSTelemetryStats::GCSTelemetryStats(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -61,8 +64,13 @@ GCSTelemetryStats::GCSTelemetryStats(): UAVDataObject(OBJID, ISSINGLEINST, ISSET
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata GCSTelemetryStats::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -77,13 +85,29 @@ UAVObject::Metadata GCSTelemetryStats::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void GCSTelemetryStats::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
GCSTelemetryStats::DataFields GCSTelemetryStats::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void GCSTelemetryStats::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void GCSTelemetryStats::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -91,6 +115,11 @@ void GCSTelemetryStats::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* GCSTelemetryStats::clone(quint32 instID)
|
||||
{
|
||||
GCSTelemetryStats* obj = new GCSTelemetryStats();
|
||||
|
@ -71,13 +71,15 @@ public:
|
||||
GCSTelemetryStats();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // GCSTELEMETRYSTATS_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString GpsObject::NAME = QString("GpsObject");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
GpsObject::GpsObject(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -55,8 +58,13 @@ GpsObject::GpsObject(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata GpsObject::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -71,13 +79,29 @@ UAVObject::Metadata GpsObject::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void GpsObject::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
GpsObject::DataFields GpsObject::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void GpsObject::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void GpsObject::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -85,6 +109,11 @@ void GpsObject::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* GpsObject::clone(quint32 instID)
|
||||
{
|
||||
GpsObject* obj = new GpsObject();
|
||||
|
@ -67,13 +67,15 @@ public:
|
||||
GpsObject();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // GPSOBJECT_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString SettingsPersistence::NAME = QString("SettingsPersistence");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
SettingsPersistence::SettingsPersistence(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -46,8 +49,13 @@ SettingsPersistence::SettingsPersistence(): UAVDataObject(OBJID, ISSINGLEINST, I
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata SettingsPersistence::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -62,13 +70,29 @@ UAVObject::Metadata SettingsPersistence::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void SettingsPersistence::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
SettingsPersistence::DataFields SettingsPersistence::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void SettingsPersistence::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void SettingsPersistence::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -76,6 +100,11 @@ void SettingsPersistence::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* SettingsPersistence::clone(quint32 instID)
|
||||
{
|
||||
SettingsPersistence* obj = new SettingsPersistence();
|
||||
|
@ -61,13 +61,15 @@ public:
|
||||
SettingsPersistence();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // SETTINGSPERSISTENCE_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString SystemAlarms::NAME = QString("SystemAlarms");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
SystemAlarms::SystemAlarms(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -53,8 +56,13 @@ SystemAlarms::SystemAlarms(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAM
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata SystemAlarms::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -69,13 +77,29 @@ UAVObject::Metadata SystemAlarms::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void SystemAlarms::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
SystemAlarms::DataFields SystemAlarms::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void SystemAlarms::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void SystemAlarms::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -83,6 +107,11 @@ void SystemAlarms::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* SystemAlarms::clone(quint32 instID)
|
||||
{
|
||||
SystemAlarms* obj = new SystemAlarms();
|
||||
|
@ -65,13 +65,15 @@ public:
|
||||
SystemAlarms();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // SYSTEMALARMS_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString SystemStats::NAME = QString("SystemStats");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
SystemStats::SystemStats(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -49,8 +52,13 @@ SystemStats::SystemStats(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata SystemStats::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -65,13 +73,29 @@ UAVObject::Metadata SystemStats::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void SystemStats::setDefaultFieldValues()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
SystemStats::DataFields SystemStats::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void SystemStats::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void SystemStats::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -79,6 +103,11 @@ void SystemStats::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* SystemStats::clone(quint32 instID)
|
||||
{
|
||||
SystemStats* obj = new SystemStats();
|
||||
|
@ -63,13 +63,15 @@ public:
|
||||
SystemStats();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // SYSTEMSTATS_H
|
||||
|
@ -33,6 +33,9 @@
|
||||
|
||||
const QString $(NAME)::NAME = QString("$(NAME)");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
$(NAME)::$(NAME)(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
@ -40,8 +43,13 @@ $(NAME)::$(NAME)(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
$(FIELDSINIT)
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata $(NAME)::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
@ -56,13 +64,29 @@ UAVObject::Metadata $(NAME)::getDefaultMetadata()
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize object fields with the default values.
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void $(NAME)::setDefaultFieldValues()
|
||||
{
|
||||
$(INITFIELDS)
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
$(NAME)::DataFields $(NAME)::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
}
|
||||
|
||||
void $(NAME)::setData(DataFields& data)
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void $(NAME)::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
this->data = data;
|
||||
@ -70,6 +94,11 @@ void $(NAME)::setData(DataFields& data)
|
||||
emit objectUpdated(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a clone of this object, a new instance ID must be specified.
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* $(NAME)::clone(quint32 instID)
|
||||
{
|
||||
$(NAME)* obj = new $(NAME)();
|
||||
|
@ -57,13 +57,15 @@ $(DATAFIELDINFO)
|
||||
$(NAME)();
|
||||
|
||||
DataFields getData();
|
||||
void setData(DataFields& data);
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
|
||||
void setDefaultFieldValues();
|
||||
|
||||
};
|
||||
|
||||
#endif // $(NAMEUC)_H
|
||||
|
@ -1,8 +1,8 @@
|
||||
<xml>
|
||||
<object name="ExampleSettings" singleinstance="true" settings="true">
|
||||
<field name="UpdatePeriod" units="ms" type="int32" elements="1"/>
|
||||
<field name="StepSize" units="" type="int32" elements="1"/>
|
||||
<field name="StepDirection" units="" type="enum" elements="1" options="up,down"/>
|
||||
<field name="UpdatePeriod" units="ms" type="int32" elements="1" defaultvalue="10"/>
|
||||
<field name="StepSize" units="" type="int32" elements="1" defaultvalue="1"/>
|
||||
<field name="StepDirection" units="" type="enum" elements="1" options="up,down" defaultvalue="up"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
||||
<logging updatemode="never" period="0"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user