From 215e4b68bf017613257e8e982a2dbbb81fa1541d Mon Sep 17 00:00:00 2001 From: hm Date: Mon, 28 Mar 2022 16:25:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B4=E5=89=8D=E9=9C=80=E6=B1=82=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E5=85=A8=E9=83=A8=E5=81=9A=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/ComponentUI/Scope/Chart.cpp | 47 ++++++--- App/ComponentUI/Scope/Chart.h | 15 ++- App/ToolsUI/Senser/Senser.cpp | 33 +++++- App/ToolsUI/Senser/Senser.h | 7 +- App/ToolsUI/ServoSystem/ServoSystem.cpp | 46 ++++++--- App/ToolsUI/ServoSystem/ServoSystem.h | 5 + App/mainwindow.cpp | 130 +++++++++++++----------- 7 files changed, 189 insertions(+), 94 deletions(-) diff --git a/App/ComponentUI/Scope/Chart.cpp b/App/ComponentUI/Scope/Chart.cpp index 0f6773b..b6f83d8 100644 --- a/App/ComponentUI/Scope/Chart.cpp +++ b/App/ComponentUI/Scope/Chart.cpp @@ -453,6 +453,7 @@ bool Chart::addSeries(QString name = tr("new")) s->setName(name); s->setPointLabelsClipping(true); s->pen().setStyle(Qt::SolidLine); + s->pen().setColor(ColorMap::Color[ChannelIndex]); //s->append(timeseries,0); s->setUseOpenGL(isOpenGL); chart()->addSeries(s); @@ -460,7 +461,7 @@ bool Chart::addSeries(QString name = tr("new")) chart()->setAxisY(chart()->axisY(),s); ChannelIndex ++; - if(ChannelIndex >= 5) + if(ChannelIndex >= ColorMap::size()) { ChannelIndex = 0; } @@ -474,11 +475,6 @@ bool Chart::addSeries(QString name = tr("new")) bool Chart::addSeries(QString name = tr("new"), int index = 0) { - if(index >= 5) - { - int a = index/5; - ChannelIndex = index - a*5; - } //查找有没有这个名字的序列 bool isContain = false; @@ -498,14 +494,20 @@ bool Chart::addSeries(QString name = tr("new"), int index = 0) s->setName(name); s->setPointLabelsClipping(true); s->pen().setStyle(Qt::SolidLine); + s->pen().setColor(ColorMap::Color[ChannelIndex]); //s->append(timeseries,0); s->setUseOpenGL(isOpenGL); chart()->addSeries(s); chart()->setAxisX(chart()->axisX(),s); chart()->setAxisY(chart()->axisY(),s); + qDebug() << ChannelIndex << s->color().name() << ColorMap::Color[ChannelIndex].name(); + + connect(s,&QLineSeries::clicked, + this,&Chart::lineClicked); + ChannelIndex ++; - if(ChannelIndex >= 5) + if(ChannelIndex >= ColorMap::size()) { ChannelIndex = 0; } @@ -538,7 +540,7 @@ bool Chart::addSeries(QString name = tr("new"),QColor color = QColor("#FFFFFF"), s->setPointLabelsClipping(true); s->pen().setStyle(pen); - + s->pen().setColor(ColorMap::Color[ChannelIndex]); //s->append(timeseries,0); s->setUseOpenGL(isOpenGL); chart()->addSeries(s); @@ -546,7 +548,7 @@ bool Chart::addSeries(QString name = tr("new"),QColor color = QColor("#FFFFFF"), chart()->setAxisY(chart()->axisY(),s); ChannelIndex ++; - if(ChannelIndex >= 5) + if(ChannelIndex >= ColorMap::size()) { ChannelIndex = 0; } @@ -618,11 +620,6 @@ void Chart::setSerieData(QString name,QVariant data) { addSeries(name,ChannelIndex); - ChannelIndex ++; - if(ChannelIndex >= 5) - { - ChannelIndex = 0; - } QList slist = chart()->series(); for(QAbstractSeries *serie:slist) @@ -690,3 +687,25 @@ void Chart::removeAllSerie(void) update(); } +void Chart::lineClicked(const QPointF &point) +{ + qDebug() << "clicked"; + QObject *obj = sender(); + QLineSeries *s = qobject_cast(obj); + if(s) + { + s->pen().setWidth(10); + } +} + +void Chart::lineHover(const QPointF &point, bool state) +{ + QObject *obj = sender(); + QLineSeries *s = qobject_cast(obj); + if(s) + { + s->pen().setWidth(10); + qDebug() << "hover"; + } +} + diff --git a/App/ComponentUI/Scope/Chart.h b/App/ComponentUI/Scope/Chart.h index f17ebac..96b1d96 100644 --- a/App/ComponentUI/Scope/Chart.h +++ b/App/ComponentUI/Scope/Chart.h @@ -27,14 +27,21 @@ using namespace QtCharts; namespace ColorMap{ static QColor Color[6] = { - QColor(0,0,0), //黑 + QColor(1,1,1), //黑 QColor(255,0,0), //红 QColor(0,255,0), //绿 QColor(0,0,255), //蓝 QColor(255,191,0), //橙 QColor(255,0,255) //紫色 - }; + + +static int size() + { + return sizeof(Color)/sizeof(QColor); + } + + } @@ -114,6 +121,10 @@ public slots: void removeAllSerie(void); void setSerieData(QString name,QVariant data); + + void lineClicked(const QPointF &point); + void lineHover(const QPointF &point, bool state); + private: QGraphicsSimpleTextItem *m_coordItem; diff --git a/App/ToolsUI/Senser/Senser.cpp b/App/ToolsUI/Senser/Senser.cpp index 38f8c8e..bf6853f 100644 --- a/App/ToolsUI/Senser/Senser.cpp +++ b/App/ToolsUI/Senser/Senser.cpp @@ -124,7 +124,7 @@ Senser::Senser(QWidget *parent) : ItemModel->appendRow(item); ui->listView_Data->setModel(ItemModel); - + ui->listView_Data->hide(); } @@ -804,8 +804,35 @@ void Senser::setINSState(int source,int pos,state value) * */ - - +void Senser::setAttChart(QString name,QVariant data) +{ + attChart->setSerieData(name,data); +} + +void Senser::setGyroChart(QString name,QVariant data) +{ + gyroChart->setSerieData(name,data); +} + +void Senser::setAccChart(QString name,QVariant data) +{ + accChart->setSerieData(name,data); +} + +void Senser::setServoChart(QString name,QVariant data) +{ + servoChart->setSerieData(name,data); +} + +void Senser::setAltChart(QString name,QVariant data) +{ + altChart->setSerieData(name,data); +} + +void Senser::setSpeedChart(QString name,QVariant data) +{ + speedChart->setSerieData(name,data); +} diff --git a/App/ToolsUI/Senser/Senser.h b/App/ToolsUI/Senser/Senser.h index be33205..983acf4 100644 --- a/App/ToolsUI/Senser/Senser.h +++ b/App/ToolsUI/Senser/Senser.h @@ -64,7 +64,12 @@ public: Chart *altChart = nullptr; - + void setAttChart(QString name,QVariant data); + void setGyroChart(QString name,QVariant data); + void setAccChart(QString name,QVariant data); + void setServoChart(QString name,QVariant data); + void setAltChart(QString name,QVariant data); + void setSpeedChart(QString name,QVariant data); private slots: diff --git a/App/ToolsUI/ServoSystem/ServoSystem.cpp b/App/ToolsUI/ServoSystem/ServoSystem.cpp index fee3f63..8d2b21f 100644 --- a/App/ToolsUI/ServoSystem/ServoSystem.cpp +++ b/App/ToolsUI/ServoSystem/ServoSystem.cpp @@ -210,6 +210,38 @@ void ServoSystem::setValue(QLabel *w,QString s) w->setText(s); } +void ServoSystem::setServoOffset(QVariant dirla, QVariant dirra, QVariant dirle, QVariant dirre, QVariant dirru, + QVariant maxla, QVariant maxra, QVariant maxle, QVariant maxre, QVariant maxru, + QVariant scalela, QVariant scalera, QVariant scalele, QVariant scalere, QVariant scaleru, + QVariant la, QVariant ra,QVariant le, QVariant re,QVariant ru) +{ + dir_la = dirla; + dir_ra = dirra; + dir_le = dirle; + dir_re = dirre; + dir_ru = dirru; + + max_la = maxla; + max_ra = maxra; + max_le = maxle; + max_re = maxre; + max_ru = maxru; + + scale_la = scalela; + scale_ra = scalera; + scale_le = scalele; + scale_re = scalere; + scale_ru = scaleru; + + bias_la = la; + bias_ra = ra; + bias_le = le; + bias_re = re; + bias_ru = ru; +} + + + void ServoSystem::setBUMState(mavlink_bmustate_t *t) { ui->label_temp_28->setText(QString::number((int16_t)t->BAT1_low_temp_degC)+ "/" + QString::number((int16_t)t->BAT1_hi_temp_degC)); @@ -276,20 +308,6 @@ void ServoSystem::setCheckState(uint32_t pos,QVariant value) void ServoSystem::setServoState(mavlink_servo_output_raw_t *t) { - - /* - statusui->setServo(1,QString::number( ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo14_raw)/32767.0 * 35.0 - m_la,'f',2), - QString::number( ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo4_raw) /32767.0 * 35.0 - m_la,'f',2)); - statusui->setServo(2,QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo11_raw)/32767.0 * 35.0 - m_ra,'f',2), - QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo5_raw) /32767.0 * 35.0 - m_ra,'f',2)); - statusui->setServo(3,QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo15_raw)/32767.0 * 25.0 - m_le,'f',2), - QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo1_raw) /32767.0 * 25.0 - m_le,'f',2)); - statusui->setServo(4,QString::number( ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo12_raw)/32767.0 * 25.0 - m_re,'f',2), - QString::number( ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo2_raw) /32767.0 * 25.0 - m_re,'f',2)); - statusui->setServo(5,QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo13_raw)/32767.0 * 25.0 - m_ru,'f',2), - QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo3_raw) /32767.0 * 25.0 - m_ru,'f',2)); - */ - ui->label_rud_curr->setText( QString::number(dir_ru.toInt() * ((int16_t)t->servo13_raw)/32767.0 * max_ru.toDouble()/scale_ru.toDouble() - bias_ru.toDouble(),'f',2)); ui->label_ele_l_curr->setText(QString::number(dir_le.toInt() * ((int16_t)t->servo15_raw)/32767.0 * max_le.toDouble()/scale_le.toDouble() - bias_le.toDouble(),'f',2)); ui->label_ele_r_curr->setText(QString::number(dir_re.toInt() * ((int16_t)t->servo12_raw)/32767.0 * max_re.toDouble()/scale_re.toDouble() - bias_re.toDouble(),'f',2)); diff --git a/App/ToolsUI/ServoSystem/ServoSystem.h b/App/ToolsUI/ServoSystem/ServoSystem.h index 914dbe7..98e3c7b 100644 --- a/App/ToolsUI/ServoSystem/ServoSystem.h +++ b/App/ToolsUI/ServoSystem/ServoSystem.h @@ -156,6 +156,11 @@ public slots: void setAPversion(QString ver); void setHILMode(QString mode); + void setServoOffset(QVariant dirla, QVariant dirra, QVariant dirle, QVariant dirre, QVariant dirru, + QVariant maxla, QVariant maxra, QVariant maxle, QVariant maxre, QVariant maxru, + QVariant scalela, QVariant scalera, QVariant scalele, QVariant scalere, QVariant scaleru, + QVariant la, QVariant ra,QVariant le, QVariant re,QVariant ru); + private: QWidget *m_parent; diff --git a/App/mainwindow.cpp b/App/mainwindow.cpp index d2bdbab..6210ea5 100644 --- a/App/mainwindow.cpp +++ b/App/mainwindow.cpp @@ -422,6 +422,9 @@ MainWindow::MainWindow(QWidget *parent) connect(setting->index1->paramInspect,SIGNAL(APversion(QString)), toolsui->servosystem,SLOT(setAPversion(QString))); + connect(setting->index0->globalsetting,&GlobalSetting::setServo, + toolsui->servosystem,&ServoSystem::setServoOffset); + //==== showmessage===== connect(toolsui->servosystem,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int))); @@ -443,7 +446,7 @@ MainWindow::MainWindow(QWidget *parent) qDebug() << "OpenSSL支持情况:" << QSslSocket::supportsSsl(); showMessage("SslSocket库版本:" + QSslSocket::sslLibraryBuildVersionString()); - showMessage((QSslSocket::supportsSsl())?("OpenSSL:支持"):("OpenSSL:不支持")); + showMessage((QSslSocket::supportsSsl())?("OpenSSL:支持"):("OpenSSL:不支持,地图缓存可能会受到影响")); @@ -719,43 +722,6 @@ void MainWindow::keyPressEvent(QKeyEvent *event) //键盘按下事件 bool MainWindow::event(QEvent *event) { - /* - switch (event->type()) { - case QEvent::TouchBegin: - case QEvent::TouchUpdate: - case QEvent::TouchEnd: - { - qDebug() <<"CProjectionPicture::event"; - QTouchEvent *touchEvent = static_cast(event); - QList touchPoints = touchEvent->touchPoints(); - if (touchPoints.count() == 2) { - //m_bIsTwoPoint = true;//两指时不让移动 - const QTouchEvent::TouchPoint &touchPoint0 = touchPoints.first(); - const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last(); - qreal currentScaleFactor = - QLineF(touchPoint0.pos(), touchPoint1.pos()).length() - / QLineF(touchPoint0.startPos(), touchPoint1.startPos()).length(); - - if (touchEvent->touchPointStates() & Qt::TouchPointReleased) { - if(QLineF(touchPoint0.pos(), touchPoint1.pos()).length() > QLineF(touchPoint0.startPos(), touchPoint1.startPos()).length()) - map->SetZoom(map->ZoomReal() + currentScaleFactor); - else if(QLineF(touchPoint0.pos(), touchPoint1.pos()).length() < QLineF(touchPoint0.startPos(), touchPoint1.startPos()).length()) - map->SetZoom(map->ZoomReal() - currentScaleFactor); - qDebug() << "currentScaleFactor" << currentScaleFactor; - } - - update(); - } - else if(touchPoints.count() == 1){ - //m_bIsTwoPoint = false; - } - return true; - } - default: - break; - } - */ - return QWidget::event(event); } @@ -1347,6 +1313,7 @@ void MainWindow::updateUI()//事件驱动式更新数据 QString::number(dlink->mavlinknode->vehicle.ccmstate.fuel_level * 10.0 / 65536.0f,'f',1)); toolsui->servosystem->setBUMState(&dlink->mavlinknode->vehicle.bmustate); + //在这里设置 toolsui->servosystem->setServoState(&dlink->mavlinknode->vehicle.servo_output_raw); @@ -1650,32 +1617,75 @@ void MainWindow::updateUI()//事件驱动式更新数据 + if(toolsui->senser) + { + toolsui->senser->setAltChart("GPS海拔",dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4); - statusui->setServo(1,QString::number(dir_la.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo14_raw)/32767.0 * max_la.toDouble()/scale_la.toDouble() - bias_la.toDouble(),'f',2), - QString::number(dir_la.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo4_raw) /32767.0 * max_la.toDouble()/scale_la.toDouble() - bias_la.toDouble(),'f',2)); - statusui->setServo(2,QString::number(dir_ra.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo11_raw)/32767.0 * max_ra.toDouble()/scale_ra.toDouble() - bias_ra.toDouble(),'f',2), - QString::number(dir_ra.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo5_raw) /32767.0 * max_ra.toDouble()/scale_ra.toDouble() - bias_ra.toDouble(),'f',2)); - statusui->setServo(3,QString::number(dir_le.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo15_raw)/32767.0 * max_le.toDouble()/scale_le.toDouble() - bias_le.toDouble(),'f',2), - QString::number(dir_le.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo1_raw) /32767.0 * max_le.toDouble()/scale_le.toDouble() - bias_le.toDouble(),'f',2)); - statusui->setServo(4,QString::number(dir_re.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo12_raw)/32767.0 * max_re.toDouble()/scale_re.toDouble() - bias_re.toDouble(),'f',2), - QString::number(dir_re.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo2_raw) /32767.0 * max_re.toDouble()/scale_re.toDouble() - bias_re.toDouble(),'f',2)); - statusui->setServo(5,QString::number(dir_ru.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo13_raw)/32767.0 * max_ru.toDouble()/scale_ru.toDouble() - bias_ru.toDouble(),'f',2), - QString::number(dir_ru.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo3_raw) /32767.0 * max_ru.toDouble()/scale_ru.toDouble() - bias_ru.toDouble(),'f',2)); + toolsui->senser->setAttChart("内置俯仰",dlink->mavlinknode->vehicle.ins1.pitch); + toolsui->senser->setAttChart("外置俯仰",dlink->mavlinknode->vehicle.ins2.pitch); + toolsui->senser->setAttChart("内置滚转",dlink->mavlinknode->vehicle.ins1.roll); + toolsui->senser->setAttChart("外置滚转",dlink->mavlinknode->vehicle.ins2.roll); -/* - statusui->setServo(1,QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo14_raw), - QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo4_raw)); - statusui->setServo(2,QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo11_raw), - QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo5_raw)); - statusui->setServo(3,QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo15_raw), - QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo1_raw)); - statusui->setServo(4,QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo12_raw), - QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo2_raw)); - statusui->setServo(5,QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo13_raw), - QString::number((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo3_raw)); -*/ + toolsui->senser->setGyroChart("内置gx",dlink->mavlinknode->vehicle.ins1.gx); + toolsui->senser->setGyroChart("外置gx",dlink->mavlinknode->vehicle.ins2.gx); + toolsui->senser->setGyroChart("内置gy",dlink->mavlinknode->vehicle.ins1.gy); + toolsui->senser->setGyroChart("外置gy",dlink->mavlinknode->vehicle.ins2.gy); + toolsui->senser->setGyroChart("内置gz",dlink->mavlinknode->vehicle.ins1.gz); + toolsui->senser->setGyroChart("外置gz",dlink->mavlinknode->vehicle.ins2.gz); + toolsui->senser->setAccChart("内置ax",dlink->mavlinknode->vehicle.ins1.ax); + toolsui->senser->setAccChart("外置ax",dlink->mavlinknode->vehicle.ins2.ax); + toolsui->senser->setAccChart("内置ay",dlink->mavlinknode->vehicle.ins1.ay); + toolsui->senser->setAccChart("外置ay",dlink->mavlinknode->vehicle.ins2.ay); + toolsui->senser->setAccChart("内置az",dlink->mavlinknode->vehicle.ins1.az); + toolsui->senser->setAccChart("外置az",dlink->mavlinknode->vehicle.ins2.az); + + toolsui->senser->setSpeedChart("真空速",dlink->mavlinknode->vehicle.emb_atom_com.Airspeed); + toolsui->senser->setSpeedChart("表速",dlink->mavlinknode->vehicle.vfr_hud.airspeed); + toolsui->senser->setSpeedChart("地速",dlink->mavlinknode->vehicle.gps_raw_int.vel * 10e-3); + + } + + + qreal la_command = dir_la.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo14_raw)/32767.0 * max_la.toDouble()/scale_la.toDouble() - bias_la.toDouble(); + qreal la_angle = dir_la.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo4_raw) /32767.0 * max_la.toDouble()/scale_la.toDouble() - bias_la.toDouble(); + qreal ra_command = dir_ra.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo11_raw)/32767.0 * max_ra.toDouble()/scale_ra.toDouble() - bias_ra.toDouble(); + qreal ra_angle = dir_ra.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo5_raw)/ 32767.0 * max_ra.toDouble()/scale_ra.toDouble() - bias_ra.toDouble(); + + qreal le_command = dir_le.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo15_raw)/32767.0 * max_le.toDouble()/scale_le.toDouble() - bias_le.toDouble(); + qreal le_angle = dir_le.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo1_raw) /32767.0 * max_le.toDouble()/scale_le.toDouble() - bias_le.toDouble(); + qreal re_command = dir_re.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo12_raw)/32767.0 * max_re.toDouble()/scale_re.toDouble() - bias_re.toDouble(); + qreal re_angle = dir_re.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo2_raw) /32767.0 * max_re.toDouble()/scale_re.toDouble() - bias_re.toDouble(); + + qreal ru_command = dir_ru.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo13_raw)/32767.0 * max_ru.toDouble()/scale_ru.toDouble() - bias_ru.toDouble(); + qreal ru_angle = dir_ru.toInt() * ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo3_raw) /32767.0 * max_ru.toDouble()/scale_ru.toDouble() - bias_ru.toDouble(); + + + statusui->setServo(1,QString::number(la_command,'f',2), + QString::number(la_angle,'f',2)); + statusui->setServo(2,QString::number(ra_command,'f',2), + QString::number(ra_angle,'f',2)); + statusui->setServo(3,QString::number(le_command,'f',2), + QString::number(le_angle,'f',2)); + statusui->setServo(4,QString::number(re_command,'f',2), + QString::number(re_angle,'f',2)); + statusui->setServo(5,QString::number(ru_command,'f',2), + QString::number(ru_angle,'f',2)); + + if(toolsui->senser) + { + toolsui->senser->setServoChart("左副翼指令",la_angle); + toolsui->senser->setServoChart("左副翼角度",la_command); + toolsui->senser->setServoChart("右副翼指令",ra_angle); + toolsui->senser->setServoChart("右副翼角度",ra_command); + toolsui->senser->setServoChart("左升降指令",le_angle); + toolsui->senser->setServoChart("左升降角度",le_command); + toolsui->senser->setServoChart("右升降指令",re_angle); + toolsui->senser->setServoChart("右升降角度",re_command); + toolsui->senser->setServoChart("方向舵指令",ru_angle); + toolsui->senser->setServoChart("方向舵角度",ru_command); + } statusui->setEngine(1,QString::number((dlink->mavlinknode->vehicle.servo_output_raw.servo6_raw - 1000) * 0.1,'f',0),