起落架逻辑与飞控同步
This commit is contained in:
Binary file not shown.
+3485
-356
File diff suppressed because it is too large
Load Diff
@@ -118,10 +118,10 @@ StatusUI::StatusUI(QWidget *parent) :
|
||||
{800,StateWidget::state::green},
|
||||
{850,StateWidget::state::orange},
|
||||
{10000,StateWidget::state::red}});
|
||||
install(state,0,"滑油压力[MPa]",0,
|
||||
QMap<QVariant, StateWidget::state>{{0.1,StateWidget::state::red},
|
||||
{0.2,StateWidget::state::orange},
|
||||
{100,StateWidget::state::green}});
|
||||
install(state,0,"滑油压力[kPa]",0,
|
||||
QMap<QVariant, StateWidget::state>{{100,StateWidget::state::red},
|
||||
{100,StateWidget::state::orange},
|
||||
{10000,StateWidget::state::green}});
|
||||
install(state,0,"燃油流量[kg/m]",0,
|
||||
QMap<QVariant, StateWidget::state>{{0.2,StateWidget::state::red},
|
||||
{0.4,StateWidget::state::orange},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -142,10 +142,10 @@ void Parse::run()
|
||||
nav.state1.insStatus = tr("纯惯导");
|
||||
break;
|
||||
case 0x01:
|
||||
nav.state1.insStatus = tr("惯性/卫星组合");
|
||||
nav.state1.insStatus = tr("惯性/卫星");
|
||||
break;
|
||||
case 0x02:
|
||||
nav.state1.insStatus = tr("惯性/差分卫星组合");
|
||||
nav.state1.insStatus = tr("惯性/差分卫星");
|
||||
break;
|
||||
case 0x03:
|
||||
nav.state1.insStatus = tr("预留");
|
||||
|
||||
+173
-65
@@ -118,6 +118,22 @@ double pwm2angle_3(double x,double a,double b,double c,double d)
|
||||
return angle;
|
||||
}
|
||||
|
||||
double act_pwm2deg3(double pwm,const double para[4])
|
||||
{
|
||||
double x;
|
||||
x = pwm;
|
||||
if (pwm > 2048.0) {
|
||||
x = pwm - 4096.0;
|
||||
}
|
||||
|
||||
double angle = 0;
|
||||
|
||||
angle = para[0] * x * x * x + para[1] * x * x + para[2] * x + para[3];
|
||||
|
||||
return angle;
|
||||
|
||||
}
|
||||
|
||||
double act_pwm2deg(double pwm, double mm_max, const double para[4])
|
||||
{
|
||||
double b_pwm;
|
||||
@@ -127,7 +143,7 @@ double act_pwm2deg(double pwm, double mm_max, const double para[4])
|
||||
}
|
||||
return para[1] /
|
||||
((para[1] * para[1] + para[2] * para[2]) + para[3] * para[3]) *
|
||||
(b_pwm * mm_max / 32768.0 - para[0]) * 57.29;
|
||||
(b_pwm * mm_max / 4096.0 - para[0]) * 57.29;
|
||||
/* x2_hat_deg = (a2/(a1^2 + a2^2 + a3^2))*(act_mm-a0) * 57.29; */
|
||||
/* x3_hat_deg = (a3/(a1^2 + a2^2 + a3^2))*(act_mm-a0) * 57.29; */
|
||||
/* tmp1 = x_hat_deg; */
|
||||
@@ -296,8 +312,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
this,SLOT(dlinkinfo(double,double,double)));
|
||||
|
||||
qRegisterMetaType<mavlink_servo_output_raw_t>("mavlink_servo_output_raw_t");
|
||||
connect(dlink->mavlinknode,SIGNAL(signal_servo_output_raw(mavlink_servo_output_raw_t )),
|
||||
this,SLOT(update_servo_output_raw(mavlink_servo_output_raw_t )));
|
||||
connect(dlink->mavlinknode,SIGNAL(signal_servo_output_raw(int,mavlink_servo_output_raw_t )),
|
||||
this,SLOT(update_servo_output_raw(int,mavlink_servo_output_raw_t )));
|
||||
|
||||
qRegisterMetaType<mavlink_ins1_t>("mavlink_ins1_t");
|
||||
connect(dlink->mavlinknode,SIGNAL(signal_ins1(mavlink_ins1_t)),
|
||||
@@ -1285,32 +1301,21 @@ void MainWindow::setServoOffset(QVariant ch1_d0,QVariant ch1_kd,QVariant ch1_len
|
||||
QString raw_ch1,raw_ch2,raw_ch3,raw_ch4;
|
||||
|
||||
|
||||
double vtl_fix_mm = 55;
|
||||
double vtr_fix_mm = 55;
|
||||
double dal_fix_mm = 30;
|
||||
double dar_fix_mm = 30;
|
||||
double drl_fix_mm = 30;
|
||||
double drr_fix_mm = 30;
|
||||
double del_fix_mm = 33;
|
||||
double der_fix_mm = 33;
|
||||
double dspl_fix_mm = 36;
|
||||
double dspr_fix_mm = 36;
|
||||
|
||||
|
||||
double ste_fix[4] = {54,0,0,0};
|
||||
double vtl_fix[4] = {-44.000,78.170,0,0};
|
||||
double vtr_fix[4] = {-44.000,79.602,0,0};
|
||||
double dal_fix[4] = {0.100,24.680,-2.838,-3.955};
|
||||
double dar_fix[4] = {0.000,24.689,-1.822,-3.083};
|
||||
double drl_fix[4] = {0.000,27.389,-0.997,-11.835};
|
||||
double drr_fix[4] = {0.000,25.704,-1.837,-5.163};
|
||||
double del_fix[4] = {0.200,34.585,-0.560,-5.357};
|
||||
double der_fix[4] = {0.600,34.457,-0.136,-5.332};
|
||||
double dspl_fix[4] = {-31.200,40.227,13.496,-7.114};
|
||||
double dspr_fix[4] = {-30.200,34.055,21.966,-10.409};
|
||||
|
||||
double dal_fix[4] = {-3E-09,-3E-06,-0.0343,+0.2415};
|
||||
double dar_fix[4] = {-2E-09,-2E-06,-0.0340,+0.0294};
|
||||
double drl_fix[4] = {-3E-09,-9E-07,-0.0334,-0.0413};
|
||||
double drr_fix[4] = {-3E-09,-1E-06,-0.0334,-0.0183};
|
||||
double del_fix[4] = {-1E-09,+2E-07,-0.0265,+0.2180};
|
||||
double der_fix[4] = {-1E-09,+2E-07,-0.0266,+0.1588};
|
||||
double dspl_fix[4] = {-5E-10,-2E-07,-0.0207,-39.091};
|
||||
double dspr_fix[4] = {-5E-10,-7E-08,-0.0207,-38.312};
|
||||
|
||||
|
||||
|
||||
void MainWindow::update_servo_output_raw(mavlink_servo_output_raw_t servo)
|
||||
void MainWindow::update_servo_output_raw(int sysid,mavlink_servo_output_raw_t servo)
|
||||
{
|
||||
servos.clear();
|
||||
servos.insert(0,servo.port);
|
||||
@@ -1332,50 +1337,93 @@ void MainWindow::update_servo_output_raw(mavlink_servo_output_raw_t servo)
|
||||
servos.insert(16,servo.servo16_raw);
|
||||
toolsui->index4->setChannel(servo.port,servos);
|
||||
|
||||
if(sysid == 1)
|
||||
{
|
||||
|
||||
|
||||
/*
|
||||
ste_fix[4] = {54,0,0,0};
|
||||
vtl_fix[4] = {-44.000,78.170,0,0};
|
||||
vtr_fix[4] = {-44.000,79.602,0,0};
|
||||
dal_fix[4] = {0.100,24.680,-2.838,-3.955};
|
||||
dar_fix[4] = {0.000,24.689,-1.822,-3.083};
|
||||
drl_fix[4] = {0.000,27.389,-0.997,-11.835};
|
||||
drr_fix[4] = {0.000,25.704,-1.837,-5.163};
|
||||
del_fix[4] = {0.200,34.585,-0.560,-5.357};
|
||||
der_fix[4] = {0.600,34.457,-0.136,-5.332};
|
||||
dspl_fix[4] = {-31.200,40.227,13.496,-7.114};
|
||||
dspr_fix[4] = {-30.200,34.055,21.966,-10.409};
|
||||
*/
|
||||
}
|
||||
else if(sysid == 2)
|
||||
{
|
||||
|
||||
/*
|
||||
|
||||
ste_fix[4] = {54,0,0,0};
|
||||
vtl_fix[4] = {-44.000,78.170,0,0};
|
||||
vtr_fix[4] = {-44.000,79.602,0,0};
|
||||
dal_fix[4] = {0.100,24.680,-2.838,-3.955};
|
||||
dar_fix[4] = {0.000,24.689,-1.822,-3.083};
|
||||
drl_fix[4] = {0.000,27.389,-0.997,-11.835};
|
||||
drr_fix[4] = {0.000,25.704,-1.837,-5.163};
|
||||
del_fix[4] = {0.200,34.585,-0.560,-5.357};
|
||||
der_fix[4] = {0.600,34.457,-0.136,-5.332};
|
||||
dspl_fix[4] = {-31.200,40.227,13.496,-7.114};
|
||||
dspr_fix[4] = {-30.200,34.055,21.966,-10.409};
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(servo.port == 0)
|
||||
{
|
||||
//12-16
|
||||
statusui->setValue(1,0,QString::number(act_pwm2deg((int16_t)servo.servo1_raw,dal_fix_mm,dal_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo9_raw,dal_fix_mm,dal_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,1,QString::number(act_pwm2deg((int16_t)servo.servo2_raw,dar_fix_mm,dar_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo10_raw,dar_fix_mm,dar_fix),'f',2));
|
||||
statusui->setValue(1,10,QString::number(act_pwm2deg3(servo.servo1_raw,ste_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo9_raw,ste_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,2,QString::number(act_pwm2deg((int16_t)servo.servo3_raw,del_fix_mm,del_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo11_raw,del_fix_mm,del_fix),'f',2));
|
||||
statusui->setValue(1,8,QString::number(act_pwm2deg3(servo.servo2_raw,vtl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo10_raw,vtl_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,3,QString::number(act_pwm2deg((int16_t)servo.servo4_raw,der_fix_mm,der_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo12_raw,der_fix_mm,der_fix),'f',2));
|
||||
statusui->setValue(1,9,QString::number(act_pwm2deg3(servo.servo3_raw,vtr_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo11_raw,vtr_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,0,QString::number(act_pwm2deg3(servo.servo4_raw,dal_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo12_raw,dal_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,4,QString::number(act_pwm2deg((int16_t)servo.servo5_raw,drl_fix_mm,drl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo13_raw,drl_fix_mm,drl_fix),'f',2));
|
||||
statusui->setValue(1,1,QString::number(act_pwm2deg3(servo.servo5_raw,dar_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo13_raw,dar_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,5,QString::number(act_pwm2deg((int16_t)servo.servo6_raw,drr_fix_mm,drr_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo14_raw,drr_fix_mm,drr_fix),'f',2));
|
||||
statusui->setValue(1,4,QString::number(act_pwm2deg3(servo.servo6_raw,drl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo14_raw,drl_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,6,QString::number(act_pwm2deg((int16_t)servo.servo7_raw,dspl_fix_mm,dspl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo15_raw,dspl_fix_mm,dspl_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,7,QString::number(act_pwm2deg((int16_t)servo.servo8_raw,dspr_fix_mm,dspr_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo16_raw,dspr_fix_mm,dspr_fix),'f',2));
|
||||
statusui->setValue(1,5,QString::number(act_pwm2deg3(servo.servo7_raw,drr_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo15_raw,drr_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,2,QString::number(act_pwm2deg3(servo.servo8_raw,del_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo16_raw,del_fix),'f',2));
|
||||
|
||||
|
||||
}
|
||||
else if(servo.port == 1)
|
||||
{
|
||||
statusui->setValue(1,8,QString::number(act_pwm2deg((int16_t)servo.servo1_raw,vtl_fix_mm,vtl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo4_raw,vtl_fix_mm,vtl_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,9,QString::number(act_pwm2deg((int16_t)servo.servo2_raw,vtr_fix_mm,vtr_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo5_raw,vtr_fix_mm,vtr_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,10,QString::number(act_pwm2deg((int16_t)servo.servo3_raw,vtr_fix_mm,vtl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg((int16_t)servo.servo6_raw,vtr_fix_mm,vtl_fix),'f',2));
|
||||
statusui->setValue(1,3,QString::number(act_pwm2deg3(servo.servo1_raw,der_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo4_raw,der_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,6,QString::number(act_pwm2deg3(servo.servo2_raw,dspl_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo5_raw,dspl_fix),'f',2));
|
||||
|
||||
statusui->setValue(1,7,QString::number(act_pwm2deg3(servo.servo3_raw,dspr_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo6_raw,dspr_fix),'f',2));
|
||||
|
||||
|
||||
|
||||
//engine_startup 7
|
||||
@@ -1388,9 +1436,13 @@ void MainWindow::update_servo_output_raw(mavlink_servo_output_raw_t servo)
|
||||
statusui->setValue(2,0,QString::number((servo.servo8_raw - 1000) * 0.1));
|
||||
|
||||
statusui->setValue(2,1,QString::number(servo.servo12_raw));//rpm
|
||||
statusui->setValue(2,2,QString::number((int16_t)servo.servo13_raw));//temp
|
||||
statusui->setValue(2,3,QString::number((int16_t)servo.servo14_raw));//oil
|
||||
|
||||
|
||||
//statusui->setValue(2,2,QString::number(servo.servo13_raw));//进口总温
|
||||
//statusui->setValue(2,3,QString::number(servo.servo14_raw));//出口压力
|
||||
statusui->setValue(2,4,QString::number(servo.servo15_raw));//current
|
||||
statusui->setValue(2,5,QString::number((int16_t)servo.servo13_raw));//temp 涡轮后温度
|
||||
statusui->setValue(2,6,QString::number((int16_t)servo.servo14_raw));//oil 滑油压力
|
||||
|
||||
statusui->setValue(2,8,QString::number(servo.servo9_raw * 0.01));
|
||||
|
||||
@@ -1431,17 +1483,17 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
|
||||
}
|
||||
|
||||
|
||||
double lat = (double)(vehicle.gps_raw_int.lat * 10e-8);
|
||||
double lng = (double)(vehicle.gps_raw_int.lon * 10e-8);
|
||||
|
||||
double lat = (double)(vehicle.global_position_int.lat * 10e-8);
|
||||
double lng = (double)(vehicle.global_position_int.lon * 10e-8);
|
||||
double alt = (double)(vehicle.global_position_int.alt * 10e-4);
|
||||
|
||||
if(((lat > -90)&&(lat < 90))&&((lng > -180)&&(lng < 180)))
|
||||
{
|
||||
map->setUAVPos(vehicle.sysid,
|
||||
vehicle.compid,
|
||||
(double)(vehicle.gps_raw_int.lat * 10e-8),
|
||||
(double)(vehicle.gps_raw_int.lon * 10e-8),
|
||||
(double)(vehicle.gps_raw_int.alt * 10e-4));
|
||||
lat,
|
||||
lng,
|
||||
alt);
|
||||
}
|
||||
|
||||
map->setUAVHeading(vehicle.sysid,
|
||||
@@ -1609,12 +1661,39 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
|
||||
case 8<<16:
|
||||
mode_str.append(tr("RATTITUDE"));
|
||||
break;
|
||||
//case 8<<16:
|
||||
// mode_str.append(tr("SIMPLE"));
|
||||
//break;
|
||||
case 9<<16:
|
||||
mode_str.append(tr("STANDBY"));
|
||||
break;
|
||||
case 10<<16:
|
||||
mode_str.append(tr("BIT"));
|
||||
break;
|
||||
case (10<<16)+(1<<16):
|
||||
mode_str.append(tr("BIT_SERVO_SWEEP"));
|
||||
break;
|
||||
case (10<<16)+(2<<16):
|
||||
mode_str.append(tr("BIT_THT_STAB"));
|
||||
break;
|
||||
case (10<<16)+(3<<16):
|
||||
mode_str.append(tr("BIT_Q_STAB"));
|
||||
break;
|
||||
case (10<<16)+(4<<16):
|
||||
mode_str.append(tr("BIT_ACT_SWEEP"));
|
||||
break;
|
||||
case (10<<16)+(5<<16):
|
||||
mode_str.append(tr("BIT_CTR_SWEEP"));
|
||||
break;
|
||||
case (10<<16)+(6<<16):
|
||||
mode_str.append(tr("BIT_SERVO_TEST"));
|
||||
break;
|
||||
case (10<<16)+(7<<16):
|
||||
mode_str.append(tr("BIT_CTR_SWEEP_IMPULSE"));
|
||||
break;
|
||||
case (10<<16)+(8<<16):
|
||||
mode_str.append(tr("BIT_MANUAL"));
|
||||
break;
|
||||
case (4<<16)+(1<<24):
|
||||
mode_str.append(tr("AUTO_READY"));
|
||||
break;
|
||||
@@ -1716,9 +1795,9 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
|
||||
//GPS根据不同的惯导显示不同的东西
|
||||
|
||||
|
||||
uint32_t health = vehicle.sys_status.onboard_control_sensors_health;
|
||||
uint32_t enabled= vehicle.sys_status.onboard_control_sensors_enabled;
|
||||
uint32_t present= vehicle.sys_status.onboard_control_sensors_present;
|
||||
health = vehicle.sys_status.onboard_control_sensors_health;
|
||||
enabled= vehicle.sys_status.onboard_control_sensors_enabled;
|
||||
present= vehicle.sys_status.onboard_control_sensors_present;
|
||||
|
||||
|
||||
if(isCommunicationLost == false)
|
||||
@@ -1858,8 +1937,8 @@ void MainWindow::updateVehicle(MavLinkNode::_vehicle vehicle)//事件驱动式
|
||||
voltages[9] = vehicle.battery_status.voltages[9];
|
||||
|
||||
|
||||
statusui->setValue(2,5,QString::number((voltages[7]*0.01 - 0.1981)/9.245,'f',1));
|
||||
statusui->setValue(2,6,QString::number((voltages[8]*0.01 - 0.27806)/0.00475,'f',1));
|
||||
//statusui->setValue(2,5,QString::number((voltages[7]*0.01 - 0.1981)/9.245,'f',1));
|
||||
//statusui->setValue(2,6,QString::number((voltages[8]*0.01 - 0.27806)/0.00475,'f',1));
|
||||
|
||||
emit setBat(voltages);
|
||||
|
||||
@@ -2263,35 +2342,56 @@ void MainWindow::gear_Info(Parse::_gear info)
|
||||
healthui->setColor(30,HealthUI::state::warning);//舱门开关
|
||||
}
|
||||
|
||||
bool left = getBit(health,4);
|
||||
bool right = getBit(health,5);
|
||||
bool nose = getBit(health,6);
|
||||
|
||||
if(info.SW[0] && info.SW[5] && info.SW[10])
|
||||
|
||||
if(info.SW[0] && info.SW[5] && info.SW[10] && left && right &&nose)
|
||||
{
|
||||
healthui->setValue(34,tr("起落架承载"));
|
||||
healthui->setColor(34,HealthUI::state::failure);//起落架承载
|
||||
}
|
||||
else
|
||||
{
|
||||
if(info.SW[5] && info.SW[10])
|
||||
if(info.SW[5] && info.SW[10] && !nose)
|
||||
{
|
||||
healthui->setValue(34,tr("前 未承载"));
|
||||
healthui->setColor(34,HealthUI::state::warning);//起落架承载
|
||||
}
|
||||
else if(info.SW[0] && info.SW[10])
|
||||
else if(info.SW[0] && info.SW[10] && !left)
|
||||
{
|
||||
healthui->setValue(34,tr("左 未承载"));
|
||||
healthui->setColor(34,HealthUI::state::warning);//起落架承载
|
||||
}
|
||||
else if(info.SW[0] && info.SW[5])
|
||||
else if(info.SW[0] && info.SW[5] && !right)
|
||||
{
|
||||
healthui->setValue(34,tr("右 未承载"));
|
||||
healthui->setColor(34,HealthUI::state::warning);//起落架承载
|
||||
}
|
||||
else
|
||||
{
|
||||
if(info.SW[10])
|
||||
{
|
||||
healthui->setValue(34,tr("前左未承载"));
|
||||
healthui->setColor(34,HealthUI::state::warning);//起落架承载
|
||||
}
|
||||
else if(info.SW[5])
|
||||
{
|
||||
healthui->setValue(34,tr("前右未承载"));
|
||||
healthui->setColor(34,HealthUI::state::warning);//起落架承载
|
||||
}
|
||||
else if(info.SW[0])
|
||||
{
|
||||
healthui->setValue(34,tr("左右未承载"));
|
||||
healthui->setColor(34,HealthUI::state::warning);//起落架承载
|
||||
}
|
||||
else{
|
||||
healthui->setValue(34,tr("起落架未承载"));
|
||||
healthui->setColor(34,HealthUI::state::success);//起落架承载
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2387,6 +2487,14 @@ void MainWindow::EADC_Info(Parse::_eadc info)
|
||||
void MainWindow::ECU_Info(Parse::_ecu info)
|
||||
{
|
||||
|
||||
if(statusui)
|
||||
{
|
||||
statusui->setValue(2,2,QString::number(info.t1,'f',2));//进口总温
|
||||
statusui->setValue(2,3,QString::number(info.p2,'f',3));//出口压力
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::SSPC_Info(Parse::_sspc info)
|
||||
|
||||
+5
-1
@@ -147,7 +147,7 @@ private slots:
|
||||
void updateDlink(float rssi, uint64_t in, uint64_t out);
|
||||
void dlinkinfo(double rssi,double in,double out);
|
||||
|
||||
void update_servo_output_raw(mavlink_servo_output_raw_t servo);
|
||||
void update_servo_output_raw(int sysid, mavlink_servo_output_raw_t servo);
|
||||
|
||||
|
||||
void ins1_Update(mavlink_ins1_t ins);
|
||||
@@ -237,6 +237,10 @@ protected:
|
||||
_servo ch8;
|
||||
|
||||
|
||||
uint32_t health;
|
||||
uint32_t enabled;
|
||||
uint32_t present;
|
||||
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
||||
+53
-13
@@ -466,13 +466,16 @@ void MavLinkNode::process()//线程函数
|
||||
gps_raw_int_csv.append("time_usec,lat,lon,alt,eph,epv,vel,cog,fix_type,satellites_visible,alt_ellipsoid,h_acc,v_acc,vel_acc,hdg_acc,yaw\n");
|
||||
global_position_int_csv.append("time_boot_ms,lat,lon,alt,relative_alt,vx,vy,vz,hdg\n");
|
||||
servo_output_raw_csv[0].append("time_usec,port,ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10,ch11,ch12,ch13,ch14,ch15,ch16\n");
|
||||
rc_channels_raw_csv;
|
||||
|
||||
rc_channels_raw_csv.append("time_boot_ms,port,rssi,chan1_raw,chan2_raw,chan3_raw,chan4_raw,chan5_raw,chan6_raw,chan7_raw,chan8_raw,chan9_raw,chan10_raw,chan11_raw,chan12_raw,chan13_raw,chan14_raw,chan15_raw,chan16_raw\n");
|
||||
nav_controller_output_csv.append("nav_roll,nav_pitch,nav_bearing,target_bearing,wp_dist,alt_err,as_err,xtrack_err\n");
|
||||
airspeed_autocal_csv.append("vx,vy,vz,diff_pressure,EAS2TAS,ratio,state_x,state_y,state_z,Pax,Pby,Pcz\n");
|
||||
rpm_csv.append("rpm1,rpm2,rpm3,rpm4,rpm5\n");
|
||||
scaled_pressure_csv.append("time_boot_ms,press_abs,press_diff,temperature,temperature_diff\n");
|
||||
extended_sys_state_csv;
|
||||
battery_status_csv;
|
||||
|
||||
battery_status_csv.append("current_consumed,energy_consumed,temperature,voltages[0],voltages[1],voltages[2],voltages[3],voltages[4],voltages[5],voltages[6],voltages[7],voltages[8],voltages[9],"
|
||||
"current_battery,id,battery_function,type,battery_remaining,time_remaining,charge_state,voltages_ext[0],voltages_ext[1],voltages_ext[2],voltages_ext[3]\n");
|
||||
vibration_csv;
|
||||
enginestate_csv;
|
||||
vfr_hud_csv.append("airspeed,groundspeed,alt,climb,heading,throttle\n");
|
||||
@@ -980,7 +983,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
|
||||
servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo16_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append('\n');
|
||||
|
||||
|
||||
emit signal_servo_output_raw(vehicle.servo_output_raw);
|
||||
emit signal_servo_output_raw(msg.sysid,vehicle.servo_output_raw);
|
||||
|
||||
|
||||
|
||||
@@ -988,6 +991,27 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_RC_CHANNELS_RAW: {
|
||||
mavlink_msg_rc_channels_raw_decode(&msg,&vehicle.rc_channels_raw);
|
||||
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.time_boot_ms)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.port)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.rssi)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan1_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan2_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan3_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan4_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan5_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan6_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan7_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan8_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan9_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan10_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan11_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan12_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan13_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan14_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan15_raw)); rc_channels_raw_csv.append(',');
|
||||
rc_channels_raw_csv.append(QString::number(vehicle.rc_channels_raw.chan16_raw)); rc_channels_raw_csv.append('\n');
|
||||
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT: {
|
||||
mavlink_msg_nav_controller_output_decode(&msg,&vehicle.nav_controller_output);
|
||||
@@ -1035,16 +1059,32 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
|
||||
case MAVLINK_MSG_ID_BATTERY_STATUS: {
|
||||
mavlink_msg_battery_status_decode(&msg,&vehicle.battery_status);
|
||||
|
||||
/*
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.time_boot_ms)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.Airspeed)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.beta)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.alpha)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.ps)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.qbar)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.seq)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.mach)); battery_status_csv.append('\n');
|
||||
*/
|
||||
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.current_consumed)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.energy_consumed)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.temperature)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[0])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[1])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[2])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[3])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[4])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[5])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[6])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[7])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[8])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages[9])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.current_battery)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.id)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.battery_function)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.type)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.battery_remaining)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.time_remaining)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.charge_state)); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages_ext[0])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages_ext[1])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages_ext[2])); battery_status_csv.append(',');
|
||||
battery_status_csv.append(QString::number(vehicle.battery_status.voltages_ext[3])); battery_status_csv.append('\n');
|
||||
|
||||
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_VIBRATION: {
|
||||
|
||||
@@ -192,7 +192,7 @@ signals:
|
||||
void signal_ins2(mavlink_ins2_t ins);
|
||||
void signal_gps_raw_int();
|
||||
void signal_global_position_int();
|
||||
void signal_servo_output_raw(mavlink_servo_output_raw_t servo);
|
||||
void signal_servo_output_raw(int sysid,mavlink_servo_output_raw_t servo);
|
||||
void signal_rc_channels_raw();
|
||||
void signal_nav_controller_output();
|
||||
void signal_airspeed_autocal();
|
||||
|
||||
@@ -737,7 +737,6 @@ bool DLink::setup_rtk(const QString port, qint32 baudrate, QSerialPort::Parity p
|
||||
delete node.port;
|
||||
node.port = nullptr;
|
||||
|
||||
|
||||
serials.removeAt(serials.indexOf(node));
|
||||
}
|
||||
}
|
||||
|
||||
+17
-15
@@ -93,72 +93,74 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic
|
||||
<translation>停止缓存地图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2254"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2379"/>
|
||||
<source>Load Geo Fence File :%1</source>
|
||||
<translation>导入围栏文件:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2344"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2259"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2469"/>
|
||||
<source>Load Mission File:Group %1,%2</source>
|
||||
<translation>导入航线文件:第%1组航线,%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2440"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2661"/>
|
||||
<source>Save Fence File:%1</source>
|
||||
<translation>保存围栏文件:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2515"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2582"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2736"/>
|
||||
<source>Save Mission File:Group %1,%2</source>
|
||||
<translation>保存航线文件:第%1组航线,%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2721"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2946"/>
|
||||
<source>please load fence first</source>
|
||||
<translation>请先导入围栏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2726"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2951"/>
|
||||
<source>start upload fence,total:%1</source>
|
||||
<translation>开始上传围栏,总数%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2764"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2989"/>
|
||||
<source>please load mission first</source>
|
||||
<translation>请先导入航线</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2769"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2994"/>
|
||||
<source>start upload mission %1,total %2</source>
|
||||
<translation>开始上传航线%1,总数%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2975"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3225"/>
|
||||
<source>upload Mission</source>
|
||||
<translation type="unfinished">上传航点</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="2982"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3232"/>
|
||||
<source>upload fail %1</source>
|
||||
<translation>上传失败 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3010"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3260"/>
|
||||
<source>recieve fence polygon inclusion: %1</source>
|
||||
<translation>接收到多边形安控区 :%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3057"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3307"/>
|
||||
<source>recieve fence polygon exclusion: %1</source>
|
||||
<translation>接收到多边形禁飞区 :%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3106"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3356"/>
|
||||
<source>recieve fence circle inclusion: %1</source>
|
||||
<translation>接收到圆形安控区 :%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3119"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3369"/>
|
||||
<source>recieve fence circle exclusion: %1</source>
|
||||
<translation>接收到圆形禁飞区 :%1</translation>
|
||||
</message>
|
||||
@@ -167,7 +169,7 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic
|
||||
<translation type="vanished">围栏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3137"/>
|
||||
<location filename="mapwidget/opmapwidget.cpp" line="3387"/>
|
||||
<source>recieve way point group:%1 seq:%2</source>
|
||||
<translation>收到航点:第%1组,第%2点</translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user