航线传输问题解决

This commit is contained in:
hm
2020-10-22 11:27:45 +08:00
parent fe24c25a3e
commit d4c6b81b67
13 changed files with 112 additions and 26 deletions
+13 -6
View File
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>366</width>
<width>373</width>
<height>534</height>
</rect>
</property>
@@ -159,25 +159,32 @@
<string>惯导选择</string>
</property>
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="2">
<widget class="QComboBox" name="comboBox_IMU"/>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_sys"/>
</item>
<item row="0" column="3">
<widget class="QComboBox" name="comboBox_IMU"/>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="pushButton_IMU">
<property name="text">
<string>选择</string>
</property>
</widget>
</item>
<item row="0" column="0">
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<property name="text">
<string>选择惯导</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_sys"/>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>无人机#</string>
</property>
</widget>
</item>
</layout>
</widget>
+20
View File
@@ -0,0 +1,20 @@
#include "CommandButton.h"
CommandButton::CommandButton(QWidget *parent) : QPushButton(parent)
{
}
void CommandButton::keyPressEvent(QKeyEvent* event)
{
QWidget::keyPressEvent(event);
}
void CommandButton::keyReleaseEvent(QKeyEvent* event)
{
QWidget::keyReleaseEvent(event);
}
+26
View File
@@ -0,0 +1,26 @@
#ifndef COMMANDBUTTON_H
#define COMMANDBUTTON_H
#include <QObject>
#include <QWidget>
#include "QPushButton"
#include "QDebug"
#include "QEvent"
class CommandButton : public QPushButton
{
Q_OBJECT
public:
explicit CommandButton(QWidget *parent = nullptr);
protected:
void keyPressEvent(QKeyEvent* event);
void keyReleaseEvent(QKeyEvent* event);
signals:
};
#endif // COMMANDBUTTON_H
+1
View File
@@ -6,6 +6,7 @@
#include "QDebug"
#include "QPushButton"
#include "CommandButton.h"
#include "QJsonArray"
#include "QJsonDocument"
+2
View File
@@ -32,9 +32,11 @@ FORMS += \
$$PWD/CommandUI.ui \
HEADERS += \
$$PWD/CommandButton.h \
$$PWD/CommandUI.h
SOURCES += \
$$PWD/CommandButton.cpp \
$$PWD/CommandUI.cpp
RESOURCES += \
+8 -1
View File
@@ -39,13 +39,20 @@ Selector::~Selector()
bool Selector::event(QEvent *event)
{
//qDebug() << event->type() << "wvent";
if(event->type() == QEvent::Leave)
{
this->close();
//if(QApplication::activeWindow() != this)
this->close();
}
return QWidget::event(event);
}
void Selector::focusOutEvent(QFocusEvent *event)
{
qDebug() << "focus out" << event;
+2
View File
@@ -11,6 +11,8 @@
#include <QScrollBar>
#include "QFile"
#include "QEvent"
namespace Ui {
class Selector;
}
+4 -4
View File
@@ -203,8 +203,8 @@ void propertyui::rebuildUI(QString CMD)
ui->pushButton_Lat->show();
ui->pushButton_Lng->show();
ui->pushButton_Lat->setText(QString::number(m_x * 10e-8,'f',6));
ui->pushButton_Lng->setText(QString::number(m_y * 10e-8,'f',6));
ui->pushButton_Lat->setText(QString::number(m_x * 10e-8,'f',7));
ui->pushButton_Lng->setText(QString::number(m_y * 10e-8,'f',7));
}
@@ -1189,7 +1189,7 @@ void propertyui::on_pushButton_Lat_clicked()
inputter->setGeometry(0,0,this->width(),this->height());
inputter->setLabel(tr("setLatitude"));
inputter->setDecimalPlaces(6);
inputter->setDecimalPlaces(7);
inputter->setInitValue(ui->pushButton_Lat->text());
connect(inputter,SIGNAL(confirmValue(QVariant)),
this,SLOT(setLatitude(QVariant)));
@@ -1210,7 +1210,7 @@ void propertyui::on_pushButton_Lng_clicked()
inputter->setGeometry(0,0,this->width(),this->height());
inputter->setLabel(tr("setLongitude"));
inputter->setDecimalPlaces(6);
inputter->setDecimalPlaces(7);
inputter->setInitValue(ui->pushButton_Lng->text());
connect(inputter,SIGNAL(confirmValue(QVariant)),
+13 -8
View File
@@ -819,6 +819,12 @@ void MainWindow::updateUI()//事件驱动式更新数据
case 8<<16:
mode_str.append(tr("RATTITUDE"));
break;
case 9<<16:
mode_str.append(tr("STANDBY"));
break;
case 10<<16:
mode_str.append(tr("BIT"));
break;
case (4<<16)+(1<<24):
mode_str.append(tr("AUTO_READY"));
break;
@@ -1010,7 +1016,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
healthui->setState(26,getBit(health,12)?(HealthUI::state::warning):(HealthUI::state::success));//sel
healthui->setValueState(26,getBit(health,12)?(tr("连接内置惯导")):(tr("连接SBG")));//sel
statusui->setState(1,QString::number(dlink->mavlinknode->vehicle.airspeed_autocal.ratio,'f',1),0);
statusui->setState(1,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.alpha,'f',1),0);
statusui->setState(2,QString::number(dlink->mavlinknode->vehicle.attitude.pitch * 57.3,'f',1),
QString::number(dlink->mavlinknode->vehicle.nav_controller_output.nav_pitch * 57.3,'f',1));
@@ -1028,17 +1034,16 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString::number(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4
+dlink->mavlinknode->vehicle.nav_controller_output.alt_error * 10e-4,'f',1));
statusui->setState(7,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed,'f',1),
QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed
statusui->setState(7,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,'f',1),
QString::number(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed
+dlink->mavlinknode->vehicle.nav_controller_output.aspd_error,'f',1));
statusui->setState(8,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed,'f',1),
QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed
statusui->setState(8,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,'f',1),
QString::number(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed
+dlink->mavlinknode->vehicle.nav_controller_output.aspd_error,'f',1));
statusui->setState(9,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed/340.0,'f',1),
QString::number((dlink->mavlinknode->vehicle.vfr_hud.airspeed
+dlink->mavlinknode->vehicle.nav_controller_output.aspd_error)/340.0,'f',1));
statusui->setState(9,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.mach,'f',1),
QString::number(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,'f',1));
statusui->setState(10,QString::number(dlink->mavlinknode->vehicle.global_position_int.vz * 10e-3,'f',1),
QString::number(dlink->mavlinknode->vehicle.global_position_int.vz * 10e-3,'f',1));
+3
View File
@@ -631,6 +631,9 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
case MAVLINK_MSG_ID_VFR_HUD: {
mavlink_msg_vfr_hud_decode(&msg,&vehicle.vfr_hud);
}break;
case MAVLINK_MSG_ID_EMB_ATMO_COM: {
mavlink_msg_emb_atmo_com_decode(&msg,&vehicle.emb_atom_com);
}break;
case MAVLINK_MSG_ID_TurbineState: {
mavlink_msg_turbinestate_decode(&msg,&vehicle.turbinstate);
}break;
+1
View File
@@ -54,6 +54,7 @@ class MavLinkNode : public QObject
mavlink_enginestate_t enginestate;
mavlink_vfr_hud_t vfr_hud;
mavlink_aoa_ssa_t aoa_ssa;
mavlink_emb_atmo_com_t emb_atom_com;
mavlink_turbinestate_t turbinstate;
mavlink_bmustate_t bmustate;
mavlink_ccmstate_t ccmstate;
+14 -6
View File
@@ -1,4 +1,4 @@
#include "missionprocess.h"
#include "missionprocess.h"
MissionProcess::MissionProcess(QObject *parent) : QObject(parent)
@@ -165,6 +165,8 @@ void MissionProcess::transmitPoint(float param1,float param2,float param3,float
mapcontrol::WayPointItem::_property item;
qDebug() << x << y << z;
item.param1 = param1;
item.param2 = param2;
item.param3 = param3;
@@ -185,7 +187,7 @@ void MissionProcess::transmitPoint(float param1,float param2,float param3,float
items.insert(item.seq,item);
/*
foreach (mapcontrol::WayPointItem::_property item, items) {
qDebug() << "transmit seq"
<< item.seq
@@ -206,7 +208,7 @@ void MissionProcess::transmitPoint(float param1,float param2,float param3,float
<< item.autocontinue
<< item.mission_type;
}
*/
}
@@ -552,7 +554,7 @@ void MissionProcess::WriteStateMachine(void)
item_int(i.param1,i.param2,i.param3,i.param4,
i.x*10,i.y*10,i.z,
i.x,i.y,i.z,
i.seq,i.command,i.frame,
i.current,i.autocontinue,i.mission_type);//发送航点
@@ -560,8 +562,8 @@ void MissionProcess::WriteStateMachine(void)
<< i.param2
<< i.param3
<< i.param4
<< i.x*10
<< i.y*10
<< i.x
<< i.y
<< i.z
<< i.seq;
@@ -610,6 +612,8 @@ void MissionProcess::WriteStateMachine(void)
mission_status.m_Mode = Nop_Mode;
mission_status.transmit.isWaiteforACK = false;
timeout_count = 0;
//清除存储的航线
items.clear();
}
qDebug() << "wait for ack time out";
}
@@ -624,6 +628,10 @@ void MissionProcess::WriteStateMachine(void)
mission_item_int.seq = 0;
mission_status.m_Mode = Nop_Mode;
mission_status.transmit.isWaiteforRequest = false;
//清除存储的航线
items.clear();
}
}
}
+5 -1
View File
@@ -99,4 +99,8 @@
界面加一个舵机指令
舵机显示 int16
舵机显示 int16
指令按键需要自己实现一下,去掉键盘响应功能