起落架逻辑与飞控同步

This commit is contained in:
hm
2022-08-30 16:33:30 +08:00
parent 924f2881d9
commit 6d74713bd6
11 changed files with 11007 additions and 461 deletions
BIN
View File
Binary file not shown.
+3485 -356
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -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
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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: {
+1 -1
View File
@@ -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();
-1
View File
@@ -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
View File
@@ -93,72 +93,74 @@ Please first select the area of the map to rip with &lt;CTRL&gt;+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 &lt;CTRL&gt;+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>