diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp index e9c9f8708..9bce4d777 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp @@ -133,15 +133,15 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : addUAVObjectToWidgetRelation("ManualControlSettings","FlightModePosition",m_config->fmsModePos6,5,1,true); addUAVObjectToWidgetRelation("ManualControlSettings","FlightModeNumber",m_config->fmsPosNum); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Roll,"Roll"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Roll,"Roll"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization3Settings",m_config->fmsSsPos3Roll,"Roll"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Pitch,"Pitch"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Pitch,"Pitch"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization3Settings",m_config->fmsSsPos3Pitch,"Pitch"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Yaw,"Yaw"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Yaw,"Yaw"); - addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization3Settings",m_config->fmsSsPos3Yaw,"Yaw"); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Roll,"Roll",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Roll,"Roll",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization3Settings",m_config->fmsSsPos3Roll,"Roll",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Pitch,"Pitch",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Pitch,"Pitch",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization3Settings",m_config->fmsSsPos3Pitch,"Pitch",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization1Settings",m_config->fmsSsPos1Yaw,"Yaw",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization2Settings",m_config->fmsSsPos2Yaw,"Yaw",1,true); + addUAVObjectToWidgetRelation("ManualControlSettings","Stabilization3Settings",m_config->fmsSsPos3Yaw,"Yaw",1,true); addUAVObjectToWidgetRelation("ManualControlSettings","Arming",m_config->armControl); addUAVObjectToWidgetRelation("ManualControlSettings","ArmedTimeout",m_config->armTimeout,0,1000); diff --git a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp index 85b0f721f..8ac7f6674 100644 --- a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp @@ -101,18 +101,27 @@ void UAVObjectField::constructorInitialize(const QString& name, const QString& u void UAVObjectField::limitsInitialize(const QString &limits) { - /// format - /// (TY)->type (EQ-equal;NE-not equal;BE-between;BI-bigger;SM-smaller) - /// (VALX)->value - /// %TY:VAL1:VAL2:VAL3,%TY,VAL1,VAL2,VAL3 - /// example: first element bigger than 3 and second element inside [2.3,5] - /// "%BI:3,%BE:2.3:5" + // Limit string format: + // % - start char + // XXXX - optional BOARD_TYPE and BOARD_REVISION (4 hex digits) + // TY - rule type (EQ-equal, NE-not equal, BE-between, BI-bigger, SM-smaller) + // VAL - values for TY separated by colon + // , - rule separator (may have leading or trailing spaces) + // ; - element separator (may have leading or trailing spaces) + // + // Examples: + // Disable few flight modes for Revo (00903): + // "%0903NE:Autotune:VelocityControl:PositionHold:ReturnToBase:Land:PathPlanner" + // Original CC board (rev 1), first element bigger than 3 and second element inside [2.3-5.0]: + // "%0401BI:3; %BE:2.3:5" + // Set applicable range [0-500] for 3 elements of array for all boards: + // "%BE:0:500; %BE:0:500; %BE:0:500" if(limits.isEmpty()) return; - QStringList stringPerElement=limits.split(","); + QStringList stringPerElement = limits.split(";"); quint32 index=0; foreach (QString str, stringPerElement) { - QStringList ruleList=str.split(";"); + QStringList ruleList = str.split(","); QList limitList; foreach(QString rule,ruleList) { diff --git a/shared/uavobjectdefinition/manualcontrolsettings.xml b/shared/uavobjectdefinition/manualcontrolsettings.xml index ccb7cb54e..17b85cf5f 100644 --- a/shared/uavobjectdefinition/manualcontrolsettings.xml +++ b/shared/uavobjectdefinition/manualcontrolsettings.xml @@ -20,13 +20,54 @@ - - - + + + - + + + diff --git a/shared/uavobjectdefinition/stabilizationsettings.xml b/shared/uavobjectdefinition/stabilizationsettings.xml index b5c233fdc..06d5538e4 100644 --- a/shared/uavobjectdefinition/stabilizationsettings.xml +++ b/shared/uavobjectdefinition/stabilizationsettings.xml @@ -4,15 +4,15 @@ - - + + - - - - - - + + + + + +