mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-21 11:54:15 +01:00
Bug fixes and showcase UI setup (partial).
This commit is contained in:
parent
e2c6a9d58a
commit
5cfd763f2a
@ -3367,8 +3367,11 @@ border-radius: 5;</string>
|
|||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>100</number>
|
<number>100</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>51</number>
|
||||||
|
</property>
|
||||||
<property name="sliderPosition">
|
<property name="sliderPosition">
|
||||||
<number>50</number>
|
<number>51</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
@ -3410,6 +3413,15 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:RollRatePID</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="3">
|
<item row="1" column="3">
|
||||||
@ -3444,6 +3456,15 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchRatePID</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
@ -3466,6 +3487,15 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchRatePID</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="5">
|
<item row="1" column="5">
|
||||||
@ -3500,6 +3530,15 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawRatePID</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="6">
|
<item row="1" column="6">
|
||||||
@ -3522,6 +3561,15 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawRatePID</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
@ -3575,6 +3623,15 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:RollRatePID</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2">
|
<item row="2" column="2">
|
||||||
@ -3597,6 +3654,15 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:RollRatePID</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="3">
|
<item row="2" column="3">
|
||||||
@ -3631,6 +3697,15 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchRatePID</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="4">
|
<item row="2" column="4">
|
||||||
@ -3653,6 +3728,15 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchRatePID</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="5">
|
<item row="2" column="5">
|
||||||
@ -3687,6 +3771,15 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawRatePID</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="6">
|
<item row="2" column="6">
|
||||||
@ -3709,6 +3802,15 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawRatePID</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>scale:0.0001</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@ -6575,6 +6677,16 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:RollPI</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="3">
|
<item row="1" column="3">
|
||||||
@ -6609,6 +6721,16 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchPI</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
@ -6631,6 +6753,16 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchPI</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="5">
|
<item row="1" column="5">
|
||||||
@ -6665,6 +6797,16 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawPI</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="6">
|
<item row="1" column="6">
|
||||||
@ -6687,6 +6829,16 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawPI</string>
|
||||||
|
<string>element:Kp</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
@ -6740,6 +6892,16 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:RollPI</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2">
|
<item row="2" column="2">
|
||||||
@ -6762,6 +6924,16 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:RollPI</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="3">
|
<item row="2" column="3">
|
||||||
@ -6796,6 +6968,16 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchPI</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="4">
|
<item row="2" column="4">
|
||||||
@ -6818,6 +7000,16 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:PitchPI</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="5">
|
<item row="2" column="5">
|
||||||
@ -6852,6 +7044,16 @@ border-radius: 5;</string>
|
|||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>25</number>
|
<number>25</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawPI</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="6">
|
<item row="2" column="6">
|
||||||
@ -6874,6 +7076,16 @@ border-radius: 5;</string>
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="objrelation" stdset="0">
|
||||||
|
<stringlist>
|
||||||
|
<string>objname:StabilizationSettings</string>
|
||||||
|
<string>fieldname:YawPI</string>
|
||||||
|
<string>element:Ki</string>
|
||||||
|
<string>scale:0.1</string>
|
||||||
|
<string>haslimits:yes</string>
|
||||||
|
<string>buttongroup:2</string>
|
||||||
|
</stringlist>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@ -11222,7 +11434,7 @@ border-radius: 4;
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>626</width>
|
<width>431</width>
|
||||||
<height>828</height>
|
<height>828</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -102,7 +102,7 @@ void UAVObjectField::limitsInitialize(const QString &limits)
|
|||||||
/// (VALX)->value
|
/// (VALX)->value
|
||||||
/// %TY:VAL1:VAL2:VAL3,%TY,VAL1,VAL2,VAL3
|
/// %TY:VAL1:VAL2:VAL3,%TY,VAL1,VAL2,VAL3
|
||||||
/// example: first element bigger than 3 and second element inside [2.3,5]
|
/// example: first element bigger than 3 and second element inside [2.3,5]
|
||||||
/// "%0BI:3,%1BE:2.3:5"
|
/// "0BI:3,%1BE:2.3:5"
|
||||||
if(limits.isEmpty())
|
if(limits.isEmpty())
|
||||||
return;
|
return;
|
||||||
QStringList stringPerElement=limits.split(",");
|
QStringList stringPerElement=limits.split(",");
|
||||||
@ -160,9 +160,9 @@ void UAVObjectField::limitsInitialize(const QString &limits)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!valuesPerElement.at(0).startsWith("%"))
|
if(!valuesPerElement.at(0).isEmpty() && !b1)
|
||||||
qDebug()<<"limits parsing failed (property doesn't start with %) on UAVObjectField"<<name;
|
qDebug()<<"limits parsing failed (property doesn't start with %) on UAVObjectField"<<name;
|
||||||
else if(index>=numElements)
|
else if(!b2)
|
||||||
qDebug()<<"limits parsing failed (index>numelements) on UAVObjectField"<<name<<"index"<<index<<"numElements"<<numElements;
|
qDebug()<<"limits parsing failed (index>numelements) on UAVObjectField"<<name<<"index"<<index<<"numElements"<<numElements;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,9 +61,12 @@ void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString fiel
|
|||||||
UAVObject *obj=objManager->getObject(QString(object));
|
UAVObject *obj=objManager->getObject(QString(object));
|
||||||
Q_ASSERT(obj);
|
Q_ASSERT(obj);
|
||||||
UAVObjectField *_field;
|
UAVObjectField *_field;
|
||||||
|
int index=0;
|
||||||
if(!field.isEmpty() && obj)
|
if(!field.isEmpty() && obj)
|
||||||
|
{
|
||||||
_field = obj->getField(QString(field));
|
_field = obj->getField(QString(field));
|
||||||
int index=_field->getElementNames().indexOf(QString(element));
|
index=_field->getElementNames().indexOf(QString(element));
|
||||||
|
}
|
||||||
addUAVObjectToWidgetRelation(object, field, widget,index,scale,isLimited,defaultReloadGroups);
|
addUAVObjectToWidgetRelation(object, field, widget,index,scale,isLimited,defaultReloadGroups);
|
||||||
}
|
}
|
||||||
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget, int index,double scale,bool isLimited,QList<int>* defaultReloadGroups)
|
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget, int index,double scale,bool isLimited,QList<int>* defaultReloadGroups)
|
||||||
@ -287,14 +290,16 @@ void ConfigTaskWidget::widgetsContentsChanged()
|
|||||||
if(oTw->widget!=(QWidget *)sender())
|
if(oTw->widget!=(QWidget *)sender())
|
||||||
{
|
{
|
||||||
checkWidgetsLimits(oTw->widget,oTw->field,oTw->index,oTw->isLimited,getVariantFromWidget((QWidget*)sender(),scale),oTw->scale);
|
checkWidgetsLimits(oTw->widget,oTw->field,oTw->index,oTw->isLimited,getVariantFromWidget((QWidget*)sender(),scale),oTw->scale);
|
||||||
setWidgetFromVariant(oTw->widget,getVariantFromWidget((QWidget*)sender(),scale),oTw->scale);
|
setWidgetFromVariant(oTw->widget,getVariantFromWidget((QWidget*)sender(),scale),oTw->scale);
|
||||||
}
|
}
|
||||||
foreach (shadow * sh, oTw->shadowsList)
|
foreach (shadow * sh, oTw->shadowsList)
|
||||||
{
|
{
|
||||||
if(sh->widget!=(QWidget*)sender())
|
if(sh->widget!=(QWidget*)sender())
|
||||||
{
|
{
|
||||||
checkWidgetsLimits(sh->widget,oTw->field,oTw->index,sh->isLimited,getVariantFromWidget((QWidget*)sender(),scale),oTw->scale);
|
checkWidgetsLimits(sh->widget,oTw->field,oTw->index,sh->isLimited,getVariantFromWidget((QWidget*)sender(),scale),oTw->scale);
|
||||||
|
disconnectWidgetUpdatesToSlot((QWidget*)sender(),SLOT(widgetsContentsChanged()));
|
||||||
setWidgetFromVariant(sh->widget,getVariantFromWidget((QWidget*)sender(),scale),sh->scale);
|
setWidgetFromVariant(sh->widget,getVariantFromWidget((QWidget*)sender(),scale),sh->scale);
|
||||||
|
connectWidgetUpdatesToSlot((QWidget*)sender(),SLOT(widgetsContentsChanged()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -402,12 +407,26 @@ bool ConfigTaskWidget::addShadowWidget(QString object, QString field, QWidget *w
|
|||||||
continue;
|
continue;
|
||||||
if(oTw->object->getName()==object && oTw->field->getName()==field && oTw->index==index)
|
if(oTw->object->getName()==object && oTw->field->getName()==field && oTw->index==index)
|
||||||
{
|
{
|
||||||
shadow * sh=new shadow;
|
shadow * sh=NULL;
|
||||||
sh->isLimited=isLimited;
|
if(qobject_cast<QLabel *>(oTw->widget) && !qobject_cast<QLabel *>(widget))
|
||||||
sh->scale=scale;
|
{
|
||||||
sh->widget=widget;
|
sh=new shadow;
|
||||||
|
sh->isLimited=oTw->isLimited;
|
||||||
|
sh->scale=oTw->scale;
|
||||||
|
sh->widget=oTw->widget;
|
||||||
|
oTw->isLimited=isLimited;
|
||||||
|
oTw->scale=scale;
|
||||||
|
oTw->widget=widget;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sh=new shadow;
|
||||||
|
sh->isLimited=isLimited;
|
||||||
|
sh->scale=scale;
|
||||||
|
sh->widget=widget;
|
||||||
|
}
|
||||||
oTw->shadowsList.append(sh);
|
oTw->shadowsList.append(sh);
|
||||||
shadowsList.insert(widget,oTw);
|
shadowsList.insert(sh->widget,oTw);
|
||||||
connectWidgetUpdatesToSlot(widget,SLOT(widgetsContentsChanged()));
|
connectWidgetUpdatesToSlot(widget,SLOT(widgetsContentsChanged()));
|
||||||
if(defaultReloadGroups)
|
if(defaultReloadGroups)
|
||||||
addWidgetToDefaultReloadGroups(widget,defaultReloadGroups);
|
addWidgetToDefaultReloadGroups(widget,defaultReloadGroups);
|
||||||
@ -516,6 +535,7 @@ void ConfigTaskWidget::autoLoadWidgets()
|
|||||||
}
|
}
|
||||||
if(saveButtonWidget && applyButtonWidget)
|
if(saveButtonWidget && applyButtonWidget)
|
||||||
addApplySaveButtons(applyButtonWidget,saveButtonWidget);
|
addApplySaveButtons(applyButtonWidget,saveButtonWidget);
|
||||||
|
refreshWidgetsValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigTaskWidget::addWidgetToDefaultReloadGroups(QWidget *widget, QList<int> * groups)
|
void ConfigTaskWidget::addWidgetToDefaultReloadGroups(QWidget *widget, QList<int> * groups)
|
||||||
@ -616,7 +636,7 @@ void ConfigTaskWidget::connectWidgetUpdatesToSlot(QWidget * widget,const char* f
|
|||||||
}
|
}
|
||||||
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
||||||
{
|
{
|
||||||
connect(cb,SIGNAL(sliderMoved(int)),this,function);
|
connect(cb,SIGNAL(valueChanged(int)),this,function);
|
||||||
}
|
}
|
||||||
else if(MixerCurveWidget * cb=qobject_cast<MixerCurveWidget *>(widget))
|
else if(MixerCurveWidget * cb=qobject_cast<MixerCurveWidget *>(widget))
|
||||||
{
|
{
|
||||||
@ -646,7 +666,46 @@ void ConfigTaskWidget::connectWidgetUpdatesToSlot(QWidget * widget,const char* f
|
|||||||
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
void ConfigTaskWidget::disconnectWidgetUpdatesToSlot(QWidget * widget,const char* function)
|
||||||
|
{
|
||||||
|
if(!widget)
|
||||||
|
return;
|
||||||
|
if(QComboBox * cb=qobject_cast<QComboBox *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(currentIndexChanged(int)),this,function);
|
||||||
|
}
|
||||||
|
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(valueChanged(int)),this,function);
|
||||||
|
}
|
||||||
|
else if(MixerCurveWidget * cb=qobject_cast<MixerCurveWidget *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(curveUpdated(QList<double>,double)),this,function);
|
||||||
|
}
|
||||||
|
else if(QTableWidget * cb=qobject_cast<QTableWidget *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(cellChanged(int,int)),this,function);
|
||||||
|
}
|
||||||
|
else if(QSpinBox * cb=qobject_cast<QSpinBox *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(valueChanged(int)),this,function);
|
||||||
|
}
|
||||||
|
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(valueChanged(double)),this,function);
|
||||||
|
}
|
||||||
|
else if(QCheckBox * cb=qobject_cast<QCheckBox *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(clicked()),this,function);
|
||||||
|
}
|
||||||
|
else if(QPushButton * cb=qobject_cast<QPushButton *>(widget))
|
||||||
|
{
|
||||||
|
disconnect(cb,SIGNAL(clicked()),this,function);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
||||||
|
|
||||||
|
}
|
||||||
bool ConfigTaskWidget::setFieldFromWidget(QWidget * widget,UAVObjectField * field,int index,double scale)
|
bool ConfigTaskWidget::setFieldFromWidget(QWidget * widget,UAVObjectField * field,int index,double scale)
|
||||||
{
|
{
|
||||||
if(!widget || !field)
|
if(!widget || !field)
|
||||||
@ -668,10 +727,6 @@ QVariant ConfigTaskWidget::getVariantFromWidget(QWidget * widget,double scale)
|
|||||||
{
|
{
|
||||||
return (QString)cb->currentText();
|
return (QString)cb->currentText();
|
||||||
}
|
}
|
||||||
else if(QLabel * cb=qobject_cast<QLabel *>(widget))
|
|
||||||
{
|
|
||||||
return (QString)cb->text();
|
|
||||||
}
|
|
||||||
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
|
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
|
||||||
{
|
{
|
||||||
return (double)(cb->value()* scale);
|
return (double)(cb->value()* scale);
|
||||||
@ -701,7 +756,11 @@ bool ConfigTaskWidget::setWidgetFromVariant(QWidget *widget, QVariant value, dou
|
|||||||
}
|
}
|
||||||
else if(QLabel * cb=qobject_cast<QLabel *>(widget))
|
else if(QLabel * cb=qobject_cast<QLabel *>(widget))
|
||||||
{
|
{
|
||||||
cb->setText(value.toString());
|
qDebug()<<"SETLABEL "<<value.toDouble()<<scale;
|
||||||
|
if(scale==0)
|
||||||
|
cb->setText(value.toString());
|
||||||
|
else
|
||||||
|
cb->setText(QString::number((value.toDouble()/scale)));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
|
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
|
||||||
@ -711,13 +770,13 @@ bool ConfigTaskWidget::setWidgetFromVariant(QWidget *widget, QVariant value, dou
|
|||||||
}
|
}
|
||||||
else if(QSpinBox * cb=qobject_cast<QSpinBox *>(widget))
|
else if(QSpinBox * cb=qobject_cast<QSpinBox *>(widget))
|
||||||
{
|
{
|
||||||
cb->setValue((int)(value.toDouble()/scale));
|
cb->setValue((int)qRound(value.toDouble()/scale));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
||||||
{
|
{
|
||||||
cb->setValue((int)(value.toDouble()/scale));
|
cb->setValue((int)qRound(value.toDouble()/scale));
|
||||||
qDebug()<<"SETVALUE widgetfromvariant"<<value.toDouble()<<"/"<<scale<<"="<<(int)(value.toDouble()/scale)<<"object"<<(quint32)cb;
|
qDebug()<<"SETVALUE widgetfromvariant"<<value.toDouble()<<"/"<<scale<<"="<<(int)qRound(value.toDouble()/scale)<<"object"<<(quint32)cb;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if(QCheckBox * cb=qobject_cast<QCheckBox *>(widget))
|
else if(QCheckBox * cb=qobject_cast<QCheckBox *>(widget))
|
||||||
@ -779,46 +838,43 @@ void ConfigTaskWidget::checkWidgetsLimits(QWidget * widget,UAVObjectField * fiel
|
|||||||
}
|
}
|
||||||
else if(QSpinBox * cb=qobject_cast<QSpinBox *>(widget))
|
else if(QSpinBox * cb=qobject_cast<QSpinBox *>(widget))
|
||||||
{
|
{
|
||||||
if((int)(value.toDouble()/scale)>cb->maximum())
|
if((int)qRound(value.toDouble()/scale)>cb->maximum())
|
||||||
{
|
{
|
||||||
cb->setMaximum((int)(value.toDouble()/scale));
|
cb->setMaximum((int)qRound(value.toDouble()/scale));
|
||||||
}
|
}
|
||||||
else if((int)(value.toDouble()/scale)<cb->minimum())
|
else if((int)qRound(value.toDouble()/scale)<cb->minimum())
|
||||||
{
|
{
|
||||||
cb->setMinimum((int)(value.toDouble()/scale));
|
cb->setMinimum((int)qRound(value.toDouble()/scale));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
||||||
{
|
{
|
||||||
if((int)(value.toDouble()/scale)>cb->maximum())
|
if((int)qRound(value.toDouble()/scale)>cb->maximum())
|
||||||
{
|
{
|
||||||
cb->setMaximum((int)(value.toDouble()/scale));
|
cb->setMaximum((int)qRound(value.toDouble()/scale));
|
||||||
}
|
}
|
||||||
else if((int)(value.toDouble()/scale)<cb->minimum())
|
else if((int)qRound(value.toDouble()/scale)<cb->minimum())
|
||||||
{
|
{
|
||||||
cb->setMinimum((int)(value.toDouble()/scale));
|
cb->setMinimum((int)qRound(value.toDouble()/scale));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(widget->property("wasOverLimits").isValid())
|
else if(widget->property("wasOverLimits").isValid())
|
||||||
{
|
{
|
||||||
qDebug()<<"1wasOverLimits";
|
|
||||||
if(widget->property("wasOverLimits").toBool())
|
if(widget->property("wasOverLimits").toBool())
|
||||||
{
|
{
|
||||||
qDebug()<<"2";
|
|
||||||
widget->setProperty("wasOverLimits",(bool)false);
|
widget->setProperty("wasOverLimits",(bool)false);
|
||||||
if(widget->property("styleBackup").isValid())
|
if(widget->property("styleBackup").isValid())
|
||||||
{
|
{
|
||||||
qDebug()<<"3";
|
|
||||||
QString style=widget->property("styleBackup").toString();
|
QString style=widget->property("styleBackup").toString();
|
||||||
qDebug()<<"STYLE"<<style;
|
|
||||||
widget->setStyleSheet(style);
|
widget->setStyleSheet(style);
|
||||||
}
|
}
|
||||||
loadWidgetLimits(widget,field,index,hasLimits,scale);
|
loadWidgetLimits(widget,field,index,hasLimits,scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigTaskWidget::loadWidgetLimits(QWidget * widget,UAVObjectField * field,int index,bool hasLimits,double scale)
|
void ConfigTaskWidget::loadWidgetLimits(QWidget * widget,UAVObjectField * field,int index,bool hasLimits,double scale)
|
||||||
{
|
{
|
||||||
if(!widget || !field)
|
if(!widget || !field)
|
||||||
@ -855,24 +911,24 @@ void ConfigTaskWidget::loadWidgetLimits(QWidget * widget,UAVObjectField * field,
|
|||||||
{
|
{
|
||||||
if(field->getMaxLimit(index).isValid())
|
if(field->getMaxLimit(index).isValid())
|
||||||
{
|
{
|
||||||
cb->setMaximum((int)(field->getMaxLimit(index).toDouble()/scale));
|
cb->setMaximum((int)qRound(field->getMaxLimit(index).toDouble()/scale));
|
||||||
}
|
}
|
||||||
if(field->getMinLimit(index).isValid())
|
if(field->getMinLimit(index).isValid())
|
||||||
{
|
{
|
||||||
cb->setMinimum((int)(field->getMinLimit(index).toDouble()/scale));
|
cb->setMinimum((int)qRound(field->getMinLimit(index).toDouble()/scale));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
||||||
{
|
{
|
||||||
if(field->getMaxLimit(index).isValid())
|
if(field->getMaxLimit(index).isValid())
|
||||||
{
|
{
|
||||||
cb->setMaximum((int)(field->getMaxLimit(index).toDouble()/scale));
|
cb->setMaximum((int)qRound(field->getMaxLimit(index).toDouble()/scale));
|
||||||
qDebug()<<"MAX="<<field->getMaxLimit(index).toDouble()<<"/"<<scale<<"="<<cb->maximum();
|
qDebug()<<"set MAX="<<field->getMaxLimit(index).toDouble()<<"/"<<scale<<"="<<cb->maximum();
|
||||||
}
|
}
|
||||||
if(field->getMinLimit(index).isValid())
|
if(field->getMinLimit(index).isValid())
|
||||||
{
|
{
|
||||||
cb->setMinimum((int)(field->getMinLimit(index).toDouble()/scale));
|
cb->setMinimum((int)(field->getMinLimit(index).toDouble()/scale));
|
||||||
qDebug()<<"MIN="<<field->getMinLimit(index).toDouble()<<"/"<<scale<<"="<<cb->minimum();
|
qDebug()<< "set MIN="<<field->getMinLimit(index).toDouble()<<"/"<<scale<<"="<<cb->minimum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,6 +145,7 @@ private:
|
|||||||
QVariant getVariantFromWidget(QWidget *widget, double scale);
|
QVariant getVariantFromWidget(QWidget *widget, double scale);
|
||||||
bool setWidgetFromVariant(QWidget *widget,QVariant value,double scale);
|
bool setWidgetFromVariant(QWidget *widget,QVariant value,double scale);
|
||||||
void connectWidgetUpdatesToSlot(QWidget *widget, const char *function);
|
void connectWidgetUpdatesToSlot(QWidget *widget, const char *function);
|
||||||
|
void disconnectWidgetUpdatesToSlot(QWidget *widget, const char *function);
|
||||||
void loadWidgetLimits(QWidget *widget, UAVObjectField *field, int index, bool hasLimits, double sclale);
|
void loadWidgetLimits(QWidget *widget, UAVObjectField *field, int index, bool hasLimits, double sclale);
|
||||||
QString outOfLimitsStyle;
|
QString outOfLimitsStyle;
|
||||||
protected slots:
|
protected slots:
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.002,0,0,0.3" limits="%BE:0:0.01,%BE:0:0.01,, "/>
|
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.002,0,0,0.3" limits="%BE:0:0.01,%BE:0:0.01,, "/>
|
||||||
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.002,0,0,0.3" limits="%BE:0:0.01,%BE:0:0.01,, "/>
|
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.002,0,0,0.3" limits="%BE:0:0.01,%BE:0:0.01,, "/>
|
||||||
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0035,0.0035,0,0.3" limits="%BE:0:0.01,%BE:0:0.01,, "/>
|
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0035,0.0035,0,0.3" limits="%BE:0:0.01,%BE:0:0.01,, "/>
|
||||||
<field name="RollPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2,0,50" limits="%BE:0:10,%BE:0:10,, "/>
|
<field name="RollPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2,0,50" limits="%BE:0:10,%BE:0:10,"/>
|
||||||
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2,0,50" limits="%BE:0:10,%BE:0:10,, "/>
|
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2,0,50" limits="%BE:0:10,%BE:0:10,"/>
|
||||||
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2,0,50" limits="%BE:0:10,%BE:0:10,, "/>
|
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2,0,50" limits="%BE:0:10,%BE:0:10,"/>
|
||||||
|
|
||||||
<field name="GyroTau" units="" type="float" elements="1" defaultvalue="0.005"/>
|
<field name="GyroTau" units="" type="float" elements="1" defaultvalue="0.005"/>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user