Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
f132b110
Commit
f132b110
authored
Oct 29, 2015
by
Don Gagne
Browse files
ParameterLoader to Vehicle, ParameterMetaData to FirmwarePlugin
parent
8b0b8906
Changes
31
Hide whitespace changes
Inline
Side-by-side
QGCApplication.pro
View file @
f132b110
...
...
@@ -527,14 +527,13 @@ HEADERS+= \
src
/
FirmwarePlugin
/
FirmwarePluginManager
.
h
\
src
/
FirmwarePlugin
/
FirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
APM
/
APMFirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
APM
/
APMParameter
Loader
.
h
\
src
/
FirmwarePlugin
/
APM
/
APMParameter
MetaData
.
h
\
src
/
FirmwarePlugin
/
APM
/
ArduCopterFirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
APM
/
ArduPlaneFirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
APM
/
ArduRoverFirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
Generic
/
GenericFirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
Generic
/
GenericParameterLoader
.
h
\
src
/
FirmwarePlugin
/
PX4
/
PX4FirmwarePlugin
.
h
\
src
/
FirmwarePlugin
/
PX4
/
PX4Parameter
Loader
.
h
\
src
/
FirmwarePlugin
/
PX4
/
PX4Parameter
MetaData
.
h
\
src
/
Vehicle
/
MultiVehicleManager
.
h
\
src
/
Vehicle
/
Vehicle
.
h
\
src
/
VehicleSetup
/
VehicleComponent
.
h
\
...
...
@@ -568,15 +567,14 @@ SOURCES += \
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponentController
.
cc
\
src
/
FirmwarePlugin
/
APM
/
APMFirmwarePlugin
.
cc
\
src
/
FirmwarePlugin
/
APM
/
APMParameter
Loader
.
cc
\
src
/
FirmwarePlugin
/
APM
/
APMParameter
MetaData
.
cc
\
src
/
FirmwarePlugin
/
APM
/
ArduCopterFirmwarePlugin
.
cc
\
src
/
FirmwarePlugin
/
APM
/
ArduPlaneFirmwarePlugin
.
cc
\
src
/
FirmwarePlugin
/
APM
/
ArduRoverFirmwarePlugin
.
cc
\
src
/
FirmwarePlugin
/
FirmwarePluginManager
.
cc
\
src
/
FirmwarePlugin
/
Generic
/
GenericFirmwarePlugin
.
cc
\
src
/
FirmwarePlugin
/
Generic
/
GenericParameterLoader
.
cc
\
src
/
FirmwarePlugin
/
PX4
/
PX4FirmwarePlugin
.
cc
\
src
/
FirmwarePlugin
/
PX4
/
PX4Parameter
Loader
.
cc
\
src
/
FirmwarePlugin
/
PX4
/
PX4Parameter
MetaData
.
cc
\
src
/
Vehicle
/
MultiVehicleManager
.
cc
\
src
/
Vehicle
/
Vehicle
.
cc
\
src
/
VehicleSetup
/
VehicleComponent
.
cc
\
...
...
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc
View file @
f132b110
...
...
@@ -25,7 +25,7 @@
#include
"AutoPilotPluginManager.h"
#include
"QGCMessageBox.h"
#include
"UAS.h"
#include
"FirmwarePlugin/APM/APMParameter
Loader
.h"
// FIXME: Hack
#include
"FirmwarePlugin/APM/APMParameter
MetaData
.h"
// FIXME: Hack
#include
"FirmwarePlugin/APM/APMFirmwarePlugin.h"
// FIXME: Hack
/// This is the AutoPilotPlugin implementatin for the MAV_AUTOPILOT_ARDUPILOT type.
...
...
@@ -34,9 +34,6 @@ APMAutoPilotPlugin::APMAutoPilotPlugin(Vehicle* vehicle, QObject* parent) :
_incorrectParameterVersion
(
false
)
{
Q_ASSERT
(
vehicle
);
// This kicks off parameter load
_firmwarePlugin
->
getParameterLoader
(
this
,
vehicle
);
}
APMAutoPilotPlugin
::~
APMAutoPilotPlugin
()
...
...
@@ -44,11 +41,6 @@ APMAutoPilotPlugin::~APMAutoPilotPlugin()
}
void
APMAutoPilotPlugin
::
clearStaticData
(
void
)
{
APMParameterLoader
::
clearStaticData
();
}
const
QVariantList
&
APMAutoPilotPlugin
::
vehicleComponents
(
void
)
{
static
const
QVariantList
emptyList
;
...
...
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h
View file @
f132b110
...
...
@@ -39,8 +39,6 @@ public:
// Overrides from AutoPilotPlugin
virtual
const
QVariantList
&
vehicleComponents
(
void
);
static
void
clearStaticData
(
void
);
public
slots
:
// FIXME: This is public until we restructure AutoPilotPlugin/FirmwarePlugin/Vehicle
void
_parametersReadyPreChecks
(
bool
missingParameters
);
...
...
src/AutoPilotPlugins/AutoPilotPlugin.cc
View file @
f132b110
...
...
@@ -109,34 +109,34 @@ void AutoPilotPlugin::resetAllParametersToDefaults(void)
void
AutoPilotPlugin
::
refreshAllParameters
(
void
)
{
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
refreshAllParameters
();
_
vehicle
->
getParameterLoader
()
->
refreshAllParameters
();
}
void
AutoPilotPlugin
::
refreshParameter
(
int
componentId
,
const
QString
&
name
)
{
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
refreshParameter
(
componentId
,
name
);
_
vehicle
->
getParameterLoader
()
->
refreshParameter
(
componentId
,
name
);
}
void
AutoPilotPlugin
::
refreshParametersPrefix
(
int
componentId
,
const
QString
&
namePrefix
)
{
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
refreshParametersPrefix
(
componentId
,
namePrefix
);
_
vehicle
->
getParameterLoader
()
->
refreshParametersPrefix
(
componentId
,
namePrefix
);
}
bool
AutoPilotPlugin
::
parameterExists
(
int
componentId
,
const
QString
&
name
)
{
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
parameterExists
(
componentId
,
name
);
return
_
vehicle
->
getParameterLoader
()
->
parameterExists
(
componentId
,
name
);
}
Fact
*
AutoPilotPlugin
::
getParameterFact
(
int
componentId
,
const
QString
&
name
)
{
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
getFact
(
componentId
,
name
);
return
_
vehicle
->
getParameterLoader
()
->
getFact
(
componentId
,
name
);
}
bool
AutoPilotPlugin
::
factExists
(
FactSystem
::
Provider_t
provider
,
int
componentId
,
const
QString
&
name
)
{
switch
(
provider
)
{
case
FactSystem
::
ParameterProvider
:
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
parameterExists
(
componentId
,
name
);
return
_
vehicle
->
getParameterLoader
()
->
parameterExists
(
componentId
,
name
);
// Other providers will go here once they come online
}
...
...
@@ -149,7 +149,7 @@ Fact* AutoPilotPlugin::getFact(FactSystem::Provider_t provider, int componentId,
{
switch
(
provider
)
{
case
FactSystem
::
ParameterProvider
:
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
getFact
(
componentId
,
name
);
return
_
vehicle
->
getParameterLoader
()
->
getFact
(
componentId
,
name
);
// Other providers will go here once they come online
}
...
...
@@ -160,20 +160,20 @@ Fact* AutoPilotPlugin::getFact(FactSystem::Provider_t provider, int componentId,
QStringList
AutoPilotPlugin
::
parameterNames
(
int
componentId
)
{
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
parameterNames
(
componentId
);
return
_
vehicle
->
getParameterLoader
()
->
parameterNames
(
componentId
);
}
const
QMap
<
int
,
QMap
<
QString
,
QStringList
>
>&
AutoPilotPlugin
::
getGroupMap
(
void
)
{
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
getGroupMap
();
return
_
vehicle
->
getParameterLoader
()
->
getGroupMap
();
}
void
AutoPilotPlugin
::
writeParametersToStream
(
QTextStream
&
stream
)
{
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
writeParametersToStream
(
stream
,
_vehicle
->
uas
()
->
getUASName
());
_
vehicle
->
getParameterLoader
()
->
writeParametersToStream
(
stream
,
_vehicle
->
uas
()
->
getUASName
());
}
QString
AutoPilotPlugin
::
readParametersFromStream
(
QTextStream
&
stream
)
{
return
_
firmwarePlugin
->
getParameterLoader
(
this
,
_vehicle
)
->
readParametersFromStream
(
stream
);
return
_
vehicle
->
getParameterLoader
()
->
readParametersFromStream
(
stream
);
}
src/AutoPilotPlugins/AutoPilotPlugin.h
View file @
f132b110
...
...
@@ -114,8 +114,6 @@ public:
// Must be implemented by derived class
virtual
const
QVariantList
&
vehicleComponents
(
void
)
=
0
;
static
void
clearStaticData
(
void
);
// Property accessors
bool
parametersReady
(
void
)
{
return
_parametersReady
;
}
bool
missingParameters
(
void
)
{
return
_missingParameters
;
}
...
...
src/AutoPilotPlugins/AutoPilotPluginManager.cc
View file @
f132b110
...
...
@@ -37,12 +37,6 @@ AutoPilotPluginManager::AutoPilotPluginManager(QObject* parent) :
}
AutoPilotPluginManager
::~
AutoPilotPluginManager
()
{
PX4AutoPilotPlugin
::
clearStaticData
();
GenericAutoPilotPlugin
::
clearStaticData
();
}
AutoPilotPlugin
*
AutoPilotPluginManager
::
newAutopilotPluginForVehicle
(
Vehicle
*
vehicle
)
{
switch
(
vehicle
->
firmwareType
())
{
...
...
src/AutoPilotPlugins/AutoPilotPluginManager.h
View file @
f132b110
...
...
@@ -49,7 +49,6 @@ public:
private:
/// All access to singleton is through AutoPilotPluginManager::instance
AutoPilotPluginManager
(
QObject
*
parent
=
NULL
);
~
AutoPilotPluginManager
();
};
#endif
src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc
View file @
f132b110
...
...
@@ -31,14 +31,6 @@ GenericAutoPilotPlugin::GenericAutoPilotPlugin(Vehicle* vehicle, QObject* parent
AutoPilotPlugin
(
vehicle
,
parent
)
{
Q_ASSERT
(
vehicle
);
// This kicks off parameter load
_firmwarePlugin
->
getParameterLoader
(
this
,
vehicle
);
}
void
GenericAutoPilotPlugin
::
clearStaticData
(
void
)
{
// No Static data yet
}
const
QVariantList
&
GenericAutoPilotPlugin
::
vehicleComponents
(
void
)
...
...
src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.h
View file @
f132b110
...
...
@@ -40,8 +40,6 @@ public:
// Overrides from AutoPilotPlugin
virtual
const
QVariantList
&
vehicleComponents
(
void
);
static
void
clearStaticData
(
void
);
public
slots
:
// FIXME: This is public until we restructure AutoPilotPlugin/FirmwarePlugin/Vehicle
...
...
src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc
View file @
f132b110
...
...
@@ -190,9 +190,3 @@ void PX4AirframeLoader::loadAirframeFactMetaData(void)
_airframeMetaDataLoaded
=
true
;
}
void
PX4AirframeLoader
::
clearStaticData
(
void
)
{
AirframeComponentAirframes
::
clear
();
_airframeMetaDataLoaded
=
false
;
}
src/AutoPilotPlugins/PX4/PX4AirframeLoader.h
View file @
f132b110
...
...
@@ -50,7 +50,6 @@ public:
PX4AirframeLoader
(
AutoPilotPlugin
*
autpilot
,
UASInterface
*
uas
,
QObject
*
parent
=
NULL
);
static
void
loadAirframeFactMetaData
(
void
);
static
void
clearStaticData
(
void
);
private:
enum
{
...
...
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc
View file @
f132b110
...
...
@@ -28,7 +28,7 @@
#include
"AirframeComponentController.h"
#include
"QGCMessageBox.h"
#include
"UAS.h"
#include
"FirmwarePlugin/PX4/PX4Parameter
Loader
.h"
// FIXME: Hack
#include
"FirmwarePlugin/PX4/PX4Parameter
MetaData
.h"
// FIXME: Hack
#include
"FirmwarePlugin/PX4/PX4FirmwarePlugin.h"
// FIXME: Hack
/// @file
...
...
@@ -81,9 +81,6 @@ PX4AutoPilotPlugin::PX4AutoPilotPlugin(Vehicle* vehicle, QObject* parent) :
Q_CHECK_PTR
(
_airframeFacts
);
PX4AirframeLoader
::
loadAirframeFactMetaData
();
// This kicks off parameter load
_firmwarePlugin
->
getParameterLoader
(
this
,
vehicle
);
}
PX4AutoPilotPlugin
::~
PX4AutoPilotPlugin
()
...
...
@@ -91,12 +88,6 @@ PX4AutoPilotPlugin::~PX4AutoPilotPlugin()
delete
_airframeFacts
;
}
void
PX4AutoPilotPlugin
::
clearStaticData
(
void
)
{
PX4ParameterLoader
::
clearStaticData
();
PX4AirframeLoader
::
clearStaticData
();
}
const
QVariantList
&
PX4AutoPilotPlugin
::
vehicleComponents
(
void
)
{
if
(
_components
.
count
()
==
0
&&
!
_incorrectParameterVersion
)
{
...
...
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h
View file @
f132b110
...
...
@@ -51,8 +51,6 @@ public:
// Overrides from AutoPilotPlugin
virtual
const
QVariantList
&
vehicleComponents
(
void
);
static
void
clearStaticData
(
void
);
// These methods should only be used by objects within the plugin
AirframeComponent
*
airframeComponent
(
void
)
{
return
_airframeComponent
;
}
RadioComponent
*
radioComponent
(
void
)
{
return
_radioComponent
;
}
...
...
src/FactSystem/FactSystem.h
View file @
f132b110
...
...
@@ -37,7 +37,7 @@
/// additional meta data associated with a Fact such as description, min/max ranges and so forth.
/// The FactValidator object is a QML validator which validates input according to the FactMetaData
/// settings. Client code can then use this system to expose sets of Facts to QML code. An example
/// of this is the PX4Parameter
Loader
onbject which is part of the PX4 AutoPilot plugin. It exposes
/// of this is the PX4Parameter
MetaData
onbject which is part of the PX4 AutoPilot plugin. It exposes
/// the firmware parameters to QML such that you can bind QML ui elements directly to parameters.
class
FactSystem
:
public
QGCSingleton
...
...
src/FactSystem/ParameterLoader.cc
View file @
f132b110
...
...
@@ -198,7 +198,7 @@ void ParameterLoader::_parameterUpdate(int uasId, int componentId, QString param
// Attempt to determine default component id
if
(
_defaultComponentId
==
FactSystem
::
defaultComponentId
&&
_defaultComponentIdParam
.
isEmpty
())
{
_defaultComponentIdParam
=
getDefaultComponentIdParam
();
_defaultComponentIdParam
=
_vehicle
->
firmwarePlugin
()
->
getDefaultComponentIdParam
();
}
if
(
!
_defaultComponentIdParam
.
isEmpty
()
&&
_defaultComponentIdParam
==
parameterName
)
{
_defaultComponentId
=
componentId
;
...
...
@@ -255,7 +255,7 @@ void ParameterLoader::_parameterUpdate(int uasId, int componentId, QString param
fact
->
_containerSetValue
(
value
);
if
(
setMetaData
)
{
_addMetaDataToFact
(
fact
);
_
vehicle
->
firmwarePlugin
()
->
addMetaDataToFact
(
fact
);
}
_dataMutex
.
unlock
();
...
...
@@ -293,12 +293,6 @@ void ParameterLoader::_valueUpdated(const QVariant& value)
qCDebug
(
ParameterLoaderLog
)
<<
"Set parameter (componentId:"
<<
componentId
<<
"name:"
<<
name
<<
value
<<
")"
;
}
void
ParameterLoader
::
_addMetaDataToFact
(
Fact
*
fact
)
{
FactMetaData
*
metaData
=
new
FactMetaData
(
fact
->
type
(),
this
);
fact
->
setMetaData
(
metaData
);
}
void
ParameterLoader
::
refreshAllParameters
(
void
)
{
_dataMutex
.
lock
();
...
...
src/FactSystem/ParameterLoader.h
View file @
f132b110
...
...
@@ -86,10 +86,6 @@ public:
QString
readParametersFromStream
(
QTextStream
&
stream
);
void
writeParametersToStream
(
QTextStream
&
stream
,
const
QString
&
name
);
/// Return the parameter for which the default component id is derived from. Return an empty
/// string is this is not available.
virtual
QString
getDefaultComponentIdParam
(
void
)
const
=
0
;
signals:
/// Signalled when the full set of facts are ready
...
...
@@ -102,10 +98,6 @@ signals:
void
restartWaitingParamTimer
(
void
);
protected:
/// Base implementation adds generic meta data based on variant type. Derived class can override to provide
/// more details meta data.
virtual
void
_addMetaDataToFact
(
Fact
*
fact
);
AutoPilotPlugin
*
_autopilot
;
Vehicle
*
_vehicle
;
MAVLinkProtocol
*
_mavlink
;
...
...
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc
View file @
f132b110
...
...
@@ -141,7 +141,6 @@ QString APMCustomMode::modeString() const
APMFirmwarePlugin
::
APMFirmwarePlugin
(
QObject
*
parent
)
:
FirmwarePlugin
(
parent
)
,
_parameterLoader
(
NULL
)
{
_textSeverityAdjustmentNeeded
=
false
;
}
...
...
@@ -387,18 +386,7 @@ bool APMFirmwarePlugin::sendHomePositionToVehicle(void)
return
true
;
}
ParameterLoader
*
APMFirmwarePlugin
::
getParameterLoader
(
AutoPilotPlugin
*
autopilotPlugin
,
Vehicle
*
vehicle
)
void
APMFirmwarePlugin
::
addMetaDataToFact
(
Fact
*
fact
)
{
if
(
!
_parameterLoader
)
{
_parameterLoader
=
new
APMParameterLoader
(
autopilotPlugin
,
vehicle
,
this
);
Q_CHECK_PTR
(
_parameterLoader
);
// FIXME: Why do I need SIGNAL/SLOT to make this work
connect
(
_parameterLoader
,
SIGNAL
(
parametersReady
(
bool
)),
autopilotPlugin
,
SLOT
(
_parametersReadyPreChecks
(
bool
)));
connect
(
_parameterLoader
,
&
APMParameterLoader
::
parameterListProgress
,
autopilotPlugin
,
&
APMAutoPilotPlugin
::
parameterListProgress
);
_parameterLoader
->
loadParameterFactMetaData
();
}
return
_parameterLoader
;
_parameterMetaData
.
addMetaDataToFact
(
fact
);
}
src/FirmwarePlugin/APM/APMFirmwarePlugin.h
View file @
f132b110
...
...
@@ -29,7 +29,7 @@
#include
"FirmwarePlugin.h"
#include
"QGCLoggingCategory.h"
#include
"APMParameter
Loader
.h"
#include
"APMParameter
MetaData
.h"
Q_DECLARE_LOGGING_CATEGORY
(
APMFirmwarePluginLog
)
...
...
@@ -89,7 +89,8 @@ public:
virtual
void
adjustMavlinkMessage
(
mavlink_message_t
*
message
);
virtual
void
initializeVehicle
(
Vehicle
*
vehicle
);
virtual
bool
sendHomePositionToVehicle
(
void
);
virtual
ParameterLoader
*
getParameterLoader
(
AutoPilotPlugin
*
autopilotPlugin
,
Vehicle
*
vehicle
);
virtual
void
addMetaDataToFact
(
Fact
*
fact
);
virtual
QString
getDefaultComponentIdParam
(
void
)
const
{
return
QString
(
"SYSID_SW_TYPE"
);
}
protected:
/// All access to singleton is through stack specific implementation
...
...
@@ -103,7 +104,7 @@ private:
APMFirmwareVersion
_firmwareVersion
;
bool
_textSeverityAdjustmentNeeded
;
QList
<
APMCustomMode
>
_supportedModes
;
APMParameter
Loader
*
_parameter
Loader
;
APMParameter
MetaData
_parameter
MetaData
;
};
#endif
src/FirmwarePlugin/APM/APMParameter
Loader
.cc
→
src/FirmwarePlugin/APM/APMParameter
MetaData
.cc
View file @
f132b110
...
...
@@ -24,7 +24,7 @@
/// @file
/// @author Don Gagne <don@thegagnes.com>
#include
"APMParameter
Loader
.h"
#include
"APMParameter
MetaData
.h"
#include
"QGCApplication.h"
#include
"QGCLoggingCategory.h"
...
...
@@ -33,15 +33,15 @@
#include
<QDir>
#include
<QDebug>
QGC_LOGGING_CATEGORY
(
APMParameter
Loader
Log
,
"APMParameter
Loader
Log"
)
QGC_LOGGING_CATEGORY
(
APMParameter
MetaData
Log
,
"APMParameter
MetaData
Log"
)
bool
APMParameter
Loader
::
_parameterMetaDataLoaded
=
false
;
QMap
<
QString
,
FactMetaData
*>
APMParameter
Loader
::
_mapParameterName2FactMetaData
;
bool
APMParameter
MetaData
::
_parameterMetaDataLoaded
=
false
;
QMap
<
QString
,
FactMetaData
*>
APMParameter
MetaData
::
_mapParameterName2FactMetaData
;
APMParameter
Loader
::
APMParameter
Loader
(
AutoPilotPlugin
*
autopilot
,
Vehicle
*
vehicle
,
QObject
*
parent
)
:
ParameterLoader
(
autopilot
,
vehicle
,
parent
)
APMParameter
MetaData
::
APMParameter
MetaData
(
QObject
*
parent
)
:
QObject
(
parent
)
{
Q_ASSERT
(
vehicle
);
_loadParameterFactMetaData
(
);
}
/// Converts a string to a typed QVariant
...
...
@@ -49,7 +49,7 @@ APMParameterLoader::APMParameterLoader(AutoPilotPlugin* autopilot, Vehicle* vehi
/// @param type Type for Fact which dictates the QVariant type as well
/// @param convertOk Returned: true: conversion success, false: conversion failure
/// @return Returns the correctly type QVariant
QVariant
APMParameter
Loader
::
_stringToTypedVariant
(
const
QString
&
string
,
FactMetaData
::
ValueType_t
type
,
bool
*
convertOk
)
QVariant
APMParameter
MetaData
::
_stringToTypedVariant
(
const
QString
&
string
,
FactMetaData
::
ValueType_t
type
,
bool
*
convertOk
)
{
QVariant
var
(
string
);
...
...
@@ -81,7 +81,7 @@ QVariant APMParameterLoader::_stringToTypedVariant(const QString& string, FactMe
/// Load Parameter Fact meta data
///
/// The meta data comes from firmware parameters.xml file.
void
APMParameter
Loader
::
loadParameterFactMetaData
(
void
)
void
APMParameter
MetaData
::
_
loadParameterFactMetaData
(
void
)
{
if
(
_parameterMetaDataLoaded
)
{
return
;
...
...
@@ -94,20 +94,11 @@ void APMParameterLoader::loadParameterFactMetaData(void)
// has multiple sets of static meta data
}
void
APMParameterLoader
::
clearStaticData
(
void
)
{
foreach
(
QString
parameterName
,
_mapParameterName2FactMetaData
.
keys
())
{
delete
_mapParameterName2FactMetaData
[
parameterName
];
}
_mapParameterName2FactMetaData
.
clear
();
_parameterMetaDataLoaded
=
false
;
}
/// Override from FactLoad which connects the meta data to the fact
void
APMParameter
Loader
::
_
addMetaDataToFact
(
Fact
*
fact
)
void
APMParameter
MetaData
::
addMetaDataToFact
(
Fact
*
fact
)
{
// FIXME: Will need to switch here based on _vehicle->firmwareType() to pull right set of meta data
// Use generic meta data
ParameterLoader
::
_addMetaDataToFact
(
fact
);
FactMetaData
*
metaData
=
new
FactMetaData
(
fact
->
type
(),
fact
);
fact
->
setMetaData
(
metaData
);
}
src/FirmwarePlugin/APM/APMParameter
Loader
.h
→
src/FirmwarePlugin/APM/APMParameter
MetaData
.h
View file @
f132b110
...
...
@@ -21,15 +21,14 @@
======================================================================*/
#ifndef APMParameter
Loader
_H
#define APMParameter
Loader
_H
#ifndef APMParameter
MetaData
_H
#define APMParameter
MetaData
_H
#include
<QObject>
#include
<QMap>
#include
<QXmlStreamReader>
#include
<QLoggingCategory>
#include
"ParameterLoader.h"
#include
"FactSystem.h"
#include
"AutoPilotPlugin.h"
#include
"Vehicle.h"
...
...
@@ -37,24 +36,24 @@
/// @file
/// @author Don Gagne <don@thegagnes.com>
Q_DECLARE_LOGGING_CATEGORY
(
APMParameter
Loader
Log
)
Q_DECLARE_LOGGING_CATEGORY
(
APMParameter
MetaData
Log
)
/// Collection of Parameter Facts for PX4 AutoPilot
class
APMParameter
Loader
:
public
ParameterLoader
class
APMParameter
MetaData
:
public
QObject
{
Q_OBJECT
public:
/// @param uas Uas which this set of facts is associated with
APMParameter
Loader
(
AutoPilotPlugin
*
autopilot
,
Vehicle
*
vehicle
,
QObject
*
parent
=
NULL
);
APMParameter
MetaData
(
QObject
*
parent
=
NULL
);
/// Override from ParameterLoader
virtual
QString
getDefaultComponentIdParam
(
void
)
const
{
return
QString
(
"SYSID_SW_TYPE"
);
}
static
void
loadParameterFactMetaData
(
void
);
static
void
clearStaticData
(
void
);
virtual
QString
getDefaultComponentIdParam
(
void
)
const
{
return
QString
(
"SYSID_SW_TYPE"
);
}
// Overrides from ParameterLoader
static
void
addMetaDataToFact
(
Fact
*
fact
);
private:
enum
{
XmlStateNone
,
...
...
@@ -65,10 +64,8 @@ private:
XmlStateDone
};
// Overrides from ParameterLoader
virtual
void
_addMetaDataToFact
(
Fact
*
fact
);
// Class methods
static
void
_loadParameterFactMetaData
(
void
);
static
QVariant
_stringToTypedVariant
(
const
QString
&
string
,
FactMetaData
::
ValueType_t
type
,
bool
*
convertOk
);
static
bool
_parameterMetaDataLoaded
;
///< true: parameter meta data already loaded
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment