更改传感器数据来源

This commit is contained in:
2023-01-31 10:26:22 +08:00
parent e48d18dc0b
commit 5ad89f2215
+187 -128
View File
@@ -2190,6 +2190,7 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
}
/*
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));
@@ -2203,6 +2204,21 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
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(vehicle.scaled_pressure.press_abs,'f',3));
*/
toolsui->senser->setDAS(1,3,QString::number(qIsNaN(vehicle.vfr_hud.alt)?(0):(vehicle.vfr_hud.alt),'f',1));
toolsui->senser->setDAS(1,4,QString::number(qIsNaN(vehicle.vfr_hud.airspeed)?(0):(vehicle.vfr_hud.airspeed),'f',1));
toolsui->senser->setDAS(1,5,QString::number(qIsNaN(vehicle.emb_atom_com.Airspeed)?(0):(vehicle.emb_atom_com.Airspeed),'f',1));
toolsui->senser->setDAS(1,6,QString::number(qIsNaN(vehicle.emb_atom_com.mach)?(0):(vehicle.emb_atom_com.mach),'f',3));
toolsui->senser->setDAS(1,7,QString::number(qIsNaN(vehicle.emb_atom_com.qbar)?(0):(vehicle.emb_atom_com.qbar) * 0.01,'f',3));
toolsui->senser->setDAS(1,8,QString::number(qIsNaN(vehicle.emb_atom_com.ps)?(0):(vehicle.emb_atom_com.ps) * 0.01,'f',3));
toolsui->senser->setDAS(2,1,QString::number(qIsNaN(vehicle.emb_atom_com.alpha)?(0):(vehicle.emb_atom_com.alpha),'f',1));
toolsui->senser->setDAS(2,2,QString::number(qIsNaN(vehicle.emb_atom_com.beta)?(0):(vehicle.emb_atom_com.beta),'f',1));
toolsui->senser->setDAS(2,4,QString::number(qIsNaN(vehicle.vfr_hud.airspeed)?(0):(vehicle.vfr_hud.airspeed),'f',1));
toolsui->senser->setDAS(2,7,QString::number(qIsNaN(vehicle.scaled_pressure.press_diff)?(0):(vehicle.scaled_pressure.press_diff),'f',3));
toolsui->senser->setDAS(2,8,QString::number(qIsNaN(vehicle.scaled_pressure.press_abs)?(0):(vehicle.scaled_pressure.press_abs),'f',3));
quint16 voltages[10];
@@ -2262,7 +2278,6 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
emit setBat(voltages);
}
void MainWindow::ins1_Update(mavlink_ins1_t ins)
{
QString bit1;
@@ -2411,8 +2426,6 @@ void MainWindow::ins1_Update(mavlink_ins1_t ins)
}
toolsui->senser->setINS(1,1,QString::number(ins.satellites_visible));
toolsui->senser->setINS(1,2,bit1);//bit
toolsui->senser->setINS(1,3,att1);//bit1
@@ -2422,18 +2435,18 @@ void MainWindow::ins1_Update(mavlink_ins1_t ins)
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(ins.lon,'f',8));
toolsui->senser->setINS(1,11,QString::number(ins.lat,'f',8));
toolsui->senser->setINS(1,12,QString::number(ins.alt,'f',1));
toolsui->senser->setINS(1,10,QString::number(qIsNaN(ins.lon)?(0):(ins.lon),'f',8));
toolsui->senser->setINS(1,11,QString::number(qIsNaN(ins.lat)?(0):(ins.lat),'f',8));
toolsui->senser->setINS(1,12,QString::number(qIsNaN(ins.alt)?(0):(ins.alt),'f',1));
toolsui->senser->setINS(1,13,QString::number(sqrt(pow(ins.v_north,2) +
pow(ins.v_east,2) +
pow(ins.v_up,2)),'f',1));
toolsui->senser->setINS(1,14,QString::number(ins.roll * 57.3,'f',1));
toolsui->senser->setINS(1,15,QString::number(ins.pitch * 57.3,'f',1));
toolsui->senser->setINS(1,16,QString::number(to360deg(ins.yaw * 57.3),'f',1));
toolsui->senser->setINS(1,14,QString::number(qIsNaN(ins.roll)?(0):(ins.roll) * 57.3,'f',1));
toolsui->senser->setINS(1,15,QString::number(qIsNaN(ins.pitch)?(0):(ins.pitch) * 57.3,'f',1));
toolsui->senser->setINS(1,16,QString::number(to360deg(qIsNaN(ins.yaw)?(0):(ins.yaw) * 57.3),'f',1));
qreal east = ins.v_east;
qreal north = ins.v_north;
qreal east = qIsNaN(ins.v_east)?(0):(ins.v_east);
qreal north = qIsNaN(ins.v_north)?(0):(ins.v_north);
if((east != 0)||
(north != 0))
{
@@ -2441,149 +2454,195 @@ void MainWindow::ins1_Update(mavlink_ins1_t ins)
north) * 57.3),'f',1));
}
toolsui->senser->setINS(1,18,QString::number(ins.gx,'f',1));
toolsui->senser->setINS(1,19,QString::number(ins.gy,'f',1));
toolsui->senser->setINS(1,20,QString::number(ins.gz,'f',1));
toolsui->senser->setINS(1,21,QString::number(ins.ax,'f',1));
toolsui->senser->setINS(1,22,QString::number(ins.ay,'f',1));
toolsui->senser->setINS(1,23,QString::number(ins.az,'f',1));
toolsui->senser->setINS(1,18,QString::number(qIsNaN(ins.gx)?(0):(ins.gx),'f',1));
toolsui->senser->setINS(1,19,QString::number(qIsNaN(ins.gy)?(0):(ins.gy),'f',1));
toolsui->senser->setINS(1,20,QString::number(qIsNaN(ins.gz)?(0):(ins.gz),'f',1));
toolsui->senser->setINS(1,21,QString::number(qIsNaN(ins.ax)?(0):(ins.ax),'f',1));
toolsui->senser->setINS(1,22,QString::number(qIsNaN(ins.ay)?(0):(ins.ay),'f',1));
toolsui->senser->setINS(1,23,QString::number(qIsNaN(ins.az)?(0):(ins.az),'f',1));
}
void MainWindow::ins2_Update(mavlink_ins2_t ins)
{
uint8_t com = (ins.com_status & 0x30) >> 4;
QString com_str;
com_str.clear();
switch (com) {
case 0:
com_str = tr("准备");
break;
case 1:
com_str = tr("对准中");
break;
case 2:
com_str = tr("导航");
break;
case 3:
com_str = tr("对准失败");
break;
QString bit2;
switch (ins.BIT & 0x0F) {
default:
com_str = tr("未知参数");
break;
case 0:
{
bit2.append(tr("未初始化"));
}break;
case 1:
{
bit2.append(tr("垂直陀螺"));
}break;
case 2:
{
bit2.append(tr("AHRS"));
}break;
case 3:
{
bit2.append(tr("速度导航"));
}break;
case 4:
{
bit2.append(tr("位置导航"));
}break;
}
// statusui->setValue(0,3,2,com_str);
QString att2;
if(ins.BIT & 0x10)
{
att2.append(tr("正常"));
}
else{
att2.append(tr("无效"));
}
com = (ins.com_status & 0x0E) >> 1;
com_str.clear();
switch (com) {
QString heading2;
if(ins.BIT & 0x20)
{
heading2.append(tr("正常"));
}
else{
heading2.append(tr("无效"));
}
QString spd2;
if(ins.BIT & 0x40)
{
spd2.append(tr("正常"));
}
else{
spd2.append(tr("无效"));
}
QString pos2;
if(ins.BIT & 0x80)
{
pos2.append(tr("正常"));
}
else{
pos2.append(tr("无效"));
}
QString sys2;
switch (ins.sys_status & 0x0F) {
default:
case 0:
com_str = tr("未初始化");
break;
{
sys2.append(tr("解算正常"));
}break;
case 1:
com_str = tr("INS/大气");
{
sys2.append(tr("卫星数不足"));
}break;
case 2:
{
sys2.append(tr("内部错误"));
}break;
case 3:
{
sys2.append(tr("速度超限"));
}break;
}
QString com2;
switch (ins.com_status & 0x0F) {
default:
case 0:
{
com2.append(tr("无效"));
}break;
case 1:
{
com2.append(tr("未知"));
}break;
case 2:
{
com2.append(tr("多普勒"));
}break;
case 3:
{
com2.append(tr("微分"));
}break;
}
QString gps2;
switch (ins.gps_status) {
case 0:
gps2.append(tr("未定位"));
case 1:
gps2.append(tr("未知"));
break;
case 2:
com_str = tr("INS/DGPS");
gps2.append(tr("单点"));
break;
case 3:
com_str = tr("INS/GNSS");
gps2.append(tr("伪距差分"));
break;
case 4:
gps2.append(tr("SBAS广域差分"));
break;
case 5:
com_str = tr("GNSS");
gps2.append(tr("广域差分"));
break;
case 6:
gps2.append(tr("RTK_FLOAT"));
break;
case 7:
gps2.append(tr("RTK_INT"));
break;
case 8:
gps2.append(tr("PPP_FLOAT"));
break;
case 9:
gps2.append(tr("PPP_INT"));
break;
case 10:
gps2.append(tr("FIXED"));
break;
default:
com_str = tr("未知参数");
break;
}
// statusui->setValue(0,3,3,com_str);
uint8_t com2 = (ins.com_status & 0x30) >> 4;
QString com2_str;
com2_str.clear();
switch (com2) {
case 0:
com2_str = tr("准备");
break;
case 1:
com2_str = tr("对准中");
break;
case 2:
com2_str = tr("导航");
break;
case 3:
com2_str = tr("对准失败");
break;
default:
com2_str = tr("未知参数");
break;
}
uint8_t gps2 = (ins.com_status & 0x0E) >> 1;
QString gps2_str;
switch (gps2) {
case 0:
gps2_str = tr("N/A");
break;
case 1:
gps2_str = tr("INS/大气");
break;
case 2:
gps2_str = tr("INS/DGPS");
break;
case 3:
gps2_str = tr("INS/GNSS");
break;
case 5:
gps2_str = tr("GNSS");
break;
default:
gps2_str = tr("未知参数");
break;
}
toolsui->senser->setINS(2,1,QString::number(ins.satellites_visible));
toolsui->senser->setINS(2,2,(ins.sys_status & 0x80)?(tr("有效")):(tr("无效")));
toolsui->senser->setINS(2,3,(ins.sys_status & 0x10)?(tr("有效")):(tr("无效")));//bit1
toolsui->senser->setINS(2,4,(ins.sys_status & 0x02)?(tr("有效")):(tr("无效")));//bit2
toolsui->senser->setINS(2,5,(ins.sys_status & 0x40)?(tr("有效")):(tr("无效")));//bit3
toolsui->senser->setINS(2,6,(ins.sys_status & 0x80)?(tr("有效")):(tr("无效")));//bit4
//toolsui->senser->setINS(2,7,sys2);
toolsui->senser->setINS(2,8,com2_str);
toolsui->senser->setINS(2,9,gps2_str);
toolsui->senser->setINS(2,10,QString::number(ins.lon,'f',8));
toolsui->senser->setINS(2,11,QString::number(ins.lat,'f',8));
toolsui->senser->setINS(2,12,QString::number(ins.alt,'f',1));
toolsui->senser->setINS(2,13,QString::number(sqrt(pow(ins.v_north,2) +
pow(ins.v_east,2) +
pow(ins.v_up,2)),'f',1));
toolsui->senser->setINS(2,14,QString::number(ins.roll * 57.3,'f',1));
toolsui->senser->setINS(2,15,QString::number(ins.pitch * 57.3,'f',1));
toolsui->senser->setINS(2,16,QString::number(to360deg(ins.yaw * 57.3),'f',1));
toolsui->senser->setINS(2,2,bit2);
toolsui->senser->setINS(2,3,att2);//bit1
toolsui->senser->setINS(2,4,heading2);//bit2
toolsui->senser->setINS(2,5,spd2);//bit3
toolsui->senser->setINS(2,6,pos2);//bit4
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(qIsNaN(ins.lon)?(0):(ins.lon),'f',8));
toolsui->senser->setINS(2,11,QString::number(qIsNaN(ins.lat)?(0):(ins.lat),'f',8));
toolsui->senser->setINS(2,12,QString::number(qIsNaN(ins.alt)?(0):(ins.alt),'f',1));
toolsui->senser->setINS(2,13,QString::number(sqrt(pow(qIsNaN(ins.v_north)?(0):(ins.v_north),2) +
pow(qIsNaN(ins.v_east)?(0):(ins.v_east),2) +
pow(qIsNaN(ins.v_up)?(0):(ins.v_up),2)),'f',1));
toolsui->senser->setINS(2,14,QString::number(qIsNaN(ins.roll)?(0):(ins.roll) * 57.3,'f',1));
toolsui->senser->setINS(2,15,QString::number(qIsNaN(ins.pitch)?(0):(ins.pitch) * 57.3,'f',1));
toolsui->senser->setINS(2,16,QString::number(to360deg(qIsNaN(ins.yaw)?(0):(ins.yaw) * 57.3),'f',1));
qreal east = ins.v_east;
qreal north = ins.v_north;
if((east != 0)||
(north != 0))
double east2 = qIsNaN(ins.v_east)?(0):(ins.v_east);
double north2 = qIsNaN(ins.v_north)?(0):(ins.v_north);
if((east2 != 0)&&
(north2 != 0))
{
toolsui->senser->setINS(2,17,QString::number(to360deg(atan2(east,
north) * 57.3),'f',1));
toolsui->senser->setINS(2,17,QString::number(to360deg(atan2(east2,north2) * 57.3),'f',1));
}
toolsui->senser->setINS(2,18,QString::number(ins.gx,'f',1));
toolsui->senser->setINS(2,19,QString::number(ins.gy,'f',1));
toolsui->senser->setINS(2,20,QString::number(ins.gz,'f',1));
toolsui->senser->setINS(2,21,QString::number(ins.ax,'f',1));
toolsui->senser->setINS(2,22,QString::number(ins.ay,'f',1));
toolsui->senser->setINS(2,23,QString::number(ins.az,'f',1));
toolsui->senser->setINS(2,18,QString::number(qIsNaN(ins.gx)?(0):(ins.gx),'f',1));
toolsui->senser->setINS(2,19,QString::number(qIsNaN(ins.gy)?(0):(ins.gy),'f',1));
toolsui->senser->setINS(2,20,QString::number(qIsNaN(ins.gz)?(0):(ins.gz),'f',1));
toolsui->senser->setINS(2,21,QString::number(qIsNaN(ins.ax)?(0):(ins.ax),'f',1));
toolsui->senser->setINS(2,22,QString::number(qIsNaN(ins.ay)?(0):(ins.ay),'f',1));
toolsui->senser->setINS(2,23,QString::number(qIsNaN(ins.az)?(0):(ins.az),'f',1));
}