上传,下载功能完成

This commit is contained in:
hm
2022-04-24 12:09:15 +08:00
parent 3408627e4a
commit 16e4d0cb75
8 changed files with 193 additions and 122 deletions
+54 -13
View File
@@ -354,24 +354,27 @@ void Chart::chartUpdate(void)
//qDebug() << s->name() << pv; //qDebug() << s->name() << pv;
float max = pv.at(0).y(); if(pv.size() > 0)
float min = pv.at(0).y(); {
float max = pv.at(0).y();
float min = pv.at(0).y();
foreach (QPointF p, pv) { foreach (QPointF p, pv) {
if(max < p.y()) if(max < p.y())
{ {
max = p.y(); max = p.y();
}
if(min > p.y())
{
min = p.y();
}
} }
if(min > p.y()) yMax.append(max);
{ yMin.append(min);
min = p.y();
}
} }
yMax.append(max);
yMin.append(min);
} }
} }
@@ -565,6 +568,24 @@ bool Chart::addSeries(QString name = tr("new"),QColor color = QColor("#FFFFFF"),
void Chart::setSerieData(QString name, QVariant data) void Chart::setSerieData(QString name, QVariant data)
{ {
#ifdef unix
#else
#ifdef __MINGW32__
#else
bool ok;
data.toDouble(&ok);
if(!ok)
{
return;
}
#endif
#endif
//timeseries++; //timeseries++;
//qDebug() << timeseries << timeseries; //qDebug() << timeseries << timeseries;
//出新了比以前更大或者更小的值,那么就设置一下量程 //出新了比以前更大或者更小的值,那么就设置一下量程
@@ -640,6 +661,26 @@ void Chart::setSerieData(QString name, QVariant data)
void Chart::setSerieData(QString name,QVariant data,int colorindex = 3) void Chart::setSerieData(QString name,QVariant data,int colorindex = 3)
{ {
#ifdef unix
#else
#ifdef __MINGW32__
#else
bool ok;
data.toDouble(&ok);
if(!ok)
{
return;
}
#endif
#endif
//timeseries++; //timeseries++;
//qDebug() << timeseries << timeseries; //qDebug() << timeseries << timeseries;
//出新了比以前更大或者更小的值,那么就设置一下量程 //出新了比以前更大或者更小的值,那么就设置一下量程
+18 -11
View File
@@ -239,6 +239,13 @@ MainWindow::MainWindow(QWidget *parent)
connect(dlink->mavlinknode,SIGNAL(updateDlink(float,uint64_t,uint64_t)), connect(dlink->mavlinknode,SIGNAL(updateDlink(float,uint64_t,uint64_t)),
this,SLOT(updateDlink(float,uint64_t,uint64_t))); this,SLOT(updateDlink(float,uint64_t,uint64_t)));
connect(dlink,SIGNAL(byteCount(int,int)),
this,SLOT(dlinkCount(int,int)));
//this ----- map //this ----- map
connect(map,SIGNAL(TotalDistanceUpdate(double)), connect(map,SIGNAL(TotalDistanceUpdate(double)),
this,SLOT(TotalDistance(double))); this,SLOT(TotalDistance(double)));
@@ -846,15 +853,9 @@ void MainWindow::onTabIndexChanged(const int &index)//界面选择管理
healthui->show(); healthui->show();
} }
/*
//发生界面切换,检查一下航线
qDebug() << "zubie" << map->currentGroup << group;
if(map->currentGroup != group)
{
emit currentGroup(group + 2);
}
*/
//得到航线组数,数据为1,2,3,4
emit currentGroup(group + 2);
} }
else else
{ {
@@ -960,10 +961,17 @@ void MainWindow::setCommunicationLostState(bool flag)
void MainWindow::updateDlink(float rssi,uint64_t in,uint64_t out) void MainWindow::updateDlink(float rssi,uint64_t in,uint64_t out)
{ {
statusui->setDlink(1,QString::number(rssi,'f',0), statusui->setDlink(1,QString::number(rssi,'f',0),
tr("R:%1 / T:%2").arg(QString::number(in)).arg(QString::number(dlink->Byte_Out_per))); tr("R:%1 / T:%2").arg(QString::number(in)).arg(QString::number(dlinkout)));
} }
void MainWindow::dlinkCount(int in,int out)
{
dlinkout = out;
}
void MainWindow::setServoOffset(QVariant dirla, QVariant dirra, QVariant dirle, QVariant dirre, QVariant dirru, void MainWindow::setServoOffset(QVariant dirla, QVariant dirra, QVariant dirle, QVariant dirre, QVariant dirru,
QVariant maxla, QVariant maxra, QVariant maxle, QVariant maxre, QVariant maxru, QVariant maxla, QVariant maxra, QVariant maxle, QVariant maxre, QVariant maxru,
QVariant scalela, QVariant scalera, QVariant scalele, QVariant scalere, QVariant scaleru, QVariant scalela, QVariant scalera, QVariant scalele, QVariant scalere, QVariant scaleru,
@@ -1598,7 +1606,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
//get 9-10 //get 9-10
/*
//得到航线组数,数据为1,2,3,4 //得到航线组数,数据为1,2,3,4
group = (int)(getBit(enable,11) << 2) | (int)(getBit(enable,10) << 1) | (int)(getBit(enable,9)); group = (int)(getBit(enable,11) << 2) | (int)(getBit(enable,10) << 1) | (int)(getBit(enable,9));
@@ -1611,7 +1619,6 @@ void MainWindow::updateUI()//事件驱动式更新数据
} }
group_old = group; group_old = group;
*/
} }
+6
View File
@@ -106,6 +106,10 @@ private slots:
void updateDlink(float rssi, uint64_t in, uint64_t out); void updateDlink(float rssi, uint64_t in, uint64_t out);
void dlinkCount(int in,int out);
protected slots: protected slots:
@@ -123,6 +127,8 @@ protected:
int MainIndex = 0; int MainIndex = 0;
int dlinkout = 0;
Config *config = nullptr; Config *config = nullptr;
StatusUI *statusui = nullptr; StatusUI *statusui = nullptr;
+34 -34
View File
@@ -493,12 +493,12 @@ void MavLinkNode::process()//线程函数
{ {
//qDebug() << "client parse"; //qDebug() << "client parse";
Mavlinkparse(SourceType::c_sock,datagram); Mavlinkparse(SourceType::c_sock,datagram);
QApplication::processEvents(); //QApplication::processEvents();
} }
else else
{ {
//QThread::msleep(1000/running_frq); QThread::msleep(1000/running_frq);
QThread::yieldCurrentThread(); //QThread::yieldCurrentThread();
} }
//解码从串口来的 //解码从串口来的
@@ -509,12 +509,12 @@ void MavLinkNode::process()//线程函数
{ {
//qDebug() << "serial port parse"; //qDebug() << "serial port parse";
Mavlinkparse(SourceType::s_port,datagram); Mavlinkparse(SourceType::s_port,datagram);
QApplication::processEvents(); //QApplication::processEvents();
} }
else else
{ {
//QThread::msleep(1000/running_frq); QThread::msleep(1000/running_frq);
QThread::yieldCurrentThread();//打开这个CPU占用50% //QThread::yieldCurrentThread();//打开这个CPU占用50%
} }
if(isInterruptionRequested())//退出 if(isInterruptionRequested())//退出
@@ -557,7 +557,6 @@ void MavLinkNode::TimerOut(void)
} }
} }
emit updateDlink(rssi,rate_in,0); emit updateDlink(rssi,rate_in,0);
} }
@@ -808,6 +807,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
case MAVLINK_MSG_ID_SYS_STATUS: { case MAVLINK_MSG_ID_SYS_STATUS: {
mavlink_msg_sys_status_decode(&msg,&vehicle.sys_status); mavlink_msg_sys_status_decode(&msg,&vehicle.sys_status);
/*
sys_status_csv.append(QString::number(vehicle.sys_status.onboard_control_sensors_present)); sys_status_csv.append(','); sys_status_csv.append(QString::number(vehicle.sys_status.onboard_control_sensors_present)); sys_status_csv.append(',');
sys_status_csv.append(QString::number(vehicle.sys_status.onboard_control_sensors_enabled)); sys_status_csv.append(','); sys_status_csv.append(QString::number(vehicle.sys_status.onboard_control_sensors_enabled)); sys_status_csv.append(',');
sys_status_csv.append(QString::number(vehicle.sys_status.onboard_control_sensors_health)); sys_status_csv.append(','); sys_status_csv.append(QString::number(vehicle.sys_status.onboard_control_sensors_health)); sys_status_csv.append(',');
@@ -821,7 +821,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
sys_status_csv.append(QString::number(vehicle.sys_status.errors_count2)); sys_status_csv.append(','); sys_status_csv.append(QString::number(vehicle.sys_status.errors_count2)); sys_status_csv.append(',');
sys_status_csv.append(QString::number(vehicle.sys_status.errors_count3)); sys_status_csv.append(','); sys_status_csv.append(QString::number(vehicle.sys_status.errors_count3)); sys_status_csv.append(',');
sys_status_csv.append(QString::number(vehicle.sys_status.errors_count4)); sys_status_csv.append('\n'); sys_status_csv.append(QString::number(vehicle.sys_status.errors_count4)); sys_status_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_HEARTBEAT: { case MAVLINK_MSG_ID_HEARTBEAT: {
@@ -834,14 +834,14 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
Status->m_heartbeat.system_status = vehicle.heartbeat.system_status; Status->m_heartbeat.system_status = vehicle.heartbeat.system_status;
Status->m_heartbeat.type = vehicle.heartbeat.type; Status->m_heartbeat.type = vehicle.heartbeat.type;
/*
heartbeat_csv.append(QString::number(vehicle.heartbeat.type)); heartbeat_csv.append(','); heartbeat_csv.append(QString::number(vehicle.heartbeat.type)); heartbeat_csv.append(',');
heartbeat_csv.append(QString::number(vehicle.heartbeat.autopilot)); heartbeat_csv.append(','); heartbeat_csv.append(QString::number(vehicle.heartbeat.autopilot)); heartbeat_csv.append(',');
heartbeat_csv.append(QString::number(vehicle.heartbeat.base_mode)); heartbeat_csv.append(','); heartbeat_csv.append(QString::number(vehicle.heartbeat.base_mode)); heartbeat_csv.append(',');
heartbeat_csv.append(QString::number(vehicle.heartbeat.custom_mode)); heartbeat_csv.append(','); heartbeat_csv.append(QString::number(vehicle.heartbeat.custom_mode)); heartbeat_csv.append(',');
heartbeat_csv.append(QString::number(vehicle.heartbeat.system_status)); heartbeat_csv.append(','); heartbeat_csv.append(QString::number(vehicle.heartbeat.system_status)); heartbeat_csv.append(',');
heartbeat_csv.append(QString::number(vehicle.heartbeat.mavlink_version)); heartbeat_csv.append('\n'); heartbeat_csv.append(QString::number(vehicle.heartbeat.mavlink_version)); heartbeat_csv.append('\n');
*/
emit beep(msg.sysid); emit beep(msg.sysid);
}break; }break;
@@ -850,7 +850,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
}break; }break;
case MAVLINK_MSG_ID_ATTITUDE: { case MAVLINK_MSG_ID_ATTITUDE: {
mavlink_msg_attitude_decode(&msg,&vehicle.attitude); mavlink_msg_attitude_decode(&msg,&vehicle.attitude);
/*
attitude_csv.append(QString::number(vehicle.attitude.time_boot_ms)); attitude_csv.append(','); attitude_csv.append(QString::number(vehicle.attitude.time_boot_ms)); attitude_csv.append(',');
attitude_csv.append(QString::number(vehicle.attitude.roll)); attitude_csv.append(','); attitude_csv.append(QString::number(vehicle.attitude.roll)); attitude_csv.append(',');
attitude_csv.append(QString::number(vehicle.attitude.pitch)); attitude_csv.append(','); attitude_csv.append(QString::number(vehicle.attitude.pitch)); attitude_csv.append(',');
@@ -858,12 +858,12 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
attitude_csv.append(QString::number(vehicle.attitude.rollspeed)); attitude_csv.append(','); attitude_csv.append(QString::number(vehicle.attitude.rollspeed)); attitude_csv.append(',');
attitude_csv.append(QString::number(vehicle.attitude.pitchspeed)); attitude_csv.append(','); attitude_csv.append(QString::number(vehicle.attitude.pitchspeed)); attitude_csv.append(',');
attitude_csv.append(QString::number(vehicle.attitude.yawspeed)); attitude_csv.append('\n'); attitude_csv.append(QString::number(vehicle.attitude.yawspeed)); attitude_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_INS1: { case MAVLINK_MSG_ID_INS1: {
mavlink_msg_ins1_decode(&msg,&vehicle.ins1); mavlink_msg_ins1_decode(&msg,&vehicle.ins1);
/*
ins1_csv.append(QString::number(vehicle.ins1.time_boot_ms)); ins1_csv.append(','); ins1_csv.append(QString::number(vehicle.ins1.time_boot_ms)); ins1_csv.append(',');
ins1_csv.append(QString::number(vehicle.ins1.pitch)); ins1_csv.append(','); ins1_csv.append(QString::number(vehicle.ins1.pitch)); ins1_csv.append(',');
ins1_csv.append(QString::number(vehicle.ins1.roll)); ins1_csv.append(','); ins1_csv.append(QString::number(vehicle.ins1.roll)); ins1_csv.append(',');
@@ -889,13 +889,13 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
ins1_csv.append(QString::number(vehicle.ins1.eph)); ins1_csv.append(','); ins1_csv.append(QString::number(vehicle.ins1.eph)); ins1_csv.append(',');
ins1_csv.append(QString::number(vehicle.ins1.epv)); ins1_csv.append(','); ins1_csv.append(QString::number(vehicle.ins1.epv)); ins1_csv.append(',');
ins1_csv.append(QString::number(vehicle.ins1.satellites_visible)); ins1_csv.append('\n'); ins1_csv.append(QString::number(vehicle.ins1.satellites_visible)); ins1_csv.append('\n');
*/
emit signal_ins1(vehicle.ins1); emit signal_ins1(vehicle.ins1);
}break; }break;
case MAVLINK_MSG_ID_INS2: { case MAVLINK_MSG_ID_INS2: {
mavlink_msg_ins2_decode(&msg,&vehicle.ins2); mavlink_msg_ins2_decode(&msg,&vehicle.ins2);
/*
ins2_csv.append(QString::number(vehicle.ins2.time_boot_ms)); ins2_csv.append(','); ins2_csv.append(QString::number(vehicle.ins2.time_boot_ms)); ins2_csv.append(',');
ins2_csv.append(QString::number(vehicle.ins2.pitch)); ins2_csv.append(','); ins2_csv.append(QString::number(vehicle.ins2.pitch)); ins2_csv.append(',');
ins2_csv.append(QString::number(vehicle.ins2.roll)); ins2_csv.append(','); ins2_csv.append(QString::number(vehicle.ins2.roll)); ins2_csv.append(',');
@@ -921,13 +921,13 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
ins2_csv.append(QString::number(vehicle.ins2.eph)); ins2_csv.append(','); ins2_csv.append(QString::number(vehicle.ins2.eph)); ins2_csv.append(',');
ins2_csv.append(QString::number(vehicle.ins2.epv)); ins2_csv.append(','); ins2_csv.append(QString::number(vehicle.ins2.epv)); ins2_csv.append(',');
ins2_csv.append(QString::number(vehicle.ins2.satellites_visible)); ins2_csv.append('\n'); ins2_csv.append(QString::number(vehicle.ins2.satellites_visible)); ins2_csv.append('\n');
*/
emit signal_ins2(vehicle.ins2); emit signal_ins2(vehicle.ins2);
}break; }break;
case MAVLINK_MSG_ID_GPS_RAW_INT: { case MAVLINK_MSG_ID_GPS_RAW_INT: {
mavlink_msg_gps_raw_int_decode(&msg,&vehicle.gps_raw_int); mavlink_msg_gps_raw_int_decode(&msg,&vehicle.gps_raw_int);
/*
gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.time_usec));gps_raw_int_csv.append(','); gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.time_usec));gps_raw_int_csv.append(',');
gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.lat));gps_raw_int_csv.append(','); gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.lat));gps_raw_int_csv.append(',');
gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.lon));gps_raw_int_csv.append(','); gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.lon));gps_raw_int_csv.append(',');
@@ -945,7 +945,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.vel_acc));gps_raw_int_csv.append(','); gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.vel_acc));gps_raw_int_csv.append(',');
gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.hdg_acc));gps_raw_int_csv.append(','); gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.hdg_acc));gps_raw_int_csv.append(',');
gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.yaw));gps_raw_int_csv.append('\n'); gps_raw_int_csv.append(QString::number(vehicle.gps_raw_int.yaw));gps_raw_int_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_GLOBAL_POSITION_INT: { case MAVLINK_MSG_ID_GLOBAL_POSITION_INT: {
@@ -953,7 +953,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
}break; }break;
case MAVLINK_MSG_ID_SERVO_OUTPUT_RAW: { case MAVLINK_MSG_ID_SERVO_OUTPUT_RAW: {
mavlink_msg_servo_output_raw_decode(&msg,&vehicle.servo_output_raw); mavlink_msg_servo_output_raw_decode(&msg,&vehicle.servo_output_raw);
/*
servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.time_usec)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(','); servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.time_usec)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(',');
servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.port)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(','); servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.port)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(',');
servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo1_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(','); servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo1_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(',');
@@ -972,7 +972,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo14_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(','); servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo14_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(',');
servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo15_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(','); servo_output_raw_csv[vehicle.servo_output_raw.port].append(QString::number(vehicle.servo_output_raw.servo15_raw)); servo_output_raw_csv[vehicle.servo_output_raw.port].append(',');
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'); 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(vehicle.servo_output_raw);
@@ -983,7 +983,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
}break; }break;
case MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT: { case MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT: {
mavlink_msg_nav_controller_output_decode(&msg,&vehicle.nav_controller_output); mavlink_msg_nav_controller_output_decode(&msg,&vehicle.nav_controller_output);
/*
nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.nav_roll)); nav_controller_output_csv.append(','); nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.nav_roll)); nav_controller_output_csv.append(',');
nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.nav_pitch)); nav_controller_output_csv.append(','); nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.nav_pitch)); nav_controller_output_csv.append(',');
nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.nav_bearing)); nav_controller_output_csv.append(','); nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.nav_bearing)); nav_controller_output_csv.append(',');
@@ -992,7 +992,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.alt_error)); nav_controller_output_csv.append(','); nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.alt_error)); nav_controller_output_csv.append(',');
nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.aspd_error)); nav_controller_output_csv.append(','); nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.aspd_error)); nav_controller_output_csv.append(',');
nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.xtrack_error)); nav_controller_output_csv.append('\n'); nav_controller_output_csv.append(QString::number(vehicle.nav_controller_output.xtrack_error)); nav_controller_output_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_AIRSPEED_AUTOCAL: { case MAVLINK_MSG_ID_AIRSPEED_AUTOCAL: {
@@ -1003,13 +1003,13 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
}break; }break;
case MAVLINK_MSG_ID_SCALED_PRESSURE: { case MAVLINK_MSG_ID_SCALED_PRESSURE: {
mavlink_msg_scaled_pressure_decode(&msg,&vehicle.scaled_pressure); mavlink_msg_scaled_pressure_decode(&msg,&vehicle.scaled_pressure);
/*
scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.time_boot_ms)); scaled_pressure_csv.append(','); scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.time_boot_ms)); scaled_pressure_csv.append(',');
scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.press_abs)); scaled_pressure_csv.append(','); scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.press_abs)); scaled_pressure_csv.append(',');
scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.press_diff)); scaled_pressure_csv.append(','); scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.press_diff)); scaled_pressure_csv.append(',');
scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.temperature)); scaled_pressure_csv.append(','); scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.temperature)); scaled_pressure_csv.append(',');
scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.temperature_press_diff)); scaled_pressure_csv.append('\n'); scaled_pressure_csv.append(QString::number(vehicle.scaled_pressure.temperature_press_diff)); scaled_pressure_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_EXTENDED_SYS_STATE: { case MAVLINK_MSG_ID_EXTENDED_SYS_STATE: {
@@ -1050,18 +1050,18 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
}break; }break;
case MAVLINK_MSG_ID_VFR_HUD: { case MAVLINK_MSG_ID_VFR_HUD: {
mavlink_msg_vfr_hud_decode(&msg,&vehicle.vfr_hud); mavlink_msg_vfr_hud_decode(&msg,&vehicle.vfr_hud);
/*
vfr_hud_csv.append(QString::number(vehicle.vfr_hud.airspeed)); vfr_hud_csv.append(','); vfr_hud_csv.append(QString::number(vehicle.vfr_hud.airspeed)); vfr_hud_csv.append(',');
vfr_hud_csv.append(QString::number(vehicle.vfr_hud.groundspeed)); vfr_hud_csv.append(','); vfr_hud_csv.append(QString::number(vehicle.vfr_hud.groundspeed)); vfr_hud_csv.append(',');
vfr_hud_csv.append(QString::number(vehicle.vfr_hud.alt)); vfr_hud_csv.append(','); vfr_hud_csv.append(QString::number(vehicle.vfr_hud.alt)); vfr_hud_csv.append(',');
vfr_hud_csv.append(QString::number(vehicle.vfr_hud.climb)); vfr_hud_csv.append(','); vfr_hud_csv.append(QString::number(vehicle.vfr_hud.climb)); vfr_hud_csv.append(',');
vfr_hud_csv.append(QString::number(vehicle.vfr_hud.heading)); vfr_hud_csv.append(','); vfr_hud_csv.append(QString::number(vehicle.vfr_hud.heading)); vfr_hud_csv.append(',');
vfr_hud_csv.append(QString::number(vehicle.vfr_hud.throttle)); vfr_hud_csv.append('\n'); vfr_hud_csv.append(QString::number(vehicle.vfr_hud.throttle)); vfr_hud_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_EMB_ATMO_COM: { case MAVLINK_MSG_ID_EMB_ATMO_COM: {
mavlink_msg_emb_atmo_com_decode(&msg,&vehicle.emb_atom_com); mavlink_msg_emb_atmo_com_decode(&msg,&vehicle.emb_atom_com);
/*
emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.time_boot_ms)); emb_atom_com_csv.append(','); emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.time_boot_ms)); emb_atom_com_csv.append(',');
emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.Airspeed)); emb_atom_com_csv.append(','); emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.Airspeed)); emb_atom_com_csv.append(',');
emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.beta)); emb_atom_com_csv.append(','); emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.beta)); emb_atom_com_csv.append(',');
@@ -1070,12 +1070,12 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.qbar)); emb_atom_com_csv.append(','); emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.qbar)); emb_atom_com_csv.append(',');
emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.seq)); emb_atom_com_csv.append(','); emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.seq)); emb_atom_com_csv.append(',');
emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.mach)); emb_atom_com_csv.append('\n'); emb_atom_com_csv.append(QString::number(vehicle.emb_atom_com.mach)); emb_atom_com_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_TurbineState: { case MAVLINK_MSG_ID_TurbineState: {
mavlink_msg_turbinestate_decode(&msg,&vehicle.turbinstate); mavlink_msg_turbinestate_decode(&msg,&vehicle.turbinstate);
/*
turbinstate_csv.append(QString::number(vehicle.turbinstate.time_boot_ms)); turbinstate_csv.append(','); turbinstate_csv.append(QString::number(vehicle.turbinstate.time_boot_ms)); turbinstate_csv.append(',');
turbinstate_csv.append(QString::number(vehicle.turbinstate.RPM_mea)); turbinstate_csv.append(','); turbinstate_csv.append(QString::number(vehicle.turbinstate.RPM_mea)); turbinstate_csv.append(',');
turbinstate_csv.append(QString::number(vehicle.turbinstate.T5)); turbinstate_csv.append(','); turbinstate_csv.append(QString::number(vehicle.turbinstate.T5)); turbinstate_csv.append(',');
@@ -1103,11 +1103,11 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
turbinstate_csv.append(QString::number(vehicle.turbinstate.rev)); turbinstate_csv.append(','); turbinstate_csv.append(QString::number(vehicle.turbinstate.rev)); turbinstate_csv.append(',');
turbinstate_csv.append(QString::number(vehicle.turbinstate.CFuelMode)); turbinstate_csv.append(','); turbinstate_csv.append(QString::number(vehicle.turbinstate.CFuelMode)); turbinstate_csv.append(',');
turbinstate_csv.append(QString::number(vehicle.turbinstate.Cmd)); turbinstate_csv.append('\n'); turbinstate_csv.append(QString::number(vehicle.turbinstate.Cmd)); turbinstate_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_BMUState: { case MAVLINK_MSG_ID_BMUState: {
mavlink_msg_bmustate_decode(&msg,&vehicle.bmustate); mavlink_msg_bmustate_decode(&msg,&vehicle.bmustate);
/*
bmustate_csv.append(QString::number(vehicle.bmustate.time_boot_ms)); bmustate_csv.append(','); bmustate_csv.append(QString::number(vehicle.bmustate.time_boot_ms)); bmustate_csv.append(',');
bmustate_csv.append(QString::number(vehicle.bmustate.BAT1_group_voltage_mv)); bmustate_csv.append(','); bmustate_csv.append(QString::number(vehicle.bmustate.BAT1_group_voltage_mv)); bmustate_csv.append(',');
bmustate_csv.append(QString::number(vehicle.bmustate.BAT1_group_current_dA)); bmustate_csv.append(','); bmustate_csv.append(QString::number(vehicle.bmustate.BAT1_group_current_dA)); bmustate_csv.append(',');
@@ -1129,11 +1129,11 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
bmustate_csv.append(QString::number(vehicle.bmustate.BAT2_STA1)); bmustate_csv.append(','); bmustate_csv.append(QString::number(vehicle.bmustate.BAT2_STA1)); bmustate_csv.append(',');
bmustate_csv.append(QString::number(vehicle.bmustate.BAT2_STA2)); bmustate_csv.append(','); bmustate_csv.append(QString::number(vehicle.bmustate.BAT2_STA2)); bmustate_csv.append(',');
bmustate_csv.append(QString::number(vehicle.bmustate.p500w_enabled)); bmustate_csv.append('\n'); bmustate_csv.append(QString::number(vehicle.bmustate.p500w_enabled)); bmustate_csv.append('\n');
*/
}break; }break;
case MAVLINK_MSG_ID_CCMState: { case MAVLINK_MSG_ID_CCMState: {
mavlink_msg_ccmstate_decode(&msg,&vehicle.ccmstate); mavlink_msg_ccmstate_decode(&msg,&vehicle.ccmstate);
/*
ccmstate_csv.append(QString::number(vehicle.ccmstate.time_boot_ms)); ccmstate_csv.append(','); ccmstate_csv.append(QString::number(vehicle.ccmstate.time_boot_ms)); ccmstate_csv.append(',');
ccmstate_csv.append(QString::number(vehicle.ccmstate.fuel_level)); ccmstate_csv.append(','); ccmstate_csv.append(QString::number(vehicle.ccmstate.fuel_level)); ccmstate_csv.append(',');
ccmstate_csv.append(QString::number(vehicle.ccmstate.temp[0])); ccmstate_csv.append(','); ccmstate_csv.append(QString::number(vehicle.ccmstate.temp[0])); ccmstate_csv.append(',');
@@ -1145,7 +1145,7 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
ccmstate_csv.append(QString::number(vehicle.ccmstate.volts[2])); ccmstate_csv.append(','); ccmstate_csv.append(QString::number(vehicle.ccmstate.volts[2])); ccmstate_csv.append(',');
ccmstate_csv.append(QString::number(vehicle.ccmstate.volts[3])); ccmstate_csv.append(','); ccmstate_csv.append(QString::number(vehicle.ccmstate.volts[3])); ccmstate_csv.append(',');
ccmstate_csv.append(QString::number(vehicle.ccmstate.echo_seq)); ccmstate_csv.append('\n'); ccmstate_csv.append(QString::number(vehicle.ccmstate.echo_seq)); ccmstate_csv.append('\n');
*/
}break; }break;
} }
+4
View File
@@ -57,6 +57,10 @@ void DLink::timeout()
Byte_Out_per = Byte_Out_ALL; Byte_Out_per = Byte_Out_ALL;
Byte_Out_ALL = 0; Byte_Out_ALL = 0;
emit byteCount(Byte_In_per,Byte_Out_per);
} }
int DLink::SendMessageTo(quint8 ch, quint8 *msg, quint16 len) int DLink::SendMessageTo(quint8 ch, quint8 *msg, quint16 len)
+3
View File
@@ -59,6 +59,9 @@ public:
quint32 Byte_In_ALL = 0; quint32 Byte_In_ALL = 0;
signals: signals:
void byteCount(int in,int out);
void showMessage(const QString &message,int TimeOut = 0); void showMessage(const QString &message,int TimeOut = 0);
void recieveMessage(quint32 src,QByteArray data); void recieveMessage(quint32 src,QByteArray data);
+73 -63
View File
@@ -1190,7 +1190,6 @@ void OPMapWidget::WPSetVisibleAll(bool value)
void OPMapWidget::WPDeleteAll() void OPMapWidget::WPDeleteAll()
{ {
//删除一个组 //删除一个组
foreach(QGraphicsItem * i, map->childItems()) { foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i); WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
@@ -1272,9 +1271,10 @@ void OPMapWidget::ConnectWP(WayPointItem *item)
connect(item, SIGNAL(WPProperty(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)), connect(item, SIGNAL(WPProperty(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)),
this, SLOT(find_PointNumber()),Qt::DirectConnection); this, SLOT(find_PointNumber()),Qt::DirectConnection);
/*
connect(item, SIGNAL(WPFollowPrevious(bool,WayPointItem*)), connect(item, SIGNAL(WPFollowPrevious(bool,WayPointItem*)),
this, SLOT(WPFollowPrevious(bool,WayPointItem*)),Qt::DirectConnection); this, SLOT(WPFollowPrevious(bool,WayPointItem*)),Qt::DirectConnection);
*/
connect(item, SIGNAL(localPositionChanged(QPointF, WayPointItem *)), connect(item, SIGNAL(localPositionChanged(QPointF, WayPointItem *)),
this, SLOT(WPLocalChanged(QPointF, WayPointItem *)), Qt::DirectConnection); this, SLOT(WPLocalChanged(QPointF, WayPointItem *)), Qt::DirectConnection);
@@ -1518,7 +1518,6 @@ void OPMapWidget::WPSetCurrent(int seq)
} }
} }
} }
} }
@@ -1859,10 +1858,6 @@ void OPMapWidget::WPLoad(QString path)//带文件目录参数
Item->emitWPProperty(); Item->emitWPProperty();
} }
} }
void OPMapWidget::WPSave(QString path)//带文件目录参数 void OPMapWidget::WPSave(QString path)//带文件目录参数
@@ -1877,7 +1872,7 @@ void OPMapWidget::WPSave(QString path)//带文件目录参数
QJsonObject rallyPoints; QJsonObject rallyPoints;
//geoFence节点写入 //geoFence节点写入 mission type == 1,2
{ {
QJsonArray circles; QJsonArray circles;
QJsonArray polygons; QJsonArray polygons;
@@ -1887,7 +1882,7 @@ void OPMapWidget::WPSave(QString path)//带文件目录参数
geoFence.insert("version",2); geoFence.insert("version",2);
} }
//mission节点写入 //mission节点写入 (mission type == 3...)
{ {
QJsonArray items; QJsonArray items;
@@ -2068,34 +2063,70 @@ void OPMapWidget::WPUpload(void)
//飞行界面收到的当前航点的消息 //飞行界面收到的当前航点的消息
void OPMapWidget::groupchanged(int value) void OPMapWidget::groupchanged(int value)
{ {
currentMissionType = value;
//如果当前是在飞行界面,那么就下载,否则不动 //如果当前是在飞行界面,那么就下载,否则不动
if(isWPCreate == true)//编辑界面 if(isWPCreate == true)//编辑界面
{ {
} }
else//飞行界面 else//飞行界面
{ {
/* qDebug() << "show current group" << currentMissionType;
WPDeleteAll(); //将不是当前的全部变成灰色,当前的显示
int sysid = 0;
int compid = 0;
foreach(QGraphicsItem * i, map->childItems()) { foreach(QGraphicsItem * i, map->childItems()) {
UAVItem *u = qgraphicsitem_cast<UAVItem *>(i); WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
if (u) { if (w) {
if(u->Select() == true) qDebug() << "missiontype" << w->MissionType();
if(w->MissionType() == currentMissionType)
{ {
sysid = u->SysID(); w->setisActive(true);
compid = u->CompID(); }
else
emit signal_WPDownload(sysid,compid,value); {
w->setisActive(false);
} }
} }
} }
*/
//将不是当前的先全部变成灰色,当前的显示
foreach(QGraphicsItem * i, map->childItems()) {
WayPointLine *l = qgraphicsitem_cast<WayPointLine *>(i);
if (l) {
WayPointItem *from = qgraphicsitem_cast<WayPointItem *>(l->WPLineFrom());
WayPointItem *to = qgraphicsitem_cast<WayPointItem *>(l->WPLineTo());
if((from)||(to))
{
if(from)
{
if(from->MissionType() == currentMissionType)
{
l->setisActive(true);
}
else
{
l->setisActive(false);
}
}
else if(to)
{
if(from->MissionType() == currentMissionType)
{
l->setisActive(true);
}
else
{
l->setisActive(false);
}
}
else//不知道这句对不对
{
l->setisActive(false);
}
}
}
}
} }
@@ -2167,22 +2198,7 @@ void OPMapWidget::WPGroup(int value)
} }
} }
//按照当前的组生成新的航点和航线
/*
WPDeleteAll();
QMap<int,WayPointItem *> group;
group = waypointgroups.value(currentGroup);
*/
update(); update();
} }
@@ -2222,12 +2238,14 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
//emit showMessage(tr("recieve way point %1").arg(seq + 1)); //emit showMessage(tr("recieve way point %1").arg(seq + 1));
emit showMessage(tr("收到航点 %1").arg(seq + 1)); emit showMessage(tr("recieve way point group:%1 seq:%2").arg(mission_type).arg(seq + 1));
//qDebug() << "receivers Point" << x * 10e-8 << y * 10e-8 << 10e-8; //qDebug() << "receivers Point" << x * 10e-8 << y * 10e-8 << 10e-8;
bool isExist = false; bool isExist = false;
foreach(QGraphicsItem * i, map->childItems()) { foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i); WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
if (w) { if (w) {
@@ -2269,26 +2287,24 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
} }
} }
if(!isExist) if(!isExist)
{ {
internals::PointLatLng LatLng; internals::PointLatLng LatLng;
LatLng.SetLat(x * 10e-8); LatLng.SetLat(x * 10e-8);
LatLng.SetLng(y * 10e-8); LatLng.SetLng(y * 10e-8);
//设置好当前的航线 //获取当前组下面的seq最大值
currentGroup = mission_type; 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);
//生成的时候默认设定不对,导致下载时切换过去
WayPointItem *Item = WPCreate(LatLng,z);
Item->SetNumber(seq+1);
qDebug() << "waypoint not exist:" << Item->Number() << seq+1 <<currentGroup << mission_type;
emit setWPProperty(param1,param2,param3,param4, emit setWPProperty(param1,param2,param3,param4,
x,y,z, x,y,z,
@@ -2305,23 +2321,17 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
Item->emitWPProperty(); Item->emitWPProperty();
qDebug() << "waypoint not exist:" << Item->Number() << seq+1 <<currentGroup << mission_type;
//===========连线 //===========连线
/*
WayPointItem *w_last = WPFind(mission_type,Item->Number() - 1);
if(w_last)
{
WPLineCreate(w_last,Item,Qt::green,false,2);
}
WayPointItem *w_next = WPFind(group,Item->Number() + 1); WayPointItem *w_last = WPFind(Item->MissionType(),Item->Number() - 1);
if(w_next)
{
WPLineCreate(item,w_next,Qt::green,false,2);
}
*/
if(w_last)
{
WPLineCreate(w_last,Item,Qt::green,false,2);
}
} }
qDebug() << "Exist" << isExist; qDebug() << "Exist" << isExist;
+1 -1
View File
@@ -687,7 +687,7 @@ void WayPointItem::setWPProperty(float param1,float param2,float param3,float pa
uint8_t autocontinue, uint8_t autocontinue,
uint8_t mission_type) uint8_t mission_type)
{ {
if(seq == property.seq) if((seq == property.seq)&&(property.mission_type == mission_type))
{ {
qDebug() << seq << "set property"; qDebug() << seq << "set property";