diff --git a/App/CheckUI/CheckUI.cpp b/App/CheckUI/CheckUI.cpp
index 0ddeb53..2d4c9df 100644
--- a/App/CheckUI/CheckUI.cpp
+++ b/App/CheckUI/CheckUI.cpp
@@ -41,9 +41,11 @@ CheckUI::CheckUI(QWidget *parent) :
ui->setupUi(this);
//检测文件夹,如果不存在,那么就新建一个
+ /*
QDir *Dir = new QDir;
if(!Dir->exists("./checks"))
Dir->mkdir("./checks");//如果文件夹不存在就新建
+ */
//load qss
QFile file(":/qss/CheckUI.qss");
@@ -55,7 +57,7 @@ CheckUI::CheckUI(QWidget *parent) :
//载入json
- LoadCheckFiles("./checks");
+ //LoadCheckFiles("./checks");
//loadCommandJson(":/json/Check.json");
//loadCommandJson("./json/Check.json");
diff --git a/App/GCS_zh_CN.qm b/App/GCS_zh_CN.qm
index abe637d..6bfb77f 100644
Binary files a/App/GCS_zh_CN.qm and b/App/GCS_zh_CN.qm differ
diff --git a/App/GCS_zh_CN.ts b/App/GCS_zh_CN.ts
index 6c403e7..d4cf330 100644
--- a/App/GCS_zh_CN.ts
+++ b/App/GCS_zh_CN.ts
@@ -252,23 +252,23 @@
自检
-
-
-
-
-
+
+
+
+
+
Vehicle %1
无人机 %1
-
-
+
+
not Contains special check file
未包含指定检查文件
-
-
+
+
not Contains Default check file
未包含默认检查文件
@@ -2175,8 +2175,8 @@
-
-
+
+
未定位
@@ -2395,65 +2395,64 @@
-
mission group has changed, current group is %1
- 航线切换,当前航线为 %1
+ 航线切换,当前航线为 %1
-
+
VERT_OFF
OFF
纵向制导关闭
-
+
VNAV2THT
消除纵向偏差
-
+
HDOT2THT
控制升降速率
-
+
GAMMA2THT
控制航迹角
-
+
AS2THT
俯仰控制速度
-
+
H2THT
控制绝对高度
-
+
AGL2THT
控制相对高度
-
+
LAT_OFF
横向制导关闭
-
+
LNAV2PHI
滚转消除侧偏
-
+
PSI2PHI
滚转控制航向
-
-
-
+
+
+
@@ -2462,156 +2461,156 @@
未定位
-
-
+
+
未初始化
-
-
+
+
垂直陀螺
-
-
+
+
AHRS
-
-
+
+
速度导航
-
-
+
+
位置导航
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
正常
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
无效
-
-
+
+
解算正常
-
-
+
+
卫星数不足
-
-
+
+
内部错误
-
-
+
+
速度超限
-
-
-
-
+
+
+
+
未知
-
-
+
+
多普勒
-
-
+
+
微分
-
-
-
- 单点
-
-
-
-
-
- 伪距差分
-
-
- SBAS广域差分
+ 单点
- 广域差分
+ 伪距差分
- RTK_FLOAT
+ SBAS广域差分
- RTK_INT
+ 广域差分
- PPP_FLOAT
+ RTK_FLOAT
- PPP_INT
+ RTK_INT
+ PPP_FLOAT
+
+
+
+
+
+ PPP_INT
+
+
+
+
+
FIXED
@@ -2769,7 +2768,7 @@
开始...
-
+
%1Group%2Point
%1组%2点
@@ -2782,38 +2781,43 @@
界面
-
+
save
保存
-
+
insert
插入
-
+
upload
上传
-
+
add
增加
-
+
download
downlload
下载
-
+
+ mission table
+ 任务表格
+
+
+
load
打开
-
+
delete
删除
@@ -2823,7 +2827,7 @@
围栏
-
+
clean
清空
@@ -2847,6 +2851,11 @@
Mission 4
航线4
+
+
+ Instructions
+ 说明
+
del
删除
@@ -2873,32 +2882,32 @@
起飞
-
+
number
航点
-
+
command
类型
-
+
par1
参数1
-
+
par2
参数2
-
+
par3
参数3
-
+
par4
参数4
@@ -2927,19 +2936,19 @@
经度
-
+
group
组别
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
inclusion
安控区
@@ -2956,41 +2965,41 @@
海拔
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Circle
圆形
-
-
-
-
-
-
-
+
+
+
+
+
+
+
exclusion
禁飞区
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Polygon
多边形
-
+
shape
形状
@@ -2999,97 +3008,97 @@
点数(个)/半径(米)
-
-
+
+
lat(deg)
纬度(度)
-
-
+
+
lng(deg)
经度(度)
-
+
Polygon(num)
Circle(radius)
- 点数(多边形)
-半径(圆形)
+ 点数[个](多边形)
+半径[米](圆形)
-
+
points
-
+ 点号
-
+
alt(m)
海拔(米)
-
-
+
+
航点
-
-
+
+
返航
-
-
+
+
降落
-
-
+
+
起飞
-
-
+
+
保持
-
-
+
+
表速
-
-
+
+
快升
-
-
+
+
开加力
-
-
+
+
关加力
-
-
+
+
Selete Way Point File...
选择载入文件...
-
-
+
+
plan file (*.plan)
任务文件 (*.plan)
diff --git a/App/MissionUI/MissionUI.cpp b/App/MissionUI/MissionUI.cpp
index 752f78f..56fcb6d 100644
--- a/App/MissionUI/MissionUI.cpp
+++ b/App/MissionUI/MissionUI.cpp
@@ -19,6 +19,11 @@ MissionUI::MissionUI(QWidget *parent) :
this->setWhatsThis(tr("mission table"));
+ ui->label_Notice->adjustSize();
+ ui->label_Notice->setAlignment(Qt::AlignLeft | Qt::AlignTop);
+ ui->label_Notice->setWordWrap(true);
+
+
//围栏编辑
CustomButton *btn_addCircle = new CustomButton(this);
CustomButton *btn_addPolygon = new CustomButton(this);
@@ -505,6 +510,15 @@ MissionUI::MissionUI(QWidget *parent) :
btn_delete->setEnabled(false);
btn_clean->setEnabled(false);
btn_add->setEnabled(false);
+
+
+ //从文件打开一个叫做mission_Instructions.txt的文档,把里面的内容写进来
+ QFile Instructions("./Config/mission_Instructions.txt");
+ Instructions.open(QFile::ReadOnly);
+ QTextStream filetext(&Instructions);
+ QString text = filetext.readAll();
+ ui->label_Notice->setText(text);
+ Instructions.close();
}
@@ -532,6 +546,14 @@ void MissionUI::resizeEvent(QResizeEvent *event)
}
+void MissionUI::clearTable()
+{
+
+}
+
+
+
+
void MissionUI::createFenceCircle(int group,qreal radius,bool inclusion,qreal lat,qreal lng)
{
QTableWidget *tableWidget = tablelist.value(1);
diff --git a/App/MissionUI/MissionUI.h b/App/MissionUI/MissionUI.h
index dab6c47..0296c70 100644
--- a/App/MissionUI/MissionUI.h
+++ b/App/MissionUI/MissionUI.h
@@ -55,6 +55,8 @@ public slots:
void FenceGroupChanged(int old,int cur);
+ void clearTable();
+
protected slots:
void closeEvent(QCloseEvent *event);
void resizeEvent(QResizeEvent *event);
diff --git a/App/MissionUI/MissionUI.ui b/App/MissionUI/MissionUI.ui
index 893a0f4..961ce06 100644
--- a/App/MissionUI/MissionUI.ui
+++ b/App/MissionUI/MissionUI.ui
@@ -157,8 +157,17 @@
- Notice
+ Instructions
+
+ -
+
+
+
+
+
+
+
diff --git a/App/MissionUI/propertyui.cpp b/App/MissionUI/propertyui.cpp
index 50077d3..7dcad50 100644
--- a/App/MissionUI/propertyui.cpp
+++ b/App/MissionUI/propertyui.cpp
@@ -209,6 +209,9 @@ propertyui::propertyui(QWidget *parent) :
table,&MissionUI::FenceGroupChanged);
+ connect(this,&propertyui::clearTable,
+ table,&MissionUI::clearTable);
+
//初始化参数
setWayPointProperty(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3);
diff --git a/App/MissionUI/propertyui.h b/App/MissionUI/propertyui.h
index 8a63185..a9b4a04 100644
--- a/App/MissionUI/propertyui.h
+++ b/App/MissionUI/propertyui.h
@@ -281,6 +281,8 @@ Q_SIGNALS:
void FenceGroupChanged(int old,int cur);
+ void clearTable();
+
private slots:
void GroupChanged(int value);
diff --git a/App/main.cpp b/App/main.cpp
index a21f137..c0d5f31 100644
--- a/App/main.cpp
+++ b/App/main.cpp
@@ -84,6 +84,27 @@ void CheckDirs(const QString &path, const QStringList &dirs) {
}
}
+QStringList getFiles(const QString &filePath,const QString &fileSuffix)
+{
+ QStringList list;
+ list.clear();
+
+ QDir Dir(filePath); //查看工作路径是否存在
+ if(!Dir.exists()){ return list;} //如果文件夹不存在则返回
+ Dir.setFilter(QDir::Files); //设置过滤器只查看文件
+ QStringList filelist = Dir.entryList(QDir::Files); //获取所有文件
+ foreach (QFileInfo file, filelist) //遍历只加载.txt到文件列表
+ {
+ if(file.fileName().split(".").back() == fileSuffix) //判断进行再次确认是.fileSuffix
+ {
+ list.push_back(file.absoluteFilePath());
+ }
+ }
+
+ return list;
+}
+
+
void LoadLang(QApplication *a)
{
@@ -99,29 +120,20 @@ void LoadLang(QApplication *a)
qWarning() << "Fail to load translator " <load(lang, QCoreApplication::applicationDirPath())
- && a->installTranslator(myappTranslator))
- {
- qDebug() << "Success to load translator " <load(lang, QCoreApplication::applicationDirPath())
- && a->installTranslator(mapTranslator))
- {
- qDebug() << "Success to load translator " <load(lang, QCoreApplication::applicationDirPath())
+ && a->installTranslator(Translator))
+ {
+ qDebug() << "Success to load translator " <mavlinknode->Mission,SLOT(WriteCmd(uint8_t,uint8_t,uint32_t,int)),Qt::DirectConnection);
-
-
-
-
//生成航线必须在map线程完成,因此不能直接连接
//停下来让ui、运行一下
connect(dlink->mavlinknode->Mission,SIGNAL(receivedPoint(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)),
@@ -525,7 +522,15 @@ MainWindow::MainWindow(QWidget *parent)
dlink->mavlinknode->Mission,SLOT(sendFence(qreal,qreal,qreal,qreal,uint16_t,uint16_t,uint16_t,uint16_t,uint16_t)),Qt::DirectConnection);
- //航点确认窗口
+ connect(map,SIGNAL(getMissionFromVehicle(int)),
+ dlink->mavlinknode->Mission,SLOT(checkoutVehicle(int)),Qt::DirectConnection);
+
+
+ connect(dlink->mavlinknode->Mission,SIGNAL(vehicleChanged(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)),
+ map,SLOT(vehicleChanged(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)));
+
+
+ //map ----- commandui
connect(map,SIGNAL(setCurrent(int)),
commandUI,SLOT(missionConfirm(int)));
@@ -1108,8 +1113,6 @@ void MainWindow::setServoOffset(QVariant dirla, QVariant dirra, QVariant dirle,
// 16~20Hz左右 运行频率可能太高
void MainWindow::updateUI()//事件驱动式更新数据
{
-
-
static uint32_t custommode_old = 0;
static uint8_t state_old = 0;
bool isCustomChanged = false;
@@ -1133,98 +1136,123 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
- //QElapsedTimer ElapsedTimer;
+ //经纬度大于正常值,将舍弃 更新所有飞机的信息,
+ foreach (MavLinkNode::_vehicle v, dlink->mavlinknode->vehicleList) {
+ double lat = (double)(v.gps_raw_int.lat * 10e-8);
+ double lng = (double)(v.gps_raw_int.lon * 10e-8);
- //ElapsedTimer.start();
+ if(((lat > -90)&&(lat < 90))&&((lng > -180)&&(lng < 180)))
+ {
+ map->setUAVPos(v.sysid,
+ v.compid,
+ (double)(v.gps_raw_int.lat * 10e-8),
+ (double)(v.gps_raw_int.lon * 10e-8),
+ (double)(v.gps_raw_int.alt * 10e-4));
+ }
+
+ map->setUAVHeading(v.sysid,
+ v.compid,
+ v.attitude.yaw * 57.3);
- copk->setAttitude(dlink->mavlinknode->vehicle.attitude.pitch * 57.3,
- dlink->mavlinknode->vehicle.attitude.roll * 57.3,
- dlink->mavlinknode->vehicle.attitude.yaw * 57.3);
+ map->setUAVSpeed(v.sysid,
+ v.compid,
+ v.emb_atom_com.mach,
+ v.emb_atom_com.Airspeed);
+ }
+
+ //只更新当前选择的飞机信息
+ MavLinkNode::_vehicle vehicle = dlink->mavlinknode->vehicleList.value(currentUAV);
- copk->setAltitude(dlink->mavlinknode->vehicle.global_position_int.alt * 10e-4);
- copk->setAltitudeTarget(dlink->mavlinknode->vehicle.global_position_int.alt * 10e-4
- +dlink->mavlinknode->vehicle.nav_controller_output.alt_error);
+
+ copk->setAttitude(vehicle.attitude.pitch * 57.3,
+ vehicle.attitude.roll * 57.3,
+ vehicle.attitude.yaw * 57.3);
+
+
+ copk->setAltitude(vehicle.global_position_int.alt * 10e-4);
+ copk->setAltitudeTarget(vehicle.global_position_int.alt * 10e-4
+ +vehicle.nav_controller_output.alt_error);
switch (copk->AltitudeFlag()) {
default:
case 0://绝对
- copk->setHeight(dlink->mavlinknode->vehicle.global_position_int.alt * 10e-4);
+ copk->setHeight(vehicle.global_position_int.alt * 10e-4);
break;
case 1://相对
- copk->setHeight(dlink->mavlinknode->vehicle.global_position_int.relative_alt * 10e-4);
+ copk->setHeight(vehicle.global_position_int.relative_alt * 10e-4);
break;
case 2://气压
- copk->setHeight(dlink->mavlinknode->vehicle.vfr_hud.alt);
+ copk->setHeight(vehicle.vfr_hud.alt);
break;
}
- //dlink->mavlinknode->vehicle.vfr_hud.airspeed //表速
- //dlink->mavlinknode->vehicle.gps_raw_int.vel//地速
+ //vehicle.vfr_hud.airspeed //表速
+ //vehicle.gps_raw_int.vel//地速
- copk->setAirSpeed(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,5);//真空速
- copk->setAirSpeedTarget(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed
- +dlink->mavlinknode->vehicle.nav_controller_output.aspd_error,5);
+ copk->setAirSpeed(vehicle.emb_atom_com.Airspeed,5);//真空速
+ copk->setAirSpeedTarget(vehicle.emb_atom_com.Airspeed
+ +vehicle.nav_controller_output.aspd_error,5);
//c t g m
switch (copk->AirSpeedFlag()) {
case 0:
- copk->setSpeed(dlink->mavlinknode->vehicle.vfr_hud.airspeed,copk->AirSpeedFlag());//表速
+ copk->setSpeed(vehicle.vfr_hud.airspeed,copk->AirSpeedFlag());//表速
break;
case 1:
- copk->setSpeed(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,copk->AirSpeedFlag());//真空速
+ copk->setSpeed(vehicle.emb_atom_com.Airspeed,copk->AirSpeedFlag());//真空速
break;
case 2:
- copk->setSpeed(dlink->mavlinknode->vehicle.gps_raw_int.vel * 0.01,copk->AirSpeedFlag());//地速
+ copk->setSpeed(vehicle.gps_raw_int.vel * 0.01,copk->AirSpeedFlag());//地速
break;
case 3:
- copk->setSpeed(dlink->mavlinknode->vehicle.emb_atom_com.mach,copk->AirSpeedFlag());//马赫
+ copk->setSpeed(vehicle.emb_atom_com.mach,copk->AirSpeedFlag());//马赫
break;
}
- copk->setAOA(dlink->mavlinknode->vehicle.emb_atom_com.alpha);
- copk->setOL(dlink->mavlinknode->vehicle.ins1.az/(-9.8));
+ copk->setAOA(vehicle.emb_atom_com.alpha);
+ copk->setOL(vehicle.ins1.az/(-9.8));
- copk->setVerticalSpeed(-dlink->mavlinknode->vehicle.global_position_int.vz * 10e-3);//速度朝下为正
+ copk->setVerticalSpeed(-vehicle.global_position_int.vz * 10e-3);//速度朝下为正
- copk->setAlt_err(dlink->mavlinknode->vehicle.nav_controller_output.alt_error);//高度差 飞机在航线下面为正
- copk->setXTrack(dlink->mavlinknode->vehicle.nav_controller_output.xtrack_error);//侧偏距 飞机在航线右侧为正
+ copk->setAlt_err(vehicle.nav_controller_output.alt_error);//高度差 飞机在航线下面为正
+ copk->setXTrack(vehicle.nav_controller_output.xtrack_error);//侧偏距 飞机在航线右侧为正
- copk->setRollTarget(dlink->mavlinknode->vehicle.nav_controller_output.nav_roll);//
- copk->setPitchTarget(dlink->mavlinknode->vehicle.nav_controller_output.nav_pitch);//
- copk->setYawTarget(dlink->mavlinknode->vehicle.nav_controller_output.nav_bearing);//
+ copk->setRollTarget(vehicle.nav_controller_output.nav_roll);//
+ copk->setPitchTarget(vehicle.nav_controller_output.nav_pitch);//
+ copk->setYawTarget(vehicle.nav_controller_output.nav_bearing);//
QString gps_str;
gps_str.clear();
- switch (dlink->mavlinknode->vehicle.gps_raw_int.fix_type) {
+ switch (vehicle.gps_raw_int.fix_type) {
case 1:
gps_str.append(tr("未定位"));
break;
case 2:
case 3:
- gps_str.append(tr("%1D[%2颗]").arg(dlink->mavlinknode->vehicle.gps_raw_int.fix_type).arg(dlink->mavlinknode->vehicle.gps_raw_int.satellites_visible));
+ gps_str.append(tr("%1D[%2颗]").arg(vehicle.gps_raw_int.fix_type).arg(vehicle.gps_raw_int.satellites_visible));
break;
case 4:
- gps_str.append(tr("fix[%1颗]").arg(dlink->mavlinknode->vehicle.gps_raw_int.satellites_visible));
+ gps_str.append(tr("fix[%1颗]").arg(vehicle.gps_raw_int.satellites_visible));
break;
case 5:
- gps_str.append(tr("float[%1颗]").arg(dlink->mavlinknode->vehicle.gps_raw_int.satellites_visible));
+ gps_str.append(tr("float[%1颗]").arg(vehicle.gps_raw_int.satellites_visible));
break;
default:
- gps_str.append(tr("err[%1颗]").arg(dlink->mavlinknode->vehicle.gps_raw_int.satellites_visible));
+ gps_str.append(tr("err[%1颗]").arg(vehicle.gps_raw_int.satellites_visible));
break;
}
@@ -1245,7 +1273,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
uint8_t state = 0;
- state = (dlink->mavlinknode->vehicle.heartbeat.base_mode&MAV_MODE_FLAG::MAV_MODE_FLAG_SAFETY_ARMED);
+ state = (vehicle.heartbeat.base_mode&MAV_MODE_FLAG::MAV_MODE_FLAG_SAFETY_ARMED);
if(state != state_old)
{
@@ -1291,7 +1319,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
copk->setState(arm_str);
- uint32_t custommode = dlink->mavlinknode->vehicle.heartbeat.custom_mode;
+ uint32_t custommode = vehicle.heartbeat.custom_mode;
if(custommode != custommode_old)
{
@@ -1382,37 +1410,9 @@ void MainWindow::updateUI()//事件驱动式更新数据
-
-
-
- //经纬度大于正常值,将舍弃
-
- double lat = (double)(dlink->mavlinknode->vehicle.gps_raw_int.lat * 10e-8);
- double lng = (double)(dlink->mavlinknode->vehicle.gps_raw_int.lon * 10e-8);
-
- if(((lat > -90)&&(lat < 90))&&((lng > -180)&&(lng < 180)))
- {
- map->setUAVPos(dlink->mavlinknode->vehicle.sysid,
- dlink->mavlinknode->vehicle.compid,
- (double)(dlink->mavlinknode->vehicle.gps_raw_int.lat * 10e-8),
- (double)(dlink->mavlinknode->vehicle.gps_raw_int.lon * 10e-8),
- (double)(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4));
- }
-
- map->setUAVHeading(dlink->mavlinknode->vehicle.sysid,
- dlink->mavlinknode->vehicle.compid,
- dlink->mavlinknode->vehicle.attitude.yaw * 57.3);
-
-
- map->setUAVSpeed(dlink->mavlinknode->vehicle.sysid,
- dlink->mavlinknode->vehicle.compid,
- dlink->mavlinknode->vehicle.emb_atom_com.mach,
- dlink->mavlinknode->vehicle.emb_atom_com.Airspeed);
-
-
- uint32_t health = dlink->mavlinknode->vehicle.sys_status.onboard_control_sensors_health;
- uint32_t enable = dlink->mavlinknode->vehicle.sys_status.onboard_control_sensors_enabled;
- uint32_t present = dlink->mavlinknode->vehicle.sys_status.onboard_control_sensors_present;
+ uint32_t health = vehicle.sys_status.onboard_control_sensors_health;
+ uint32_t enable = vehicle.sys_status.onboard_control_sensors_enabled;
+ uint32_t present = vehicle.sys_status.onboard_control_sensors_present;
uint64_t time;
uint64_t date;
@@ -1420,16 +1420,16 @@ void MainWindow::updateUI()//事件驱动式更新数据
if(getBit(health,12)?(true):(false))
{
- time = ((uint64_t)dlink->mavlinknode->vehicle.ins1.time)% 1000000;
- date = ((uint64_t)dlink->mavlinknode->vehicle.ins1.time)/ 1000000;
+ time = ((uint64_t)vehicle.ins1.time)% 1000000;
+ date = ((uint64_t)vehicle.ins1.time)/ 1000000;
}
else
{
- time = ((uint64_t)dlink->mavlinknode->vehicle.ins2.time)% 1000000;
- date = ((uint64_t)dlink->mavlinknode->vehicle.ins2.time)/ 1000000;
+ time = ((uint64_t)vehicle.ins2.time)% 1000000;
+ date = ((uint64_t)vehicle.ins2.time)/ 1000000;
}
- menuBarUI->setTargetAlt(dlink->mavlinknode->vehicle.sys_status.load);
+ menuBarUI->setTargetAlt(vehicle.sys_status.load);
uint8_t hour = time / 10000;
@@ -1450,36 +1450,15 @@ void MainWindow::updateUI()//事件驱动式更新数据
menuBarUI->setTagetAirspeed(tim_str);
- menuBarUI->setX(dlink->mavlinknode->vehicle.nav_controller_output.xtrack_error);
-
- menuBarUI->setwp_Dist(((float)dlink->mavlinknode->vehicle.nav_controller_output.wp_dist) * 0.01);
-
-
-
- /*
- if(MainIndex == 3)//飞行界面
- {
- //刷新时间1Hz
- //显示状态信息 数据链信号状态,定位信号状态,电池状态,解锁状态,剩余飞行时间等
- QString message;
-
- message.append(tr("数据强度:%1\t").arg(QString::number(100)));
- message.append(tr("定位类型:%1\t").arg(gps_str));
- message.append(tr("卫星数目:%1颗
").arg(QString::number(dlink->mavlinknode->vehicle.gps_raw_int.satellites_visible)));
- message.append(tr("电池电压:%1V\t").arg(QString::number(dlink->mavlinknode->vehicle.sys_status.voltage_battery * 0.001)));
- message.append(tr("剩余时间:%1
").arg(QString::number(0)));
-
- showMessage(message);
-
- }
- */
+ menuBarUI->setX(vehicle.nav_controller_output.xtrack_error);
+ menuBarUI->setwp_Dist(((float)vehicle.nav_controller_output.wp_dist) * 0.01);
/*
//实测,r,le,e,la,a
//有符号16位,-32767 ~ 32767
- le = dlink->mavlinknode->vehicle.servo_output_raw.servo1_raw
+ le = vehicle.servo_output_raw.servo1_raw
re =
ru =
la =
@@ -1503,26 +1482,26 @@ void MainWindow::updateUI()//事件驱动式更新数据
*/
- toolsui->powersystem->setTurbineState(&dlink->mavlinknode->vehicle.turbinstate);
- toolsui->powersystem->setCCMState(&dlink->mavlinknode->vehicle.ccmstate);
+ toolsui->powersystem->setTurbineState(&vehicle.turbinstate);
+ toolsui->powersystem->setCCMState(&vehicle.ccmstate);
- toolsui->powersystem->setMa(dlink->mavlinknode->vehicle.emb_atom_com.mach);
- toolsui->powersystem->setAlt(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4);
+ toolsui->powersystem->setMa(vehicle.emb_atom_com.mach);
+ toolsui->powersystem->setAlt(vehicle.gps_raw_int.alt * 10e-4);
- toolsui->powersystem->setFuel(QString::number(dlink->mavlinknode->vehicle.ccmstate.volts[2],'f',0),
- QString::number(dlink->mavlinknode->vehicle.ccmstate.fuel_level * 10.0 / 65536.0f,'f',1));
+ toolsui->powersystem->setFuel(QString::number(vehicle.ccmstate.volts[2],'f',0),
+ QString::number(vehicle.ccmstate.fuel_level * 10.0 / 65536.0f,'f',1));
- toolsui->servosystem->setBUMState(&dlink->mavlinknode->vehicle.bmustate);
+ toolsui->servosystem->setBUMState(&vehicle.bmustate);
//在这里设置
- toolsui->servosystem->setServoState(&dlink->mavlinknode->vehicle.servo_output_raw);
+ toolsui->servosystem->setServoState(&vehicle.servo_output_raw);
bool v28_Low = false,v56_Low = false;
- v28_Low = (((float)dlink->mavlinknode->vehicle.bmustate.BAT1_remain_perc * 0.1) < 10)?(false):(true);
- v56_Low = (((float)dlink->mavlinknode->vehicle.bmustate.BAT2_remain_perc * 0.1) < 10)?(false):(true);
+ v28_Low = (((float)vehicle.bmustate.BAT1_remain_perc * 0.1) < 10)?(false):(true);
+ v56_Low = (((float)vehicle.bmustate.BAT2_remain_perc * 0.1) < 10)?(false):(true);
// qDebug() << "v28_Low" << v28_Low << "v56_Low" << v56_Low;
@@ -1595,7 +1574,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
//舵机反馈是有符号16b/
- uint16_t servoHealt = dlink->mavlinknode->vehicle.servo_output_raw.servo10_raw;
+ uint16_t servoHealt = vehicle.servo_output_raw.servo10_raw;
healthui->setState(11,getBit(health,16)?(getBit(servoHealt,3)?(HealthUI::state::success):(HealthUI::state::warning)):(HealthUI::state::failure));//LA
healthui->setState(12,getBit(health,13)?(getBit(servoHealt,0)?(HealthUI::state::success):(HealthUI::state::warning)):(HealthUI::state::failure));//RA
@@ -1606,8 +1585,8 @@ void MainWindow::updateUI()//事件驱动式更新数据
//19~24
- if(((dlink->mavlinknode->vehicle.turbinstate.SysState & 0x000F) == 0x04) ||
- ((dlink->mavlinknode->vehicle.turbinstate.SysState & 0x000F) == 0x00))
+ if(((vehicle.turbinstate.SysState & 0x000F) == 0x04) ||
+ ((vehicle.turbinstate.SysState & 0x000F) == 0x00))
{
healthui->setState(21,HealthUI::state::failure);//停车
}
@@ -1616,17 +1595,17 @@ void MainWindow::updateUI()//事件驱动式更新数据
healthui->setState(21,HealthUI::state::inital);//停车
}
- //healthui->setState(21,((dlink->mavlinknode->vehicle.turbinstate.SysState & 0x000F) == 0x04)?(HealthUI::state::failure):(HealthUI::state::inital));//停车
+ //healthui->setState(21,((vehicle.turbinstate.SysState & 0x000F) == 0x04)?(HealthUI::state::failure):(HealthUI::state::inital));//停车
healthui->setState(22,getBit(health,18)?(HealthUI::state::failure):(HealthUI::state::inital));//开伞
healthui->setState(23,getBit(health,19)?(HealthUI::state::failure):(HealthUI::state::inital));//开气囊
healthui->setState(24,getBit(health,20)?(HealthUI::state::failure):(HealthUI::state::inital));//充气
healthui->setState(25,getBit(health,21)?(HealthUI::state::failure):(HealthUI::state::inital));//抛伞
- //healthui->setState(26,((dlink->mavlinknode->vehicle.turbinstate.SysState & 0x000F) >= 0x0d)?(HealthUI::state::success):(HealthUI::state::inital));//开加力
+ //healthui->setState(26,((vehicle.turbinstate.SysState & 0x000F) >= 0x0d)?(HealthUI::state::success):(HealthUI::state::inital));//开加力
- if((dlink->mavlinknode->vehicle.turbinstate.SysState & 0x000F) >= 0x0d)
+ if((vehicle.turbinstate.SysState & 0x000F) >= 0x0d)
{
- uint8_t sta = dlink->mavlinknode->vehicle.turbinstate.SysState & 0x000F;
+ uint8_t sta = vehicle.turbinstate.SysState & 0x000F;
switch (sta) {
case 0x0d:
@@ -1664,9 +1643,9 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
- //healthui->setState(26,(((dlink->mavlinknode->vehicle.servo_output_raw.servo6_raw - 1000)/10) > 110)?(HealthUI::state::success):(HealthUI::state::inital));//开加力
+ //healthui->setState(26,(((vehicle.servo_output_raw.servo6_raw - 1000)/10) > 110)?(HealthUI::state::success):(HealthUI::state::inital));//开加力
- switch (dlink->mavlinknode->vehicle.ins1.sys_status & 0x0F) {
+ switch (vehicle.ins1.sys_status & 0x0F) {
default:
case 0:
{
@@ -1690,7 +1669,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}break;
}
- switch (dlink->mavlinknode->vehicle.ins2.sys_status & 0x0F) {
+ switch (vehicle.ins2.sys_status & 0x0F) {
default:
case 0:
{
@@ -1738,7 +1717,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
//得到航线组数,数据为1,2,3,4
//group = (int)(getBit(enable,11) << 2) | (int)(getBit(enable,10) << 1) | (int)(getBit(enable,9));
- //group = dlink->mavlinknode->vehicle.
+ //group = vehicle.
/*
@@ -1815,35 +1794,35 @@ void MainWindow::updateUI()//事件驱动式更新数据
//========================
- statusui->setState(1,QString::number(dlink->mavlinknode->vehicle.ins1.az,'f',1),0);
- statusui->setState(2,QString::number(dlink->mavlinknode->vehicle.ins1.ay,'f',1),0);
+ statusui->setState(1,QString::number(vehicle.ins1.az,'f',1),0);
+ statusui->setState(2,QString::number(vehicle.ins1.ay,'f',1),0);
- statusui->setState(3,QString::number(dlink->mavlinknode->vehicle.attitude.roll * 57.3,'f',1),
- QString::number(dlink->mavlinknode->vehicle.nav_controller_output.nav_roll,'f',1));
+ statusui->setState(3,QString::number(vehicle.attitude.roll * 57.3,'f',1),
+ QString::number(vehicle.nav_controller_output.nav_roll,'f',1));
- statusui->setState(4,QString::number(dlink->mavlinknode->vehicle.attitude.pitch * 57.3,'f',1),
- QString::number(dlink->mavlinknode->vehicle.nav_controller_output.nav_pitch,'f',1));
+ statusui->setState(4,QString::number(vehicle.attitude.pitch * 57.3,'f',1),
+ QString::number(vehicle.nav_controller_output.nav_pitch,'f',1));
- statusui->setState(5,QString::number(to360deg(dlink->mavlinknode->vehicle.gps_raw_int.cog * 0.01),'f',1),
- QString::number(to360deg(dlink->mavlinknode->vehicle.nav_controller_output.nav_bearing),'f',1));
+ statusui->setState(5,QString::number(to360deg(vehicle.gps_raw_int.cog * 0.01),'f',1),
+ QString::number(to360deg(vehicle.nav_controller_output.nav_bearing),'f',1));
- statusui->setState(6,QString::number(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4,'f',1),
- QString::number(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4
- +dlink->mavlinknode->vehicle.nav_controller_output.alt_error,'f',1));
+ statusui->setState(6,QString::number(vehicle.gps_raw_int.alt * 10e-4,'f',1),
+ QString::number(vehicle.gps_raw_int.alt * 10e-4
+ +vehicle.nav_controller_output.alt_error,'f',1));
- statusui->setState(7,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed,'f',1),
- QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed
- +dlink->mavlinknode->vehicle.nav_controller_output.aspd_error,'f',1));
+ statusui->setState(7,QString::number(vehicle.vfr_hud.airspeed,'f',1),
+ QString::number(vehicle.vfr_hud.airspeed
+ +vehicle.nav_controller_output.aspd_error,'f',1));
- 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(8,QString::number(vehicle.emb_atom_com.Airspeed,'f',1),
+ QString::number(vehicle.emb_atom_com.Airspeed
+ +vehicle.nav_controller_output.aspd_error,'f',1));
- statusui->setState(9,QString::number(dlink->mavlinknode->vehicle.gps_raw_int.vel * 10e-3,'f',1),tr(" "));
+ statusui->setState(9,QString::number(vehicle.gps_raw_int.vel * 10e-3,'f',1),tr(" "));
- statusui->setState(10,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.mach,'f',2),tr(" "));
+ statusui->setState(10,QString::number(vehicle.emb_atom_com.mach,'f',2),tr(" "));
- statusui->setState(11,QString::number(-dlink->mavlinknode->vehicle.global_position_int.vz * 10e-3,'f',1),tr(" "));
+ statusui->setState(11,QString::number(-vehicle.global_position_int.vz * 10e-3,'f',1),tr(" "));
@@ -1852,48 +1831,48 @@ void MainWindow::updateUI()//事件驱动式更新数据
if(toolsui->senser)
{
- toolsui->senser->setAltChart("海拔高度",dlink->mavlinknode->vehicle.global_position_int.alt * 10e-4,2);
- toolsui->senser->setAltChart("气压高度",dlink->mavlinknode->vehicle.vfr_hud.alt,1);
+ toolsui->senser->setAltChart("海拔高度",vehicle.global_position_int.alt * 10e-4,2);
+ toolsui->senser->setAltChart("气压高度",vehicle.vfr_hud.alt,1);
- toolsui->senser->setAttChart("滚转角度值",dlink->mavlinknode->vehicle.attitude.roll*57.3,3);
- toolsui->senser->setAttChart("俯仰角度值",dlink->mavlinknode->vehicle.attitude.pitch*57.3,1);
+ toolsui->senser->setAttChart("滚转角度值",vehicle.attitude.roll*57.3,3);
+ toolsui->senser->setAttChart("俯仰角度值",vehicle.attitude.pitch*57.3,1);
- toolsui->senser->setGyroChart("滚转角速度",dlink->mavlinknode->vehicle.attitude.rollspeed * 57.3,3);
- toolsui->senser->setGyroChart("俯仰角速度",dlink->mavlinknode->vehicle.attitude.pitchspeed * 57.3,1);
- toolsui->senser->setGyroChart("偏航角速度",dlink->mavlinknode->vehicle.attitude.yawspeed * 57.3,2);
+ toolsui->senser->setGyroChart("滚转角速度",vehicle.attitude.rollspeed * 57.3,3);
+ toolsui->senser->setGyroChart("俯仰角速度",vehicle.attitude.pitchspeed * 57.3,1);
+ toolsui->senser->setGyroChart("偏航角速度",vehicle.attitude.yawspeed * 57.3,2);
- toolsui->senser->setAccChart("轴向加速度",dlink->mavlinknode->vehicle.ins1.ax,3);
- //toolsui->senser->setAccChart("外置ax",dlink->mavlinknode->vehicle.ins2.ax,3);
- toolsui->senser->setAccChart("侧向加速度",dlink->mavlinknode->vehicle.ins1.ay,1);
- //toolsui->senser->setAccChart("外置ay",dlink->mavlinknode->vehicle.ins2.ay,1);
- toolsui->senser->setAccChart("法向加速度",dlink->mavlinknode->vehicle.ins1.az,2);
- //toolsui->senser->setAccChart("外置az",dlink->mavlinknode->vehicle.ins2.az,2);
+ toolsui->senser->setAccChart("轴向加速度",vehicle.ins1.ax,3);
+ //toolsui->senser->setAccChart("外置ax",vehicle.ins2.ax,3);
+ toolsui->senser->setAccChart("侧向加速度",vehicle.ins1.ay,1);
+ //toolsui->senser->setAccChart("外置ay",vehicle.ins2.ay,1);
+ toolsui->senser->setAccChart("法向加速度",vehicle.ins1.az,2);
+ //toolsui->senser->setAccChart("外置az",vehicle.ins2.az,2);
- toolsui->senser->setSpeedChart("地速",dlink->mavlinknode->vehicle.gps_raw_int.vel * 10e-3,3);
- toolsui->senser->setSpeedChart("真空速",dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,2);
- toolsui->senser->setSpeedChart("表速",dlink->mavlinknode->vehicle.vfr_hud.airspeed,0);
- toolsui->senser->setSpeedChart("目标表速",dlink->mavlinknode->vehicle.vfr_hud.airspeed
- +dlink->mavlinknode->vehicle.nav_controller_output.aspd_error,1);
+ toolsui->senser->setSpeedChart("地速",vehicle.gps_raw_int.vel * 10e-3,3);
+ toolsui->senser->setSpeedChart("真空速",vehicle.emb_atom_com.Airspeed,2);
+ toolsui->senser->setSpeedChart("表速",vehicle.vfr_hud.airspeed,0);
+ toolsui->senser->setSpeedChart("目标表速",vehicle.vfr_hud.airspeed
+ +vehicle.nav_controller_output.aspd_error,1);
}
- 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() * 57.295;
- 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() * 57.295;
- 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() * 57.295;
- 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() * 57.295;
+ qreal la_command = dir_la.toInt() * ((int16_t)vehicle.servo_output_raw.servo14_raw)/32767.0 * max_la.toDouble()/scale_la.toDouble() + bias_la.toDouble() * 57.295;
+ qreal la_angle = dir_la.toInt() * ((int16_t)vehicle.servo_output_raw.servo4_raw) /32767.0 * max_la.toDouble()/scale_la.toDouble() + bias_la.toDouble() * 57.295;
+ qreal ra_command = dir_ra.toInt() * ((int16_t)vehicle.servo_output_raw.servo11_raw)/32767.0 * max_ra.toDouble()/scale_ra.toDouble() + bias_ra.toDouble() * 57.295;
+ qreal ra_angle = dir_ra.toInt() * ((int16_t)vehicle.servo_output_raw.servo5_raw)/ 32767.0 * max_ra.toDouble()/scale_ra.toDouble() + bias_ra.toDouble() * 57.295;
- 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() * 57.295;
- 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() * 57.295;
- 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() * 57.295;
- 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() * 57.295;
+ qreal le_command = dir_le.toInt() * ((int16_t)vehicle.servo_output_raw.servo15_raw)/32767.0 * max_le.toDouble()/scale_le.toDouble() + bias_le.toDouble() * 57.295;
+ qreal le_angle = dir_le.toInt() * ((int16_t)vehicle.servo_output_raw.servo1_raw) /32767.0 * max_le.toDouble()/scale_le.toDouble() + bias_le.toDouble() * 57.295;
+ qreal re_command = dir_re.toInt() * ((int16_t)vehicle.servo_output_raw.servo12_raw)/32767.0 * max_re.toDouble()/scale_re.toDouble() + bias_re.toDouble() * 57.295;
+ qreal re_angle = dir_re.toInt() * ((int16_t)vehicle.servo_output_raw.servo2_raw) /32767.0 * max_re.toDouble()/scale_re.toDouble() + bias_re.toDouble() * 57.295;
- 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() * 57.295;
- 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() * 57.295;
+ qreal ru_command = dir_ru.toInt() * ((int16_t)vehicle.servo_output_raw.servo13_raw)/32767.0 * max_ru.toDouble()/scale_ru.toDouble() + bias_ru.toDouble() * 57.295;
+ qreal ru_angle = dir_ru.toInt() * ((int16_t)vehicle.servo_output_raw.servo3_raw) /32767.0 * max_ru.toDouble()/scale_ru.toDouble() + bias_ru.toDouble() * 57.295;
statusui->setServo(1,QString::number(la_command,'f',2),
@@ -1924,216 +1903,31 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
- statusui->setEngine(1,QString::number((dlink->mavlinknode->vehicle.servo_output_raw.servo6_raw - 1000) * 0.1,'f',0),
- QString::number(dlink->mavlinknode->vehicle.turbinstate.RPM_mea,'f',0));
+ statusui->setEngine(1,QString::number((vehicle.servo_output_raw.servo6_raw - 1000) * 0.1,'f',0),
+ QString::number(vehicle.turbinstate.RPM_mea,'f',0));
- statusui->setEngine(2,QString::number(dlink->mavlinknode->vehicle.ccmstate.fuel_level * 10.0 / 65536.0f,'f',1),
- QString::number(dlink->mavlinknode->vehicle.servo_output_raw.servo7_raw * 0.01,'f',1));//剩余油量
- statusui->setEngine(3,QString::number(dlink->mavlinknode->vehicle.ccmstate.volts[2],'f',0),0);//油压
+ statusui->setEngine(2,QString::number(vehicle.ccmstate.fuel_level * 10.0 / 65536.0f,'f',1),
+ QString::number(vehicle.servo_output_raw.servo7_raw * 0.01,'f',1));//剩余油量
+ statusui->setEngine(3,QString::number(vehicle.ccmstate.volts[2],'f',0),0);//油压
- statusui->setEngine(4,QString::number(dlink->mavlinknode->vehicle.ccmstate.temp[1] * 0.1,'f',1),//温度
- QString::number(dlink->mavlinknode->vehicle.ccmstate.temp[0] * 0.1,'f',1));
+ statusui->setEngine(4,QString::number(vehicle.ccmstate.temp[1] * 0.1,'f',1),//温度
+ QString::number(vehicle.ccmstate.temp[0] * 0.1,'f',1));
- statusui->setBattery(1,QString::number(dlink->mavlinknode->vehicle.bmustate.BAT1_group_voltage_mv * 0.001,'f',1),
- QString::number((float)((int16_t)dlink->mavlinknode->vehicle.bmustate.BAT1_group_current_dA) *0.1f,'f',1));
+ statusui->setBattery(1,QString::number(vehicle.bmustate.BAT1_group_voltage_mv * 0.001,'f',1),
+ QString::number((float)((int16_t)vehicle.bmustate.BAT1_group_current_dA) *0.1f,'f',1));
- statusui->setBattery(2,QString::number(dlink->mavlinknode->vehicle.bmustate.BAT2_group_voltage_mv * 0.001,'f',1),
- QString::number((float)((int16_t)dlink->mavlinknode->vehicle.bmustate.BAT2_group_current_dA) *0.1f,'f',1));
+ statusui->setBattery(2,QString::number(vehicle.bmustate.BAT2_group_voltage_mv * 0.001,'f',1),
+ QString::number((float)((int16_t)vehicle.bmustate.BAT2_group_current_dA) *0.1f,'f',1));
-
-
-
- //QApplication::processEvents();
-
-
-
- //===================diagram ui =============================================
-
-
- /*
- void setAttitude(uint8_t source,
- float ax,float ay,float az,
- float p,float q,float r,
- float rol,float pit,float yaw);
-
- void setBaseState(uint32_t pos,QVariant real,QVariant meas);
- void setServo(uint32_t pos,QVariant real,QVariant meas);
- void setEngine(uint32_t pos,QVariant value);
- void setBattery(uint32_t pos,QVariant value);
- void setDlink(uint32_t pos,QVariant value);
- void setNavigation(uint32_t pos,QVariant value);
- void setControlState(uint32_t pos,QVariant value);
-
-
- */
-/*
- toolsui->diagram->setAttitude(1,
- dlink->mavlinknode->vehicle.ins1.ax,
- dlink->mavlinknode->vehicle.ins1.ay,
- dlink->mavlinknode->vehicle.ins1.az,
- dlink->mavlinknode->vehicle.ins1.gx,
- dlink->mavlinknode->vehicle.ins1.gy,
- dlink->mavlinknode->vehicle.ins1.gx,
- dlink->mavlinknode->vehicle.ins1.roll * 57.3,
- dlink->mavlinknode->vehicle.ins1.pitch * 57.3,
- dlink->mavlinknode->vehicle.ins1.yaw * 57.3);//ins
- toolsui->diagram->setAttitude(2,
- dlink->mavlinknode->vehicle.ins2.ax,
- dlink->mavlinknode->vehicle.ins2.ay,
- dlink->mavlinknode->vehicle.ins2.az,
- dlink->mavlinknode->vehicle.ins2.gx,
- dlink->mavlinknode->vehicle.ins2.gy,
- dlink->mavlinknode->vehicle.ins2.gx,
- dlink->mavlinknode->vehicle.ins2.roll * 57.3,
- dlink->mavlinknode->vehicle.ins2.pitch * 57.3,
- dlink->mavlinknode->vehicle.ins2.yaw * 57.3);//sbg
-
- toolsui->diagram->setAttitude(3,
- 0,
- 0,
- 0,
- dlink->mavlinknode->vehicle.attitude.rollspeed * 57.3,
- dlink->mavlinknode->vehicle.attitude.pitchspeed * 57.3,
- dlink->mavlinknode->vehicle.attitude.yawspeed * 57.3,
- dlink->mavlinknode->vehicle.attitude.roll * 57.3,
- dlink->mavlinknode->vehicle.attitude.pitch * 57.3,
- dlink->mavlinknode->vehicle.attitude.yaw * 57.3);//use
-
-
-
- toolsui->diagram->setBaseState(1,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.alpha,'f',1),0);
- toolsui->diagram->setBaseState(2,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.beta,'f',1),0);
-
- toolsui->diagram->setBaseState(3,QString::number(dlink->mavlinknode->vehicle.attitude.roll * 57.3,'f',1),
- QString::number(dlink->mavlinknode->vehicle.nav_controller_output.nav_roll,'f',1));
-
- toolsui->diagram->setBaseState(4,QString::number(dlink->mavlinknode->vehicle.attitude.pitch * 57.3,'f',1),
- QString::number(dlink->mavlinknode->vehicle.nav_controller_output.nav_pitch,'f',1));
-
- toolsui->diagram->setBaseState(5,QString::number(to360deg(dlink->mavlinknode->vehicle.gps_raw_int.cog * 0.01),'f',1),
- QString::number(to360deg(dlink->mavlinknode->vehicle.nav_controller_output.nav_bearing),'f',1));
-
- toolsui->diagram->setBaseState(6,QString::number(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4,'f',1),
- QString::number(dlink->mavlinknode->vehicle.gps_raw_int.alt * 10e-4
- +dlink->mavlinknode->vehicle.nav_controller_output.alt_error,'f',1));
-
- toolsui->diagram->setBaseState(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));
-
- toolsui->diagram->setBaseState(8,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed,'f',1),
- QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed
- +dlink->mavlinknode->vehicle.nav_controller_output.aspd_error,'f',1));
-
- toolsui->diagram->setBaseState(9,QString::number(dlink->mavlinknode->vehicle.gps_raw_int.vel * 10e-3,'f',1),0);
- toolsui->diagram->setBaseState(10,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.mach,'f',2),0);
- toolsui->diagram->setBaseState(11,QString::number(-dlink->mavlinknode->vehicle.global_position_int.vz * 10e-3,'f',1),0);
-
-
-
-
- toolsui->diagram->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));
- toolsui->diagram->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));
- toolsui->diagram->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));
- toolsui->diagram->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));
- toolsui->diagram->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->diagram->setServo(1,QString::number( ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo14_raw)/32767.0 * 35.0 / 1.12 - m_la,'f',2),
- QString::number( ((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo4_raw)/32767.0 * 35.0 / 1.12 - m_la,'f',2));
- toolsui->diagram->setServo(2,QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo11_raw)/32767.0 * 35.0 / 1.117 - m_ra,'f',2),
- QString::number(-((int16_t)dlink->mavlinknode->vehicle.servo_output_raw.servo5_raw)/32767.0 * 35.0 / 1.117 - m_ra,'f',2));
- toolsui->diagram->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));
- toolsui->diagram->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));
- toolsui->diagram->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));
-
-*/
-
-
- /*
- QString Fix;
- switch (dlink->mavlinknode->vehicle.gps_raw_int.fix_type) {
- case 0:
- case 1:
- Fix.append(tr("GPS Unlocated"));
- break;
- case 2:
- case 3:
- Fix.append(tr("%1D").arg(dlink->mavlinknode->vehicle.gps_raw_int.fix_type));
- break;
- case 4:
- Fix.append(tr("fixed"));
- break;
- case 5:
- Fix.append(tr("float"));
- break;
- default:
- Fix.append(tr("%1").arg(dlink->mavlinknode->vehicle.gps_raw_int.fix_type));
- break;
- }
-
- */
-
-/*
- toolsui->diagram->setNavigation(1,Fix);//定位状态
- toolsui->diagram->setNavigation(2,QString::number(dlink->mavlinknode->vehicle.gps_raw_int.satellites_visible));//微型数
- toolsui->diagram->setNavigation(3,getBit(health,12)?(tr("内置惯导")):(tr("外置SBG")));//数据源
- //toolsui->diagram->setNavigation(4,QString::number(dlink->mavlinknode->bitrate));//目标点
- toolsui->diagram->setNavigation(5,QString::number(dlink->mavlinknode->vehicle.nav_controller_output.xtrack_error,'f',1));//侧偏距
- toolsui->diagram->setNavigation(6,QString::number(dlink->mavlinknode->vehicle.nav_controller_output.wp_dist * 0.001,'f',2));//待飞距
-
- toolsui->diagram->setControlState(1,0);//控制模式
- toolsui->diagram->setControlState(2,mode_str);//飞行模式
- toolsui->diagram->setControlState(3,0);//纵向模态
- toolsui->diagram->setControlState(4,0);//横向模态
-
-
-
-
- //单位?
- toolsui->diagram->setEngine(1,QString::number((dlink->mavlinknode->vehicle.servo_output_raw.servo6_raw - 1000) * 0.1,'f',0));
- toolsui->diagram->setEngine(2,QString::number(dlink->mavlinknode->vehicle.turbinstate.RPM_mea,'f',1));
- toolsui->diagram->setEngine(3,QString::number((dlink->mavlinknode->vehicle.ccmstate.volts[2],'f',0)));
- toolsui->diagram->setEngine(4,QString::number(dlink->mavlinknode->vehicle.ccmstate.fuel_level * 10.0 / 65536.0f,'f',1)
- + "/" +
- QString::number(dlink->mavlinknode->vehicle.servo_output_raw.servo7_raw * 0.01,'f',1));
- toolsui->diagram->setEngine(5,QString::number(dlink->mavlinknode->vehicle.ccmstate.temp[1] * 0.1,'f',1));
- toolsui->diagram->setEngine(6,QString::number(dlink->mavlinknode->vehicle.ccmstate.temp[0] * 0.1,'f',1));
-
- toolsui->diagram->setBattery(1,QString::number(dlink->mavlinknode->vehicle.bmustate.BAT1_group_voltage_mv * 0.001,'f',1));
- toolsui->diagram->setBattery(2,QString::number((float)((int16_t)dlink->mavlinknode->vehicle.bmustate.BAT1_group_current_dA) *0.1f,'f',1));
- toolsui->diagram->setBattery(3,QString::number(dlink->mavlinknode->vehicle.bmustate.BAT1_remain_perc *0.1f,'f',1));
- toolsui->diagram->setBattery(4,QString::number((int16_t)dlink->mavlinknode->vehicle.bmustate.BAT1_low_temp_degC,'f',1));
-
- toolsui->diagram->setBattery(5,QString::number(dlink->mavlinknode->vehicle.bmustate.BAT2_group_voltage_mv * 0.001,'f',1));
- toolsui->diagram->setBattery(6,QString::number((float)((int16_t)dlink->mavlinknode->vehicle.bmustate.BAT2_group_current_dA) *0.1f,'f',1));
- toolsui->diagram->setBattery(7,QString::number(dlink->mavlinknode->vehicle.bmustate.BAT2_remain_perc *0.1f,'f',1));
- toolsui->diagram->setBattery(8,QString::number((int16_t)dlink->mavlinknode->vehicle.bmustate.BAT2_low_temp_degC,'f',1));
-
- toolsui->diagram->setDlink(1,QString::number(dlink->mavlinknode->rssi,'f',0));
- toolsui->diagram->setDlink(2,QString::number(dlink->mavlinknode->rate_in));
-*/
-
- //dlink->mavlinknode->vehicle.turbinstate.RPM_mea = 12000;
-
-
- if((isEngineStartUp == false)&&(dlink->mavlinknode->vehicle.turbinstate.RPM_mea >= 10000))
+ if((isEngineStartUp == false)&&(vehicle.turbinstate.RPM_mea >= 10000))
{
StartupTime->setTime(QDateTime::currentDateTime().time());
isEngineStartUp = true;
}
- else if((isEngineStartUp == true)&&(dlink->mavlinknode->vehicle.turbinstate.RPM_mea < 8000))
+ else if((isEngineStartUp == true)&&(vehicle.turbinstate.RPM_mea < 8000))
{
isEngineStartUp = false;
}
@@ -2145,7 +1939,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString bit1;
- switch (dlink->mavlinknode->vehicle.ins1.BIT & 0x0F) {
+ switch (vehicle.ins1.BIT & 0x0F) {
default:
case 0:
{
@@ -2171,7 +1965,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString att1;
- if(dlink->mavlinknode->vehicle.ins1.BIT & 0x10)
+ if(vehicle.ins1.BIT & 0x10)
{
att1.append(tr("正常"));
}
@@ -2180,7 +1974,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString heading1;
- if(dlink->mavlinknode->vehicle.ins1.BIT & 0x20)
+ if(vehicle.ins1.BIT & 0x20)
{
heading1.append(tr("正常"));
}
@@ -2189,7 +1983,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString spd1;
- if(dlink->mavlinknode->vehicle.ins1.BIT & 0x40)
+ if(vehicle.ins1.BIT & 0x40)
{
spd1.append(tr("正常"));
}
@@ -2198,7 +1992,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString pos1;
- if(dlink->mavlinknode->vehicle.ins1.BIT & 0x80)
+ if(vehicle.ins1.BIT & 0x80)
{
pos1.append(tr("正常"));
}
@@ -2209,7 +2003,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString sys1;
- switch (dlink->mavlinknode->vehicle.ins1.sys_status & 0x0F) {
+ switch (vehicle.ins1.sys_status & 0x0F) {
default:
case 0:
{
@@ -2231,7 +2025,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString com1;
- switch (dlink->mavlinknode->vehicle.ins1.com_status & 0x0F) {
+ switch (vehicle.ins1.com_status & 0x0F) {
default:
case 0:
{
@@ -2253,7 +2047,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString gps1;
- switch (dlink->mavlinknode->vehicle.ins1.gps_status) {
+ switch (vehicle.ins1.gps_status) {
case 0:
gps1.append(tr("未定位"));
case 1:
@@ -2293,7 +2087,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
- toolsui->senser->setINS(1,1,QString::number(dlink->mavlinknode->vehicle.ins1.satellites_visible));
+ toolsui->senser->setINS(1,1,QString::number(vehicle.ins1.satellites_visible));
toolsui->senser->setINS(1,2,bit1);//bit
toolsui->senser->setINS(1,3,att1);//bit1
toolsui->senser->setINS(1,4,heading1);//bit2
@@ -2302,34 +2096,34 @@ void MainWindow::updateUI()//事件驱动式更新数据
toolsui->senser->setINS(1,7,sys1);//sys
toolsui->senser->setINS(1,8,com1);//com
toolsui->senser->setINS(1,9,gps1);//gps
- toolsui->senser->setINS(1,10,QString::number(dlink->mavlinknode->vehicle.ins1.lon,'f',8));
- toolsui->senser->setINS(1,11,QString::number(dlink->mavlinknode->vehicle.ins1.lat,'f',8));
- toolsui->senser->setINS(1,12,QString::number(dlink->mavlinknode->vehicle.ins1.alt,'f',1));
- toolsui->senser->setINS(1,13,QString::number(sqrt(pow(dlink->mavlinknode->vehicle.ins1.v_north,2) +
- pow(dlink->mavlinknode->vehicle.ins1.v_east,2) +
- pow(dlink->mavlinknode->vehicle.ins1.v_up,2)),'f',1));
- toolsui->senser->setINS(1,14,QString::number(dlink->mavlinknode->vehicle.ins1.roll * 57.3,'f',1));
- toolsui->senser->setINS(1,15,QString::number(dlink->mavlinknode->vehicle.ins1.pitch * 57.3,'f',1));
- toolsui->senser->setINS(1,16,QString::number(to360deg(dlink->mavlinknode->vehicle.ins1.yaw * 57.3),'f',1));
+ toolsui->senser->setINS(1,10,QString::number(vehicle.ins1.lon,'f',8));
+ toolsui->senser->setINS(1,11,QString::number(vehicle.ins1.lat,'f',8));
+ toolsui->senser->setINS(1,12,QString::number(vehicle.ins1.alt,'f',1));
+ toolsui->senser->setINS(1,13,QString::number(sqrt(pow(vehicle.ins1.v_north,2) +
+ pow(vehicle.ins1.v_east,2) +
+ pow(vehicle.ins1.v_up,2)),'f',1));
+ toolsui->senser->setINS(1,14,QString::number(vehicle.ins1.roll * 57.3,'f',1));
+ toolsui->senser->setINS(1,15,QString::number(vehicle.ins1.pitch * 57.3,'f',1));
+ toolsui->senser->setINS(1,16,QString::number(to360deg(vehicle.ins1.yaw * 57.3),'f',1));
- if((dlink->mavlinknode->vehicle.ins1.v_east != 0)||
- (dlink->mavlinknode->vehicle.ins1.v_north != 0))
+ if((vehicle.ins1.v_east != 0)||
+ (vehicle.ins1.v_north != 0))
{
- toolsui->senser->setINS(1,17,QString::number(to360deg(atan2(dlink->mavlinknode->vehicle.ins1.v_east,
- dlink->mavlinknode->vehicle.ins1.v_north) * 57.3),'f',1));
+ toolsui->senser->setINS(1,17,QString::number(to360deg(atan2(vehicle.ins1.v_east,
+ vehicle.ins1.v_north) * 57.3),'f',1));
}
- toolsui->senser->setINS(1,18,QString::number(dlink->mavlinknode->vehicle.ins1.gx,'f',1));
- toolsui->senser->setINS(1,19,QString::number(dlink->mavlinknode->vehicle.ins1.gy,'f',1));
- toolsui->senser->setINS(1,20,QString::number(dlink->mavlinknode->vehicle.ins1.gz,'f',1));
- toolsui->senser->setINS(1,21,QString::number(dlink->mavlinknode->vehicle.ins1.ax,'f',1));
- toolsui->senser->setINS(1,22,QString::number(dlink->mavlinknode->vehicle.ins1.ay,'f',1));
- toolsui->senser->setINS(1,23,QString::number(dlink->mavlinknode->vehicle.ins1.az,'f',1));
+ toolsui->senser->setINS(1,18,QString::number(vehicle.ins1.gx,'f',1));
+ toolsui->senser->setINS(1,19,QString::number(vehicle.ins1.gy,'f',1));
+ toolsui->senser->setINS(1,20,QString::number(vehicle.ins1.gz,'f',1));
+ toolsui->senser->setINS(1,21,QString::number(vehicle.ins1.ax,'f',1));
+ toolsui->senser->setINS(1,22,QString::number(vehicle.ins1.ay,'f',1));
+ toolsui->senser->setINS(1,23,QString::number(vehicle.ins1.az,'f',1));
QString bit2;
- switch (dlink->mavlinknode->vehicle.ins2.BIT & 0x0F) {
+ switch (vehicle.ins2.BIT & 0x0F) {
default:
case 0:
{
@@ -2354,7 +2148,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString att2;
- if(dlink->mavlinknode->vehicle.ins2.BIT & 0x10)
+ if(vehicle.ins2.BIT & 0x10)
{
att2.append(tr("正常"));
}
@@ -2363,7 +2157,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString heading2;
- if(dlink->mavlinknode->vehicle.ins2.BIT & 0x20)
+ if(vehicle.ins2.BIT & 0x20)
{
heading2.append(tr("正常"));
}
@@ -2372,7 +2166,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString spd2;
- if(dlink->mavlinknode->vehicle.ins2.BIT & 0x40)
+ if(vehicle.ins2.BIT & 0x40)
{
spd2.append(tr("正常"));
}
@@ -2381,7 +2175,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
}
QString pos2;
- if(dlink->mavlinknode->vehicle.ins2.BIT & 0x80)
+ if(vehicle.ins2.BIT & 0x80)
{
pos2.append(tr("正常"));
}
@@ -2392,7 +2186,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString sys2;
- switch (dlink->mavlinknode->vehicle.ins2.sys_status & 0x0F) {
+ switch (vehicle.ins2.sys_status & 0x0F) {
default:
case 0:
{
@@ -2414,7 +2208,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString com2;
- switch (dlink->mavlinknode->vehicle.ins2.com_status & 0x0F) {
+ switch (vehicle.ins2.com_status & 0x0F) {
default:
case 0:
{
@@ -2436,7 +2230,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
QString gps2;
- switch (dlink->mavlinknode->vehicle.ins2.gps_status) {
+ switch (vehicle.ins2.gps_status) {
case 0:
gps2.append(tr("未定位"));
case 1:
@@ -2475,7 +2269,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
- toolsui->senser->setINS(2,1,QString::number(dlink->mavlinknode->vehicle.ins2.satellites_visible));
+ toolsui->senser->setINS(2,1,QString::number(vehicle.ins2.satellites_visible));
toolsui->senser->setINS(2,2,bit2);
toolsui->senser->setINS(2,3,att2);//bit1
toolsui->senser->setINS(2,4,heading2);//bit2
@@ -2484,44 +2278,44 @@ void MainWindow::updateUI()//事件驱动式更新数据
toolsui->senser->setINS(2,7,sys2);
toolsui->senser->setINS(2,8,com2);
toolsui->senser->setINS(2,9,gps2);
- toolsui->senser->setINS(2,10,QString::number(dlink->mavlinknode->vehicle.ins2.lon,'f',8));
- toolsui->senser->setINS(2,11,QString::number(dlink->mavlinknode->vehicle.ins2.lat,'f',8));
- toolsui->senser->setINS(2,12,QString::number(dlink->mavlinknode->vehicle.ins2.alt,'f',1));
- toolsui->senser->setINS(2,13,QString::number(sqrt(pow(dlink->mavlinknode->vehicle.ins2.v_north,2) +
- pow(dlink->mavlinknode->vehicle.ins2.v_east,2) +
- pow(dlink->mavlinknode->vehicle.ins2.v_up,2)),'f',1));
- toolsui->senser->setINS(2,14,QString::number(dlink->mavlinknode->vehicle.ins2.roll * 57.3,'f',1));
- toolsui->senser->setINS(2,15,QString::number(dlink->mavlinknode->vehicle.ins2.pitch * 57.3,'f',1));
- toolsui->senser->setINS(2,16,QString::number(to360deg(dlink->mavlinknode->vehicle.ins2.yaw * 57.3),'f',1));
+ toolsui->senser->setINS(2,10,QString::number(vehicle.ins2.lon,'f',8));
+ toolsui->senser->setINS(2,11,QString::number(vehicle.ins2.lat,'f',8));
+ toolsui->senser->setINS(2,12,QString::number(vehicle.ins2.alt,'f',1));
+ toolsui->senser->setINS(2,13,QString::number(sqrt(pow(vehicle.ins2.v_north,2) +
+ pow(vehicle.ins2.v_east,2) +
+ pow(vehicle.ins2.v_up,2)),'f',1));
+ toolsui->senser->setINS(2,14,QString::number(vehicle.ins2.roll * 57.3,'f',1));
+ toolsui->senser->setINS(2,15,QString::number(vehicle.ins2.pitch * 57.3,'f',1));
+ toolsui->senser->setINS(2,16,QString::number(to360deg(vehicle.ins2.yaw * 57.3),'f',1));
- if((dlink->mavlinknode->vehicle.ins2.v_east != 0)||
- (dlink->mavlinknode->vehicle.ins2.v_north != 0))
+ if((vehicle.ins2.v_east != 0)||
+ (vehicle.ins2.v_north != 0))
{
- toolsui->senser->setINS(2,17,QString::number(to360deg(atan2(dlink->mavlinknode->vehicle.ins2.v_east,
- dlink->mavlinknode->vehicle.ins2.v_north) * 57.3),'f',1));
+ toolsui->senser->setINS(2,17,QString::number(to360deg(atan2(vehicle.ins2.v_east,
+ vehicle.ins2.v_north) * 57.3),'f',1));
}
- toolsui->senser->setINS(2,18,QString::number(dlink->mavlinknode->vehicle.ins2.gx,'f',1));
- toolsui->senser->setINS(2,19,QString::number(dlink->mavlinknode->vehicle.ins2.gy,'f',1));
- toolsui->senser->setINS(2,20,QString::number(dlink->mavlinknode->vehicle.ins2.gz,'f',1));
- toolsui->senser->setINS(2,21,QString::number(dlink->mavlinknode->vehicle.ins2.ax,'f',1));
- toolsui->senser->setINS(2,22,QString::number(dlink->mavlinknode->vehicle.ins2.ay,'f',1));
- toolsui->senser->setINS(2,23,QString::number(dlink->mavlinknode->vehicle.ins2.az,'f',1));
+ toolsui->senser->setINS(2,18,QString::number(vehicle.ins2.gx,'f',1));
+ toolsui->senser->setINS(2,19,QString::number(vehicle.ins2.gy,'f',1));
+ toolsui->senser->setINS(2,20,QString::number(vehicle.ins2.gz,'f',1));
+ toolsui->senser->setINS(2,21,QString::number(vehicle.ins2.ax,'f',1));
+ toolsui->senser->setINS(2,22,QString::number(vehicle.ins2.ay,'f',1));
+ toolsui->senser->setINS(2,23,QString::number(vehicle.ins2.az,'f',1));
- toolsui->senser->setDAS(1,3,QString::number(dlink->mavlinknode->vehicle.vfr_hud.alt,'f',1));
- toolsui->senser->setDAS(1,4,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed,'f',1));
- toolsui->senser->setDAS(1,5,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.Airspeed,'f',1));
- toolsui->senser->setDAS(1,6,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.mach,'f',3));
- toolsui->senser->setDAS(1,7,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.qbar * 0.01,'f',3));
- toolsui->senser->setDAS(1,8,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.ps * 0.01,'f',3));
+ toolsui->senser->setDAS(1,3,QString::number(vehicle.vfr_hud.alt,'f',1));
+ toolsui->senser->setDAS(1,4,QString::number(vehicle.vfr_hud.airspeed,'f',1));
+ toolsui->senser->setDAS(1,5,QString::number(vehicle.emb_atom_com.Airspeed,'f',1));
+ toolsui->senser->setDAS(1,6,QString::number(vehicle.emb_atom_com.mach,'f',3));
+ toolsui->senser->setDAS(1,7,QString::number(vehicle.emb_atom_com.qbar * 0.01,'f',3));
+ toolsui->senser->setDAS(1,8,QString::number(vehicle.emb_atom_com.ps * 0.01,'f',3));
- toolsui->senser->setDAS(2,1,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.alpha,'f',1));
- toolsui->senser->setDAS(2,2,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.beta,'f',1));
- //toolsui->senser->setDAS(2,3,QString::number(dlink->mavlinknode->vehicle.emb_atom_com.));
- toolsui->senser->setDAS(2,4,QString::number(dlink->mavlinknode->vehicle.vfr_hud.airspeed,'f',1));
- toolsui->senser->setDAS(2,7,QString::number(dlink->mavlinknode->vehicle.scaled_pressure.press_diff,'f',3));
+ toolsui->senser->setDAS(2,1,QString::number(vehicle.emb_atom_com.alpha,'f',1));
+ toolsui->senser->setDAS(2,2,QString::number(vehicle.emb_atom_com.beta,'f',1));
+ //toolsui->senser->setDAS(2,3,QString::number(vehicle.emb_atom_com.));
+ toolsui->senser->setDAS(2,4,QString::number(vehicle.vfr_hud.airspeed,'f',1));
+ toolsui->senser->setDAS(2,7,QString::number(vehicle.scaled_pressure.press_diff,'f',3));
toolsui->senser->setDAS(2,8,QString::number(dlink->mavlinknode->vehicle.scaled_pressure.press_abs,'f',3));
diff --git a/MavLinkNode/mavlinknode.cpp b/MavLinkNode/mavlinknode.cpp
index 737ceb7..4d077b4 100644
--- a/MavLinkNode/mavlinknode.cpp
+++ b/MavLinkNode/mavlinknode.cpp
@@ -937,22 +937,11 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
void MavLinkNode::StatusParse(mavlink_message_t msg)
{
- //_vehicle vehicle = vehicleList.value(msg.sysid);
+ _vehicle vehicle = vehicleList.value(msg.sysid);
vehicle.sysid = msg.sysid;
vehicle.compid = msg.compid;
-/*
- if(LocationTime)
- {
-
- gpsTimer.ms = LocationTime->msec();
-
- qDebug() << LocationTime->hour() << LocationTime->minute() << LocationTime->msec();
- }
- */
-
-
gpsTimer.ms = QDateTime::currentDateTime().currentMSecsSinceEpoch() % 1000;
@@ -1166,17 +1155,6 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
gpsTimer.min = min;
gpsTimer.sec = sec;
- /*
- if(vehicle.ins1.satellites_visible >= 7)
- {
- if(!LocationTime)
- {
- LocationTime = new QTime();
- LocationTime->setHMS(hour,min,sec);
- LocationTime->start();
- }
- }
- */
@@ -1707,7 +1685,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
- //vehicleList.insert(msg.sysid,vehicle);//直接覆盖
+ vehicleList.insert(msg.sysid,vehicle);//直接覆盖
//emit signal_vehicle(vehicle);
diff --git a/MavLinkNode/mavlinknode.h b/MavLinkNode/mavlinknode.h
index 998cb32..72c6777 100644
--- a/MavLinkNode/mavlinknode.h
+++ b/MavLinkNode/mavlinknode.h
@@ -123,8 +123,7 @@ public:
- QByteArray rtkrawdata;
-
+ QByteArray rtkrawdata;
QFile * autopilot_version_file = nullptr;
QFile * sys_status_file = nullptr;
diff --git a/MavLinkNode/missionprocess.cpp b/MavLinkNode/missionprocess.cpp
index d72ce7c..51feba2 100644
--- a/MavLinkNode/missionprocess.cpp
+++ b/MavLinkNode/missionprocess.cpp
@@ -52,6 +52,93 @@ void MissionProcess::process()//线程函数
}
}
+
+void MissionProcess::checkoutVehicle(int sysid)
+{
+ QMap> missionGroup = missions.value(sysid);//读出一个飞机的所有航线
+
+ QMap group1 = missionGroup.value(1);
+ QMap group3 = missionGroup.value(3);
+ QMap group4 = missionGroup.value(4);
+ QMap group5 = missionGroup.value(5);
+ QMap group6 = missionGroup.value(6);
+
+
+ foreach (mavlink_mission_item_int_t item, group1) {
+ //把航点发出去
+ emit vehicleChanged(item.param1,item.param2,item.param3,item.param4,
+ item.x,item.y,item.z,
+ item.seq,item.mission_type,
+ item.command,
+ item.target_system,
+ item.target_component,
+ item.frame,
+ item.current,
+ item.autocontinue,
+ item.mission_type);
+ }
+
+ foreach (mavlink_mission_item_int_t item, group3) {
+ //把航点发出去
+ emit vehicleChanged(item.param1,item.param2,item.param3,item.param4,
+ item.x,item.y,item.z,
+ item.seq,item.mission_type,
+ item.command,
+ item.target_system,
+ item.target_component,
+ item.frame,
+ item.current,
+ item.autocontinue,
+ item.mission_type);
+ }
+
+ foreach (mavlink_mission_item_int_t item, group4) {
+ //把航点发出去
+ emit vehicleChanged(item.param1,item.param2,item.param3,item.param4,
+ item.x,item.y,item.z,
+ item.seq,item.mission_type,
+ item.command,
+ item.target_system,
+ item.target_component,
+ item.frame,
+ item.current,
+ item.autocontinue,
+ item.mission_type);
+ }
+
+ foreach (mavlink_mission_item_int_t item, group5) {
+ //把航点发出去
+ emit vehicleChanged(item.param1,item.param2,item.param3,item.param4,
+ item.x,item.y,item.z,
+ item.seq,item.mission_type,
+ item.command,
+ item.target_system,
+ item.target_component,
+ item.frame,
+ item.current,
+ item.autocontinue,
+ item.mission_type);
+ }
+
+ foreach (mavlink_mission_item_int_t item, group6) {
+ //把航点发出去
+ emit vehicleChanged(item.param1,item.param2,item.param3,item.param4,
+ item.x,item.y,item.z,
+ item.seq,item.mission_type,
+ item.command,
+ item.target_system,
+ item.target_component,
+ item.frame,
+ item.current,
+ item.autocontinue,
+ item.mission_type);
+ }
+
+}
+
+
+
+
void MissionProcess::ReadCmd(uint8_t m_sysid, uint8_t m_compid,int m_group)
{
if(mission_status.m_Mode == Nop_Mode)//没有任务正在下载
@@ -239,9 +326,17 @@ void MissionProcess::Parse(mavlink_message_t msg)
if(mission_item_int.seq == 0)
{
emit clearWaypoint();
+
+ QMap> missionGroup = missions.value(msg.sysid);//读出一个飞机的所有航线
+ QMap points = missionGroup.value(mission_item_int.mission_type);//读出一组
+
+ points.clear();
+ missionGroup.insert(mission_item_int.mission_type,points);
+ missions.insert(msg.sysid,missionGroup);
+
}
- //把航点发出去
+ //把航点发出去
emit receivedPoint(mission_item_int.param1,mission_item_int.param2,mission_item_int.param3,mission_item_int.param4,
mission_item_int.x,mission_item_int.y,mission_item_int.z,
mission_item_int.seq,mission_item_int.mission_type,
@@ -255,6 +350,15 @@ void MissionProcess::Parse(mavlink_message_t msg)
qDebug() << "recieve mission type" << mission_item_int.mission_type;
+
+ QMap> missionGroup = missions.value(msg.sysid);//读出一个飞机的所有航线
+ QMap points = missionGroup.value(mission_item_int.mission_type);//读出一组
+
+ points.insert(mission_item_int.seq,mission_item_int);
+ missionGroup.insert(mission_item_int.mission_type,points);
+ missions.insert(msg.sysid,missionGroup);
+
+
mission_status.recieve.isWaitingforItem = false;//已经收到航点,不用再等待
}break;
case MAVLINK_MSG_ID_MISSION_ITEM: {
diff --git a/MavLinkNode/missionprocess.h b/MavLinkNode/missionprocess.h
index 66aba9f..0c70188 100644
--- a/MavLinkNode/missionprocess.h
+++ b/MavLinkNode/missionprocess.h
@@ -70,6 +70,11 @@ public:
int currentGroup = 3;
+
+ QMap>> missions;//SysID 航线组 航线
+
+
+
public slots:
void Parse(mavlink_message_t msg);
@@ -104,6 +109,9 @@ public slots:
uint16_t compid,
uint16_t mission_type);
+
+ void checkoutVehicle(int sysid);
+
private slots:
//线程私有接口
void process();
@@ -163,6 +171,18 @@ signals:
uint8_t autocontinue,
uint8_t mission_type);
+ void vehicleChanged(float param1,float param2,float param3,float param4,
+ int32_t x,int32_t y,float z,
+ uint16_t seq,
+ uint16_t group,
+ uint16_t command,
+ uint8_t target_system,
+ uint8_t target_component,
+ uint8_t frame,
+ uint8_t current,
+ uint8_t autocontinue,
+ uint8_t mission_type);
+
//void currentGroup(int group);
void currentPoint(int seq);
diff --git a/dlink/DLINK_zh_CN.qm b/dlink/DLINK_zh_CN.qm
new file mode 100644
index 0000000..7a9d2a2
Binary files /dev/null and b/dlink/DLINK_zh_CN.qm differ
diff --git a/dlink/DLINK_zh_CN.ts b/dlink/DLINK_zh_CN.ts
new file mode 100644
index 0000000..59db536
--- /dev/null
+++ b/dlink/DLINK_zh_CN.ts
@@ -0,0 +1,35 @@
+
+
+
+
+ DLink
+
+ Serial Port Open Success
+ 串口打开成功
+
+
+ Serial Port Open Fail
+ 串口打开失败
+
+
+ Serial Port close
+ 关闭串口
+
+
+ UdpSocket open
+ UDP端口打开
+
+
+ Bind and join the gdt multicast group
+ 绑定并加入UDP组播
+
+
+ Fail to join gdt multicast group.
+ 加入UDP组播失败.
+
+
+ Fail to bind gdt multicast socket.
+ 绑定UDP组播失败.
+
+
+
diff --git a/dlink/dlink.pro b/dlink/dlink.pro
index f5ce802..eb937ba 100644
--- a/dlink/dlink.pro
+++ b/dlink/dlink.pro
@@ -104,6 +104,9 @@ unix {
system(cp $$src_dir $$dst_dir -arf )
}
+TRANSLATIONS += DLINK_zh_CN.ts
+
+
diff --git a/opmap/MAP_zh_CN.ts b/opmap/MAP_zh_CN.ts
index d96b48a..ae5cfa7 100644
--- a/opmap/MAP_zh_CN.ts
+++ b/opmap/MAP_zh_CN.ts
@@ -93,67 +93,67 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic
停止缓存地图
-
+
Load Geo Fence File :%1
导入围栏文件:%1
-
+
Load Mission File:Group %1,%2
导入航线文件:第%1组航线,%2
-
+
Save Fence File:%1
保存围栏文件:%1
-
+
Save Mission File:Group %1,%2
保存航线文件:第%1组航线,%2
-
+
please load fence first
请先导入围栏
-
+
start upload fence,total:%1
开始上传围栏,总数%1
-
+
please load mission first
请先导入航线
-
+
start upload mission %1,total %2
开始上传航线%1,总数%2
-
+
upload fail %1
上传失败 %1
-
+
recieve fence polygon inclusion: %1
接收到多边形安控区 :%1
-
+
recieve fence polygon exclusion: %1
接收到多边形禁飞区 :%1
-
+
recieve fence circle inclusion: %1
接收到圆形安控区 :%1
-
+
recieve fence circle exclusion: %1
接收到圆形禁飞区 :%1
@@ -162,7 +162,7 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic
围栏
-
+
recieve way point group:%1 seq:%2
收到航点:第%1组,第%2点
diff --git a/opmap/mapwidget/opmapwidget.cpp b/opmap/mapwidget/opmapwidget.cpp
index 5cf6fb4..adec1ea 100644
--- a/opmap/mapwidget/opmapwidget.cpp
+++ b/opmap/mapwidget/opmapwidget.cpp
@@ -347,6 +347,12 @@ void OPMapWidget::addUAV(int sysid,int compid)
connect(uavItem,SIGNAL(selected(int,int)),
this,SIGNAL(uav_selected(int,int)));
+ connect(uavItem,SIGNAL(vehicleChanged(int,int)),
+ this,SLOT(checkoutVehicle(int,int)));
+
+
+
+
uavItem->setOpacity(overlayOpacity);
//检测,如果只有一个飞机,那么就选中
@@ -3178,6 +3184,278 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
}
+
+void OPMapWidget::checkoutVehicle(int sys,int comp)
+{
+ //检查并发送读取航线的信号
+
+ //删除一个组
+ foreach(QGraphicsItem * i, map->childItems()) {
+ WayPointItem *w = qgraphicsitem_cast(i);
+
+ if (w) {
+ emit WPDeleted(w->Number(), w);
+ delete w;
+ }
+ }
+
+ foreach(QGraphicsItem * i, map->childItems()) {
+ geoFencecircle *w = qgraphicsitem_cast(i);
+ if (w) {
+ delete w;
+ }
+ }
+
+ foreach(QGraphicsItem * i, map->childItems()) {
+ geoFenceitem *w = qgraphicsitem_cast(i);
+ if (w) {
+ delete w;
+ }
+ }
+
+ //发送信号清除表格所有东西
+
+ emit clearTable();
+
+ //发送切换的信号,从缓存读取航线
+
+ emit getMissionFromVehicle(sys);
+
+}
+
+//这个有可能是其他线程运行,导致生成的航点不对,下载得到
+void OPMapWidget::vehicleChanged(float param1,float param2,float param3,float param4,
+ int32_t x,int32_t y,float z,
+ uint16_t seq,
+ uint16_t group,
+ uint16_t command,
+ uint8_t target_system,
+ uint8_t target_component,
+ uint8_t frame,
+ uint8_t current,
+ uint8_t autocontinue,
+ uint8_t mission_type)
+{
+
+ if((mission_type - 2) == -1)
+ {
+ qDebug() << command << seq << param1 << param2 << param3 << param4 << x << y;
+
+ if(command == MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION )
+ {
+ static int PolygonCount = 0;
+ static QList PolygonPoints;
+
+ PolygonCount ++;
+ bool inclusion = true;
+
+ PolygonPoints.push_back(internals::PointLatLng(x * 10e-8,y * 10e-8));
+
+ if(PolygonCount >= param1)
+ {
+
+ QList latlng;
+ qreal lat_sum = 0;
+ qreal lng_sum = 0;
+
+ for (internals::PointLatLng point: PolygonPoints) {
+ qreal lat = point.Lat();
+ qreal lng = point.Lng();
+
+ lat_sum += lat;
+ lng_sum += lng;
+
+ latlng.push_back(QPointF(lat,lng));
+ }
+
+ internals::PointLatLng center;
+
+ center.SetLat(lat_sum/latlng.size());
+ center.SetLng(lng_sum/latlng.size());
+
+ geoFenceitem *polyitem = new geoFenceitem(fenceCount,inclusion,0,center,QColor("#FF8000"),map);
+
+ polyitem->setPoints(PolygonPoints);
+
+ emit createFencePolygon(fenceCount++,PolygonPoints.size(),inclusion,latlng);
+
+ connect(polyitem,SIGNAL(updateFencePolygon(int,qreal,bool,QList)),
+ this,SIGNAL(updateFencePolygon(int,qreal,bool,QList)));
+
+ PolygonCount = 0;
+ PolygonPoints.clear();
+ }
+ }
+ else if(command == MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION )
+ {
+ static int PolygonCount = 0;
+ static QList PolygonPoints;
+
+ PolygonCount ++;
+ bool inclusion = false;
+
+ PolygonPoints.push_back(internals::PointLatLng(x * 10e-8,y * 10e-8));
+
+ if(PolygonCount >= param1)
+ {
+
+ QList latlng;
+ qreal lat_sum = 0;
+ qreal lng_sum = 0;
+
+ for (internals::PointLatLng point: PolygonPoints) {
+ qreal lat = point.Lat();
+ qreal lng = point.Lng();
+
+ lat_sum += lat;
+ lng_sum += lng;
+
+ latlng.push_back(QPointF(lat,lng));
+ }
+
+ internals::PointLatLng center;
+
+ center.SetLat(lat_sum/latlng.size());
+ center.SetLng(lng_sum/latlng.size());
+
+ geoFenceitem *polyitem = new geoFenceitem(fenceCount,inclusion,0,center,QColor("#FF8000"),map);
+
+ polyitem->setPoints(PolygonPoints);
+
+ emit createFencePolygon(fenceCount++,PolygonPoints.size(),inclusion,latlng);
+
+ connect(polyitem,SIGNAL(updateFencePolygon(int,qreal,bool,QList)),
+ this,SIGNAL(updateFencePolygon(int,qreal,bool,QList)));
+
+ PolygonCount = 0;
+ PolygonPoints.clear();
+ }
+ }
+ else if(command == MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION )
+ {
+ bool inclusion = true;
+ qreal radius = param1;
+
+ geoFencecircle *c = new geoFencecircle(fenceCount,inclusion,0,internals::PointLatLng(x * 10e-8,y * 10e-8),radius,QColor("#FF8000"),map);
+ emit createFenceCircle(fenceCount++,radius,inclusion,x * 10e-8,y * 10e-8);
+
+ connect(c,SIGNAL(updateFenceCircle(int,qreal,bool,qreal,qreal)),
+ this,SIGNAL(updateFenceCircle(int,qreal,bool,qreal,qreal)));
+ }
+ else if(command == MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION )
+ {
+ bool inclusion = false;
+ qreal radius = param1;
+
+ geoFencecircle *c = new geoFencecircle(fenceCount,inclusion,0,internals::PointLatLng(x * 10e-8,y * 10e-8),radius,QColor("#FF8000"),map);
+ emit createFenceCircle(fenceCount++,radius,inclusion,x * 10e-8,y * 10e-8);
+
+ connect(c,SIGNAL(updateFenceCircle(int,qreal,bool,qreal,qreal)),
+ this,SIGNAL(updateFenceCircle(int,qreal,bool,qreal,qreal)));
+ }
+ else if(command == MAV_CMD_NAV_RALLY_POINT )
+ {
+
+ }
+ }
+ else
+ {
+ bool isExist = false;
+ foreach(QGraphicsItem * i, map->childItems()) {
+ WayPointItem *w = qgraphicsitem_cast(i);
+ if (w) {
+ if(w->MissionType() == mission_type)//如果组别一样,那么就赋值
+ {
+ if(w->Number() == (seq+1))
+ {
+
+ isExist = true;
+
+ internals::PointLatLng LatLng;
+
+ LatLng.SetLat(x * 10e-8);
+ LatLng.SetLng(y * 10e-8);
+
+
+ w->SetLat(LatLng.Lat());
+ LatLng.SetLng(LatLng.Lng());
+ w->SetNumber(seq+1);
+
+ emit setWPProperty(param1,param2,param3,param4,
+ x,y,z,
+ seq+1,
+ group,
+ command,
+ target_system,
+ target_component,
+ frame,
+ current,
+ autocontinue,
+ mission_type);
+
+
+ w->emitWPProperty();
+
+ }
+ }
+ }
+ }
+
+
+ if(!isExist)
+ {
+ internals::PointLatLng LatLng;
+
+ LatLng.SetLat(x * 10e-8);
+ LatLng.SetLng(y * 10e-8);
+
+ //获取当前组下面的seq最大值
+ WayPointItem *Item = new WayPointItem(LatLng, z,seq+1,mission_type, map);
+
+ ConnectWP(Item);
+ Item->setParentItem(map);
+ Item->SetMissionType(mission_type);
+ int position = Item->Number();
+ emit WPCreated(position, Item);
+ setOverlayOpacity(overlayOpacity);
+
+
+ emit setWPProperty(param1,param2,param3,param4,
+ x,y,z,
+ seq+1,
+ group,
+ command,
+ target_system,
+ target_component,
+ frame,
+ current,
+ autocontinue,
+ mission_type);
+
+
+ Item->emitWPProperty();
+ Item->setisShowTip(isShowTip);
+
+ //===========连线
+ WayPointItem *w_last = WPFind(Item->MissionType(),Item->Number() - 1);
+
+ if(w_last)
+ {
+ WPLineCreate(w_last,Item,Qt::green,false,2);
+ }
+ }
+ }
+
+}
+
+
+
+
+
+
+
+
+
void OPMapWidget::getMapTypes(void)
{
emit MapTypes(Helper::MapTypes());
diff --git a/opmap/mapwidget/opmapwidget.h b/opmap/mapwidget/opmapwidget.h
index b128f4c..d43c271 100644
--- a/opmap/mapwidget/opmapwidget.h
+++ b/opmap/mapwidget/opmapwidget.h
@@ -675,6 +675,11 @@ signals:
void FenceGroupChanged(int old,int cur);
+ void getMissionFromVehicle(int sys);
+
+ void clearTable();
+
+
public slots:
void getAllPoints(int group);
@@ -713,6 +718,23 @@ public slots:
uint8_t mission_type);
+ void vehicleChanged(float param1,float param2,float param3,float param4,
+ int32_t x,int32_t y,float z,
+ uint16_t seq,
+ uint16_t group,
+ uint16_t command,
+ uint8_t target_system,
+ uint8_t target_component,
+ uint8_t frame,
+ uint8_t current,
+ uint8_t autocontinue,
+ uint8_t mission_type);
+
+
+ void checkoutVehicle(int sys,int comp);
+
+
+
void WPLineDelete(WayPointItem *from, WayPointItem *to);
WayPointLine *WPLineFind(WayPointItem *from, WayPointItem *to);
diff --git a/opmap/mapwidget/uavitem.cpp b/opmap/mapwidget/uavitem.cpp
index 3eee7a3..e17b47d 100644
--- a/opmap/mapwidget/uavitem.cpp
+++ b/opmap/mapwidget/uavitem.cpp
@@ -49,7 +49,7 @@ UAVItem::UAVItem(MapGraphicItem *map, OPMapWidget *parent, QString uavPic ,uint8
localposition = map->FromLatLngToLocal(mapwidget->CurrentPosition());
this->setPos(localposition.X(), localposition.Y());
- this->setZValue(4);
+ this->setZValue(7);
trail = new QGraphicsItemGroup(this);
trail->setParentItem(map);
trailLine = new QGraphicsItemGroup(this);
@@ -99,11 +99,11 @@ void UAVItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
{
if (isSelected)
{
- this->setZValue(5);
+ this->setZValue(6);
}
else
{
- this->setZValue(4);
+ this->setZValue(7);
}
}
@@ -200,11 +200,11 @@ void UAVItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
}
+ /*
painter->save();
-
painter->drawRect(boundingRect());
-
painter->restore();
+ */
}
@@ -230,23 +230,28 @@ void UAVItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
- isSelected = true;
- //查找所有
- foreach(QGraphicsItem * i, map->childItems()) {
- UAVItem *uav = qgraphicsitem_cast(i);
- if (uav) {
- if(uav != this)
- {
- uav->setSelect(false);
+ if(isSelected == false)
+ {
+ isSelected = true;
+ //查找所有
+ foreach(QGraphicsItem * i, map->childItems()) {
+ UAVItem *uav = qgraphicsitem_cast(i);
+ if (uav) {
+ if(uav != this)
+ {
+ uav->setSelect(false);
+ }
}
}
- }
- qDebug() << "emit select" << sysid << compid;
- emit selected(sysid,compid);
+ qDebug() << "emit select" << sysid << compid;
+ emit selected(sysid,compid);
- isShowTip = (isShowTip)?(false):(true);
+ isShowTip = (isShowTip)?(false):(true);
- update();
+ emit vehicleChanged(sysid,compid);
+
+ update();
+ }
}
//QGraphicsItem::mouseReleaseEvent(event);
@@ -284,7 +289,7 @@ void UAVItem::setEdit(bool value)
}
else
{
- this->setZValue(4);
+ this->setZValue(7);
}
}
diff --git a/opmap/mapwidget/uavitem.h b/opmap/mapwidget/uavitem.h
index d450d25..cb566d8 100644
--- a/opmap/mapwidget/uavitem.h
+++ b/opmap/mapwidget/uavitem.h
@@ -286,6 +286,8 @@ signals:
void selected(int sys,int comp);
+ void vehicleChanged(int sys,int comp);
+
void UAVReachedWayPoint(int const & waypointnumber, WayPointItem *waypoint);
void UAVLeftSafetyBouble(internals::PointLatLng const & position);
void setChildPosition();