Browse Source

Do not load Read-only parameters for ardupilot

QGC4.4
Willian Galvani 3 years ago committed by Patrick José Pereira
parent
commit
ab4f5ea950
  1. 7
      src/FirmwarePlugin/APM/APMParameterMetaData.cc
  2. 1
      src/FirmwarePlugin/APM/APMParameterMetaData.h
  3. 24
      src/QmlControls/ParameterEditorController.cc

7
src/FirmwarePlugin/APM/APMParameterMetaData.cc

@ -378,6 +378,12 @@ bool APMParameterMetaData::parseParameterAttributes(QXmlStreamReader& xml, APMFa @@ -378,6 +378,12 @@ bool APMParameterMetaData::parseParameterAttributes(QXmlStreamReader& xml, APMFa
QString units = xml.readElementText();
qCDebug(APMParameterMetaDataVerboseLog) << "read Units: " << units;
rawMetaData->units = units;
} else if (attributeName == "ReadOnly") {
QString strValue = xml.readElementText().trimmed();
if (strValue.compare("true", Qt::CaseInsensitive) == 0) {
rawMetaData->readOnly = true;
}
qCDebug(APMParameterMetaDataVerboseLog) << "read ReadOnly: " << rawMetaData->readOnly;
} else if (attributeName == "Bitmask") {
bool parseError = false;
@ -461,6 +467,7 @@ FactMetaData* APMParameterMetaData::getMetaDataForFact(const QString& name, MAV_ @@ -461,6 +467,7 @@ FactMetaData* APMParameterMetaData::getMetaDataForFact(const QString& name, MAV_
}
metaData->setGroup(rawMetaData->group);
metaData->setVehicleRebootRequired(rawMetaData->rebootRequired);
metaData->setReadOnly(rawMetaData->readOnly);
if (!rawMetaData->shortDescription.isEmpty()) {
metaData->setShortDescription(rawMetaData->shortDescription);

1
src/FirmwarePlugin/APM/APMParameterMetaData.h

@ -42,6 +42,7 @@ public: @@ -42,6 +42,7 @@ public:
QString incrementSize;
QString units;
bool rebootRequired;
bool readOnly;
QList<QPair<QString, QString> > values;
QList<QPair<QString, QString> > bitmask;
};

24
src/QmlControls/ParameterEditorController.cc

@ -278,6 +278,7 @@ bool ParameterEditorController::buildDiffFromFile(const QString& filename) @@ -278,6 +278,7 @@ bool ParameterEditorController::buildDiffFromFile(const QString& filename)
QString units;
QVariant fileValueVar = fileValueStr;
bool noVehicleValue = false;
bool readOnly = false;
if (_vehicle->id() != vehicleId) {
_diffOtherVehicle = true;
@ -299,6 +300,7 @@ bool ParameterEditorController::buildDiffFromFile(const QString& filename) @@ -299,6 +300,7 @@ bool ParameterEditorController::buildDiffFromFile(const QString& filename)
fileFact->setMetaData(vehicleFact->metaData());
fileFact->setRawValue(fileValueStr);
vehicleFactMetaData->setVehicleRebootRequired(vehicleRebootRequired);
readOnly = vehicleFact->readOnly();
if (vehicleFact->rawValue() == fileFact->rawValue()) {
continue;
@ -311,18 +313,20 @@ bool ParameterEditorController::buildDiffFromFile(const QString& filename) @@ -311,18 +313,20 @@ bool ParameterEditorController::buildDiffFromFile(const QString& filename)
noVehicleValue = true;
}
ParameterEditorDiff* paramDiff = new ParameterEditorDiff(this);
if (!readOnly) {
ParameterEditorDiff* paramDiff = new ParameterEditorDiff(this);
paramDiff->componentId = componentId;
paramDiff->name = paramName;
paramDiff->valueType = ParameterManager::mavTypeToFactType(static_cast<MAV_PARAM_TYPE>(mavParamType));
paramDiff->fileValue = fileValueStr;
paramDiff->fileValueVar = fileValueVar;
paramDiff->vehicleValue = vehicleValueStr;
paramDiff->noVehicleValue = noVehicleValue;
paramDiff->units = units;
paramDiff->componentId = componentId;
paramDiff->name = paramName;
paramDiff->valueType = ParameterManager::mavTypeToFactType(static_cast<MAV_PARAM_TYPE>(mavParamType));
paramDiff->fileValue = fileValueStr;
paramDiff->fileValueVar = fileValueVar;
paramDiff->vehicleValue = vehicleValueStr;
paramDiff->noVehicleValue = noVehicleValue;
paramDiff->units = units;
_diffList.append(paramDiff);
_diffList.append(paramDiff);
}
}
}
}

Loading…
Cancel
Save