diff --git a/App/MissionUI/MissionUI.cpp b/App/MissionUI/MissionUI.cpp index 91e33da..5b59a90 100644 --- a/App/MissionUI/MissionUI.cpp +++ b/App/MissionUI/MissionUI.cpp @@ -17,11 +17,6 @@ MissionUI::MissionUI(QWidget *parent) : this->setStyleSheet(stylesheet); file.close(); - //this->setFocus(); - //this->setFocusPolicy(Qt::StrongFocus); - - - ui->pushButton_load->setFixedSize(80,40); ui->pushButton_save->setFixedSize(80,40); ui->pushButton_upload->setFixedSize(80,40); @@ -67,11 +62,11 @@ MissionUI::MissionUI(QWidget *parent) : table->setHorizontalHeaderLabels(QStringList() <verticalHeader(); - V_headerView->setHidden(true); //行名隐藏 + V_headerView->setHidden(true); //行名隐藏 QHeaderView* H_headerView = table->horizontalHeader(); - H_headerView->setDefaultAlignment(Qt::AlignLeft); //表头信息显示居中靠左 - H_headerView->setHighlightSections(false);//高亮选中内容的所在列标题 + H_headerView->setDefaultAlignment(Qt::AlignLeft); //表头信息显示居中靠左 + H_headerView->setHighlightSections(false); //不高亮选中内容的所在列标题 H_headerView->setStretchLastSection(true); @@ -247,6 +242,8 @@ void MissionUI::setCurrent(int group,int idx) { widget->selectRow(idx - 1); } + + //settableGroup(group);//切换会引起变化事件,导致重新刷新 } void MissionUI::settableGroup(int group) @@ -342,6 +339,35 @@ void MissionUI::on_pushButton_upload_clicked() void MissionUI::on_pushButton_download_clicked() { + QTableWidget *widget; + //根据tabwidget + int tab_idx =ui->tabWidget->currentIndex(); + + switch (tab_idx) { + case 0: + widget = tablelist.value(1); + break; + case 1: + widget = tablelist.value(3); + break; + case 2: + widget = tablelist.value(4); + break; + case 3: + widget = tablelist.value(5); + break; + case 4: + widget = tablelist.value(6); + break; + default: + break; + } + + while (widget->rowCount() > 0) { + widget->removeRow(widget->currentRow()); + } + + emit WPDownload(); } @@ -471,19 +497,11 @@ void MissionUI::on_pushButton_clean_clicked() default: break; } -/* - int count = widget->rowCount(); - for (int i = 0;i < count;i++) { - widget->removeRow(i); - } - */ while (widget->rowCount() > 0) { widget->removeRow(widget->currentRow()); } - - emit WPDeleteAll(); } @@ -577,6 +595,12 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) widget->removeCellWidget(row,column); emit setCommand(str);//直接修改底层,让底层返回数据更新到界面 }); + + connect(combox,&QComboBox::editTextChanged,[=]{ + QString str = combox->currentText(); + widget->removeCellWidget(row,column); + emit setCommand(str);//直接修改底层,让底层返回数据更新到界面 + }); } else if(column == 2) { diff --git a/App/MissionUI/propertyui.cpp b/App/MissionUI/propertyui.cpp index 10fa7d5..26ba053 100644 --- a/App/MissionUI/propertyui.cpp +++ b/App/MissionUI/propertyui.cpp @@ -2167,9 +2167,22 @@ void propertyui::on_pushButton_Group_clicked() selector->show(); } + +void propertyui::measureState(bool flag) +{ + if(flag == true) + { + ui->pushButton_Ruler->setText("Measuring"); + } + else + { + ui->pushButton_Ruler->setText("Measure"); + } +} + void propertyui::on_pushButton_Ruler_clicked() { - + emit ruler_clicked(); } void propertyui::on_pushButton_Table_clicked() diff --git a/App/MissionUI/propertyui.h b/App/MissionUI/propertyui.h index c02d48c..30091c4 100644 --- a/App/MissionUI/propertyui.h +++ b/App/MissionUI/propertyui.h @@ -219,7 +219,7 @@ public slots: - + void measureState(bool flag); @@ -260,6 +260,9 @@ Q_SIGNALS: void getAllPoints(int group); + void ruler_clicked(); + + private slots: void GroupChanged(int value); diff --git a/App/MissionUI/propertyui.ui b/App/MissionUI/propertyui.ui index f304463..0e51c29 100644 --- a/App/MissionUI/propertyui.ui +++ b/App/MissionUI/propertyui.ui @@ -662,7 +662,7 @@ - Ruler + Measure diff --git a/App/mainwindow.cpp b/App/mainwindow.cpp index 88f5074..6b0cd67 100644 --- a/App/mainwindow.cpp +++ b/App/mainwindow.cpp @@ -278,8 +278,6 @@ MainWindow::MainWindow(QWidget *parent) connect(toolsui->index2,SIGNAL(setMultiple(double)), dlink->mavlinknode->replay,SLOT(setMultiple(double)),Qt::DirectConnection); - - connect(dlink->mavlinknode->replay,SIGNAL(currentPercentage(float)), toolsui->index2,SLOT(setCurrentPercentage(float))); @@ -416,6 +414,15 @@ MainWindow::MainWindow(QWidget *parent) map,SLOT(getAllPoints(int))); + connect(map,SIGNAL(settableGroup(int)), + missionUI,SIGNAL(settableGroup(int))); + + connect(missionUI,SIGNAL(ruler_clicked()), + map,SLOT(ruler_clicked())); + + connect(map,SIGNAL(measureState(bool)), + missionUI,SLOT(measureState(bool))); + //dlink ----- map connect(map,SIGNAL(signal_WPDownload(uint8_t,uint8_t,int)), diff --git a/MavLinkNode/mavlinknode.cpp b/MavLinkNode/mavlinknode.cpp index ef8fe65..5fd4250 100644 --- a/MavLinkNode/mavlinknode.cpp +++ b/MavLinkNode/mavlinknode.cpp @@ -1,5 +1,5 @@ #include "mavlinknode.h" - +#include "QElapsedTimer" /* * mavlink 解析相关内容请参考如下 * https://mavlink.io/en/services/command.html @@ -18,7 +18,7 @@ MavLinkNode::MavLinkNode(QObject *parent) : ThreadTemplet(parent) CommucationOverTimer = 1000; - setRunFrq(10);//50 + setRunFrq(100);//50 @@ -481,10 +481,18 @@ void MavLinkNode::process()//线程函数 uint8_t count = 0; QByteArray datagram = nullptr; bool isIdle = true; + + + QElapsedTimer time; + time.start(); + while (running_flag) { + time.restart(); + + count ++; - //QThread::msleep(1000/running_frq); + QThread::msleep(1000/running_frq); //timer->start(); //解码从UDP来的 @@ -519,6 +527,9 @@ void MavLinkNode::process()//线程函数 { // QThread::msleep(1000/running_frq); } + + int nsec = time.nsecsElapsed(); + //qDebug() << "mavlinknode a loop using time:" << nsec << "ns"; } } diff --git a/dlink/dlink.cpp b/dlink/dlink.cpp index b962ac8..da1f424 100644 --- a/dlink/dlink.cpp +++ b/dlink/dlink.cpp @@ -1,7 +1,7 @@ #include "dlink.h" #include #include "QDateTime" - +#include "QElapsedTimer" DLink::DLink(QObject *parent) : QObject(parent) { @@ -428,6 +428,8 @@ void DLink::readPendingDatagramsSerialPort(void) void DLink::readPendingDatagramsClient(void) { + QElapsedTimer time; + time.start(); //轮番查询 if(Clientsock) { @@ -439,6 +441,10 @@ void DLink::readPendingDatagramsClient(void) emit recieveMessage(SourceType::c_sock,datagram); } } + int milsec = time.elapsed(); + + //qDebug() << "a loop using time:" << milsec << "ms"; + } void DLink::processPendingMulticastDatagrams(void) diff --git a/opmap/mapwidget/measureline.cpp b/opmap/mapwidget/measureline.cpp index be1c3b4..9c38f12 100644 --- a/opmap/mapwidget/measureline.cpp +++ b/opmap/mapwidget/measureline.cpp @@ -76,7 +76,7 @@ void MeasureLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio } else { - myPen.setColor("#ffff00"); + myPen.setColor("#FF00FF"); } painter->setPen(myPen); diff --git a/opmap/mapwidget/opmapwidget.cpp b/opmap/mapwidget/opmapwidget.cpp index eaddf04..ff8c19b 100644 --- a/opmap/mapwidget/opmapwidget.cpp +++ b/opmap/mapwidget/opmapwidget.cpp @@ -125,11 +125,6 @@ OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView connect(waypointsetting,SIGNAL(WPLoad(QString)), this,SLOT(WPLoad(QString))); - /* - connect(this,SIGNAL(allPoint(QMap)), - waypointsetting,SLOT(setallPoint(QMap))); - */ - connect(waypointsetting,SIGNAL(searchall()), this,SLOT(WPsearchall())); @@ -198,7 +193,12 @@ void OPMapWidget::ruler_clicked(void) if(isMeasure) { isMeasure = false; - this->setCursor(Qt::ArrowCursor); + //this->setCursor(Qt::ArrowCursor); + if(measureline) + { + measureline->hide(); + + } } else { @@ -210,9 +210,11 @@ void OPMapWidget::ruler_clicked(void) measureline->show(); } - QPixmap pix(":/markers/images/ruler.png"); - this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); + //QPixmap pix(":/markers/images/ruler.png"); + //this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); } + + emit measureState(isMeasure); } void OPMapWidget::table_clicked(void) @@ -632,8 +634,8 @@ void OPMapWidget::mouseMoveEvent(QMouseEvent *event) if(isMeasure) { - QPixmap pix(":/markers/images/ruler.png"); - this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); + //QPixmap pix(":/markers/images/ruler.png"); + //this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); } @@ -709,8 +711,8 @@ void OPMapWidget::mousePressEvent(QMouseEvent *event) if(isMeasure) { - QPixmap pix(":/markers/images/ruler.png"); - this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); + //QPixmap pix(":/markers/images/ruler.png"); + //this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); } @@ -725,8 +727,8 @@ void OPMapWidget::mouseReleaseEvent(QMouseEvent *event) if(isMeasure) { - QPixmap pix(":/markers/images/ruler.png"); - this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); + //QPixmap pix(":/markers/images/ruler.png"); + //this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); } //qDebug() << "relea"; @@ -738,8 +740,8 @@ void OPMapWidget::mouseDoubleClickEvent(QMouseEvent *event) if(isMeasure) { - QPixmap pix(":/markers/images/ruler.png"); - this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); + //QPixmap pix(":/markers/images/ruler.png"); + //this->setCursor(QCursor(pix.scaled(QSize(50,50), Qt::KeepAspectRatio))); } if(isMeasure) @@ -2213,6 +2215,8 @@ void OPMapWidget::WPGroup(int value) { currentGroup = value; + + qDebug() << "group checkout" << value; //切换当前航线,其他都隐藏,或者高亮当前 @@ -2273,6 +2277,8 @@ void OPMapWidget::WPGroup(int value) } } + emit settableGroup(currentGroup); + update(); } diff --git a/opmap/mapwidget/opmapwidget.h b/opmap/mapwidget/opmapwidget.h index c166344..512f713 100644 --- a/opmap/mapwidget/opmapwidget.h +++ b/opmap/mapwidget/opmapwidget.h @@ -532,6 +532,7 @@ signals: //map property void MapTypes(QStringList list); + void settableGroup(int); void TotalDistanceUpdate(double); @@ -631,6 +632,9 @@ signals: void setCurrent(int seq); + void measureState(bool); + + public slots: