QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
RCToParamDialogController.cc
Go to the documentation of this file.
2#include "ParameterManager.h"
4#include "Vehicle.h"
6#include "Fact.h"
7
8QGC_LOGGING_CATEGORY(RCToParamDialogControllerLog, "QMLControls.RCToParamDialogController")
9
10QMap<QString, FactMetaData*> RCToParamDialogController::_metaDataMap;
11
13 : QObject(parent)
14 , _scaleFact(new Fact(0, _scaleFactName, FactMetaData::valueTypeDouble, this))
15 , _centerFact(new Fact(0, _centerFactName, FactMetaData::valueTypeDouble, this))
16 , _minFact(new Fact(0, _minFactName, FactMetaData::valueTypeDouble, this))
17 , _maxFact(new Fact(0, _maxFactName, FactMetaData::valueTypeDouble, this))
18{
19 // qCDebug(RCToParamDialogControllerLog) << Q_FUNC_INFO << this;
20
21 if (_metaDataMap.isEmpty()) {
22 _metaDataMap = FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/RCToParamDialog.FactMetaData.json"), nullptr /* QObject parent */);
23 }
24
25 _scaleFact->setMetaData(_metaDataMap[_scaleFactName], true /* setDefaultFromMetaData */);
26 _centerFact->setMetaData(_metaDataMap[_centerFactName]);
27 _minFact->setMetaData(_metaDataMap[_minFactName]);
28 _maxFact->setMetaData(_metaDataMap[_maxFactName]);
29}
30
31RCToParamDialogController::~RCToParamDialogController()
32{
33 // qCDebug(RCToParamDialogControllerLog) << Q_FUNC_INFO << this;`
34}
35
36void RCToParamDialogController::setTuningFact(Fact *tuningFact)
37{
38 _tuningFact = tuningFact;
39 emit tuningFactChanged(tuningFact);
40
41 _centerFact->setRawValue(_tuningFact->rawValue().toDouble());
42 _minFact->setRawValue(_tuningFact->rawMin().toDouble());
43 _maxFact->setRawValue(_tuningFact->rawMax().toDouble());
44
45 (void) connect(_tuningFact, &Fact::vehicleUpdated, this, &RCToParamDialogController::_parameterUpdated);
46 MultiVehicleManager::instance()->activeVehicle()->parameterManager()->refreshParameter(ParameterManager::defaultComponentId, _tuningFact->name());
47}
48
49void RCToParamDialogController::_parameterUpdated()
50{
51 _ready = true;
52 emit readyChanged(_ready);
53}
#define QGC_LOGGING_CATEGORY(name, categoryStr)
static QMap< QString, FactMetaData * > createMapFromJsonFile(const QString &jsonFilename, QObject *metaDataParent)
A Fact is used to hold a single value within the system.
Definition Fact.h:19
void vehicleUpdated(const QVariant &value)
Signalled when the param write ack comes back from the vehicle.
static constexpr int defaultComponentId
void refreshParameter(int componentId, const QString &paramName)
Request a refresh on the specific parameter.
void tuningFactChanged(Fact *fact)
void readyChanged(bool ready)
ParameterManager * parameterManager()
Definition Vehicle.h:578