mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +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">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>51</number>
|
||||
</property>
|
||||
<property name="sliderPosition">
|
||||
<number>50</number>
|
||||
<number>51</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
@ -3410,6 +3413,15 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
@ -3444,6 +3456,15 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
@ -3466,6 +3487,15 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
@ -3500,6 +3530,15 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
@ -3522,6 +3561,15 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
@ -3575,6 +3623,15 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
@ -3597,6 +3654,15 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
@ -3631,6 +3697,15 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
@ -3653,6 +3728,15 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
@ -3687,6 +3771,15 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="6">
|
||||
@ -3709,6 +3802,15 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
</layout>
|
||||
@ -6575,6 +6677,16 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
@ -6609,6 +6721,16 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
@ -6631,6 +6753,16 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
@ -6665,6 +6797,16 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
@ -6687,6 +6829,16 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
@ -6740,6 +6892,16 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
@ -6762,6 +6924,16 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
@ -6796,6 +6968,16 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
@ -6818,6 +7000,16 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
@ -6852,6 +7044,16 @@ border-radius: 5;</string>
|
||||
<property name="tickInterval">
|
||||
<number>25</number>
|
||||
</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>
|
||||
</item>
|
||||
<item row="2" column="6">
|
||||
@ -6874,6 +7076,16 @@ border-radius: 5;</string>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</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>
|
||||
</item>
|
||||
</layout>
|
||||
@ -11222,7 +11434,7 @@ border-radius: 4;
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>626</width>
|
||||
<width>431</width>
|
||||
<height>828</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -102,7 +102,7 @@ void UAVObjectField::limitsInitialize(const QString &limits)
|
||||
/// (VALX)->value
|
||||
/// %TY:VAL1:VAL2:VAL3,%TY,VAL1,VAL2,VAL3
|
||||
/// 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())
|
||||
return;
|
||||
QStringList stringPerElement=limits.split(",");
|
||||
@ -160,9 +160,9 @@ void UAVObjectField::limitsInitialize(const QString &limits)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!valuesPerElement.at(0).startsWith("%"))
|
||||
if(!valuesPerElement.at(0).isEmpty() && !b1)
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -61,9 +61,12 @@ void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString fiel
|
||||
UAVObject *obj=objManager->getObject(QString(object));
|
||||
Q_ASSERT(obj);
|
||||
UAVObjectField *_field;
|
||||
int index=0;
|
||||
if(!field.isEmpty() && obj)
|
||||
{
|
||||
_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);
|
||||
}
|
||||
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())
|
||||
{
|
||||
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)
|
||||
{
|
||||
if(sh->widget!=(QWidget*)sender())
|
||||
{
|
||||
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);
|
||||
connectWidgetUpdatesToSlot((QWidget*)sender(),SLOT(widgetsContentsChanged()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -402,12 +407,26 @@ bool ConfigTaskWidget::addShadowWidget(QString object, QString field, QWidget *w
|
||||
continue;
|
||||
if(oTw->object->getName()==object && oTw->field->getName()==field && oTw->index==index)
|
||||
{
|
||||
shadow * sh=new shadow;
|
||||
sh->isLimited=isLimited;
|
||||
sh->scale=scale;
|
||||
sh->widget=widget;
|
||||
shadow * sh=NULL;
|
||||
if(qobject_cast<QLabel *>(oTw->widget) && !qobject_cast<QLabel *>(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);
|
||||
shadowsList.insert(widget,oTw);
|
||||
shadowsList.insert(sh->widget,oTw);
|
||||
connectWidgetUpdatesToSlot(widget,SLOT(widgetsContentsChanged()));
|
||||
if(defaultReloadGroups)
|
||||
addWidgetToDefaultReloadGroups(widget,defaultReloadGroups);
|
||||
@ -516,6 +535,7 @@ void ConfigTaskWidget::autoLoadWidgets()
|
||||
}
|
||||
if(saveButtonWidget && applyButtonWidget)
|
||||
addApplySaveButtons(applyButtonWidget,saveButtonWidget);
|
||||
refreshWidgetsValues();
|
||||
}
|
||||
|
||||
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))
|
||||
{
|
||||
connect(cb,SIGNAL(sliderMoved(int)),this,function);
|
||||
connect(cb,SIGNAL(valueChanged(int)),this,function);
|
||||
}
|
||||
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();
|
||||
|
||||
}
|
||||
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)
|
||||
{
|
||||
if(!widget || !field)
|
||||
@ -668,10 +727,6 @@ QVariant ConfigTaskWidget::getVariantFromWidget(QWidget * widget,double scale)
|
||||
{
|
||||
return (QString)cb->currentText();
|
||||
}
|
||||
else if(QLabel * cb=qobject_cast<QLabel *>(widget))
|
||||
{
|
||||
return (QString)cb->text();
|
||||
}
|
||||
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
|
||||
{
|
||||
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))
|
||||
{
|
||||
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;
|
||||
}
|
||||
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))
|
||||
{
|
||||
cb->setValue((int)(value.toDouble()/scale));
|
||||
cb->setValue((int)qRound(value.toDouble()/scale));
|
||||
return true;
|
||||
}
|
||||
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
|
||||
{
|
||||
cb->setValue((int)(value.toDouble()/scale));
|
||||
qDebug()<<"SETVALUE widgetfromvariant"<<value.toDouble()<<"/"<<scale<<"="<<(int)(value.toDouble()/scale)<<"object"<<(quint32)cb;
|
||||
cb->setValue((int)qRound(value.toDouble()/scale));
|
||||
qDebug()<<"SETVALUE widgetfromvariant"<<value.toDouble()<<"/"<<scale<<"="<<(int)qRound(value.toDouble()/scale)<<"object"<<(quint32)cb;
|
||||
return true;
|
||||
}
|
||||
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))
|
||||
{
|
||||
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))
|
||||
{
|
||||
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())
|
||||
{
|
||||
qDebug()<<"1wasOverLimits";
|
||||
if(widget->property("wasOverLimits").toBool())
|
||||
{
|
||||
qDebug()<<"2";
|
||||
widget->setProperty("wasOverLimits",(bool)false);
|
||||
if(widget->property("styleBackup").isValid())
|
||||
{
|
||||
qDebug()<<"3";
|
||||
QString style=widget->property("styleBackup").toString();
|
||||
qDebug()<<"STYLE"<<style;
|
||||
widget->setStyleSheet(style);
|
||||
}
|
||||
loadWidgetLimits(widget,field,index,hasLimits,scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigTaskWidget::loadWidgetLimits(QWidget * widget,UAVObjectField * field,int index,bool hasLimits,double scale)
|
||||
{
|
||||
if(!widget || !field)
|
||||
@ -855,24 +911,24 @@ void ConfigTaskWidget::loadWidgetLimits(QWidget * widget,UAVObjectField * field,
|
||||
{
|
||||
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())
|
||||
{
|
||||
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))
|
||||
{
|
||||
if(field->getMaxLimit(index).isValid())
|
||||
{
|
||||
cb->setMaximum((int)(field->getMaxLimit(index).toDouble()/scale));
|
||||
qDebug()<<"MAX="<<field->getMaxLimit(index).toDouble()<<"/"<<scale<<"="<<cb->maximum();
|
||||
cb->setMaximum((int)qRound(field->getMaxLimit(index).toDouble()/scale));
|
||||
qDebug()<<"set MAX="<<field->getMaxLimit(index).toDouble()<<"/"<<scale<<"="<<cb->maximum();
|
||||
}
|
||||
if(field->getMinLimit(index).isValid())
|
||||
{
|
||||
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);
|
||||
bool setWidgetFromVariant(QWidget *widget,QVariant value,double scale);
|
||||
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);
|
||||
QString outOfLimitsStyle;
|
||||
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="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="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="YawPI" 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="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"/>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user