修正清除参数会死机问题
This commit is contained in:
@@ -247,6 +247,7 @@ void ParameterInspector::refreshView()//来一个参数更新一次
|
||||
|
||||
void ParameterInspector::clearview(void)
|
||||
{
|
||||
/*
|
||||
QMap<int, QMap<int, QTreeWidgetItem*>>::iterator ite;
|
||||
for (ite=uasParamTreeItems.begin(); ite!=uasParamTreeItems.end();++ite)
|
||||
{
|
||||
@@ -259,14 +260,18 @@ void ParameterInspector::clearview(void)
|
||||
delete param_ite.take(*listKeys);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
uasParamTreeItems.clear();
|
||||
|
||||
/*
|
||||
QMap<int, QTreeWidgetItem* >::iterator iteTree;
|
||||
for(iteTree=uasTopLevelItems.begin(); iteTree!=uasTopLevelItems.end();++iteTree)
|
||||
{
|
||||
delete iteTree.value();
|
||||
iteTree.value() = NULL;
|
||||
}
|
||||
*/
|
||||
uasTopLevelItems.clear();
|
||||
|
||||
|
||||
@@ -343,7 +348,6 @@ QVariant ParameterInspector::param_value(mavlink_param_value_t param)
|
||||
default:
|
||||
{
|
||||
value = ((float *)¶m.param_value)[0];
|
||||
//qDebug() << "Unsupported type " << param.param_type;
|
||||
}break;
|
||||
|
||||
}
|
||||
|
||||
+23
-20
@@ -37,17 +37,18 @@ ToolsUI::ToolsUI(QWidget *parent) :
|
||||
senser = new Senser();
|
||||
remotecontrol = new RemoteControl();
|
||||
|
||||
install(index0, 0,QIcon(":/img/warning.png"),tr("Inspector"));
|
||||
install(index1, 1,QIcon(":/img/warning.png"),tr("Log"));
|
||||
install(index2, 2,QIcon(":/img/warning.png"),tr("Replay"));
|
||||
install(index3, 3,QIcon(":/img/warning.png"),tr("Terminal"));
|
||||
install(index4, 4,QIcon(":/img/warning.png"),tr("Servos"));
|
||||
//install(powersystem, 5,QIcon(":/img/warning.png"),tr("PowerSystem"));
|
||||
//install(servosystem, 6,QIcon(":/img/warning.png"),tr("ServoSystem"));
|
||||
install(command, 7,QIcon(":/img/warning.png"),tr("CommandBox"));
|
||||
//install(diagram, 8,QIcon(":/img/warning.png"),tr("Diagram"));
|
||||
install(senser, 9,QIcon(":/img/warning.png"),tr("Senser"));
|
||||
install(remotecontrol,10,QIcon(":/img/warning.png"),tr("RC"));
|
||||
install(index0, 0,tr("Inspector"));
|
||||
install(index1, 1,tr("Log"));
|
||||
install(index2, 2,tr("Replay"));
|
||||
install(index3, 3,tr("Terminal"));
|
||||
install(index4, 4,tr("Servos"));
|
||||
//install(powersystem, 5,tr("PowerSystem"));
|
||||
//install(servosystem, 6,tr("ServoSystem"));
|
||||
install(command, 7,tr("CommandBox"));
|
||||
//install(diagram, 8,tr("Diagram"));
|
||||
install(senser, 9,tr("Senser"));
|
||||
install(senser, 9,tr("Senser"));
|
||||
install(remotecontrol,9,tr("RC"));
|
||||
|
||||
|
||||
|
||||
@@ -106,12 +107,11 @@ void ToolsUI::setPushButtonState(QWidget *w,state s)
|
||||
}
|
||||
|
||||
|
||||
void ToolsUI::install(ToolsWidget *widget,int key, QIcon icon, QString name)
|
||||
void ToolsUI::install(ToolsWidget *widget,int key, QString name)
|
||||
{
|
||||
if(!ToolsList.keys().contains(key))
|
||||
//if(!ToolsList.keys().contains(ToolsList.size()))
|
||||
if(!ToolsList.values().contains(widget))
|
||||
{
|
||||
//QWidget *widget = new QWidget(ui->frame);
|
||||
|
||||
int h = 50;
|
||||
int w = 120;
|
||||
|
||||
@@ -119,20 +119,23 @@ void ToolsUI::install(ToolsWidget *widget,int key, QIcon icon, QString name)
|
||||
btn->setText(name);
|
||||
btn->setFixedSize(w,h);
|
||||
|
||||
btnList.insert(key,btn);
|
||||
btnList.insert(ToolsList.size(),btn);
|
||||
|
||||
connect(btn,&QPushButton::clicked,
|
||||
this,&ToolsUI::btnClicked);
|
||||
|
||||
ui->gridLayout_Indexs->addWidget(btn,key,1);
|
||||
|
||||
ui->gridLayout_Indexs->addWidget(btn,ToolsList.size(),1);
|
||||
|
||||
widget->setParent(ui->frame);
|
||||
widget->setWindowTitle(name);
|
||||
widget->setWindowIcon(icon);
|
||||
widget->setIcon(widget->Icon());
|
||||
widget->hide();
|
||||
ToolsList.insert(key,widget);
|
||||
ToolsList.insert(ToolsList.size(),widget);
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "重复出现" << name;
|
||||
}
|
||||
}
|
||||
|
||||
void ToolsUI::btnClicked()
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
|
||||
private slots:
|
||||
|
||||
void install(ToolsWidget *widget, int key, QIcon icon, QString name);
|
||||
void install(ToolsWidget *widget, int key, QString name);
|
||||
|
||||
void setPushButtonState(QWidget *w,state s);
|
||||
void onTabIndexChanged(const int &index);
|
||||
|
||||
@@ -10,6 +10,12 @@ ToolsWidget::~ToolsWidget()
|
||||
|
||||
}
|
||||
|
||||
void ToolsWidget::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void ToolsWidget::setColor(QWidget *w,state s)
|
||||
{
|
||||
w->setProperty("state",s);
|
||||
@@ -33,7 +39,7 @@ void ToolsWidget::setFloat(void)
|
||||
this->setParent(nullptr);
|
||||
this->resize(this->minimumSize());
|
||||
this->move(pos.x() + (m_parent->width() - this->width()) * 0.5,
|
||||
pos.y() + (m_parent->height() - this->height()) * 0.5);
|
||||
pos.y());
|
||||
|
||||
if(Top())
|
||||
{
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include "QScreen"
|
||||
#include <QtGlobal>
|
||||
|
||||
#include "QIcon"
|
||||
|
||||
|
||||
class ToolsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -31,6 +34,9 @@ public:
|
||||
~ToolsWidget();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
signals:
|
||||
|
||||
|
||||
@@ -50,18 +56,46 @@ public slots:
|
||||
return isSetTop;
|
||||
}
|
||||
|
||||
|
||||
virtual void setIcon(QString path)
|
||||
{
|
||||
icon = QIcon(path);
|
||||
setWindowIcon(icon);
|
||||
}
|
||||
|
||||
virtual void setIcon(QIcon i)
|
||||
{
|
||||
icon = i;
|
||||
setWindowIcon(icon);
|
||||
}
|
||||
|
||||
virtual QIcon Icon(void)
|
||||
{
|
||||
return icon;
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent *event);
|
||||
virtual void closeEvent(QCloseEvent *event);
|
||||
|
||||
|
||||
virtual void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
|
||||
|
||||
private slots:
|
||||
|
||||
|
||||
|
||||
private:
|
||||
QWidget *m_parent;
|
||||
|
||||
bool isSetTop = false;
|
||||
|
||||
QIcon icon;
|
||||
|
||||
};
|
||||
|
||||
#endif // TOOLSWIDGET_H
|
||||
|
||||
+10
-15
@@ -77,7 +77,6 @@ double findAngle(uint16_t pwm,QMap<uint16_t,double> table)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return angle;
|
||||
@@ -1059,20 +1058,20 @@ void MainWindow::update_servo_output_raw(mavlink_servo_output_raw_t servo)
|
||||
if(servo.port == 0)
|
||||
{
|
||||
//12-16
|
||||
statusui->setValue(2,0,QString::number(servo.servo12_raw,'f',0));//8000H~7FFFH -38°~38° 1LSB=38/32767
|
||||
statusui->setValue(2,1,QString::number(servo.servo13_raw,'f',0));//88/32767
|
||||
statusui->setValue(2,2,QString::number(servo.servo14_raw,'f',0));//直线舵机
|
||||
statusui->setValue(2,3,QString::number(servo.servo15_raw,'f',0));
|
||||
statusui->setValue(2,0,QString::number(((int16_t)servo.servo12_raw) * 38.0 / 32767.0,'f',2));//8000H~7FFFH -38°~38° 1LSB=38/32767
|
||||
statusui->setValue(2,1,QString::number(((int16_t)servo.servo13_raw) * 88.0 / 32767.0,'f',2));//88/32767
|
||||
statusui->setValue(2,2,QString::number(((int16_t)servo.servo14_raw) * 38.0 / 32767.0,'f',2));//直线舵机
|
||||
statusui->setValue(2,3,QString::number(((int16_t)servo.servo15_raw) * 38.0 / 32767.0,'f',2));
|
||||
|
||||
statusui->setValue(2,4,QString::number(servo.servo16_raw,'f',0));
|
||||
statusui->setValue(2,4,QString::number(((int16_t)servo.servo16_raw) * 38.0 / 32767.0,'f',2));
|
||||
|
||||
}
|
||||
else if(servo.port == 1)
|
||||
{
|
||||
//17-19
|
||||
statusui->setValue(2,5,QString::number(servo.servo1_raw,'f',0));
|
||||
statusui->setValue(2,6,QString::number(servo.servo2_raw,'f',0));
|
||||
statusui->setValue(2,7,QString::number(servo.servo3_raw,'f',0));
|
||||
statusui->setValue(2,5,QString::number(((int16_t)servo.servo1_raw) * 88.0 / 32767.0,'f',2));
|
||||
statusui->setValue(2,6,QString::number(((int16_t)servo.servo2_raw) * 38.0 / 32767.0,'f',2));
|
||||
statusui->setValue(2,7,QString::number(((int16_t)servo.servo3_raw) * 38.0 / 32767.0,'f',2));
|
||||
|
||||
}
|
||||
|
||||
@@ -1093,13 +1092,13 @@ void MainWindow::updateUI()//事件驱动式更新数据
|
||||
bool isCustomChanged = false;
|
||||
bool isStateChanged = false;
|
||||
|
||||
static qint64 frq_time = QDateTime::currentMSecsSinceEpoch();//5hz
|
||||
static qint64 frq_time = QDateTime::currentMSecsSinceEpoch();//10hz
|
||||
if((QDateTime::currentMSecsSinceEpoch() - frq_time) <= 100)
|
||||
{
|
||||
return;
|
||||
}
|
||||
frq_time = QDateTime::currentMSecsSinceEpoch();
|
||||
|
||||
frq_time = QDateTime::currentMSecsSinceEpoch();
|
||||
|
||||
copk->setAttitude(dlink->mavlinknode->vehicleList.value(currentUAV).attitude.pitch * 57.3,
|
||||
dlink->mavlinknode->vehicleList.value(currentUAV).attitude.roll * 57.3,
|
||||
@@ -1127,10 +1126,6 @@ void MainWindow::updateUI()//事件驱动式更新数据
|
||||
|
||||
}
|
||||
|
||||
|
||||
//dlink->mavlinknode->vehicleList.value(currentUAV).vfr_hud.airspeed //表速
|
||||
//dlink->mavlinknode->vehicleList.value(currentUAV).gps_raw_int.vel//地速
|
||||
|
||||
copk->setAirSpeed(dlink->mavlinknode->vehicleList.value(currentUAV).emb_atom_com.Airspeed,5);//真空速
|
||||
copk->setAirSpeedTarget(dlink->mavlinknode->vehicleList.value(currentUAV).emb_atom_com.Airspeed
|
||||
+dlink->mavlinknode->vehicleList.value(currentUAV).nav_controller_output.aspd_error,5);
|
||||
|
||||
@@ -210,7 +210,7 @@ void ParameterProcess::ReadStateMachine(void)//一整列
|
||||
qDebug() << "start reading parameter";
|
||||
status.recieve.isWaitingforValue = true;
|
||||
|
||||
request_list();//一整列,也可以一个,龚老师飞控并不支持这个
|
||||
request_list();//一整列
|
||||
|
||||
step++;
|
||||
time = QTime::currentTime().msecsSinceStartOfDay();
|
||||
@@ -220,7 +220,6 @@ void ParameterProcess::ReadStateMachine(void)//一整列
|
||||
//如果超时,那么结束
|
||||
if((QTime::currentTime().msecsSinceStartOfDay() - time) > readTimeout)
|
||||
{
|
||||
|
||||
//做一个列表,记录谁丢了,后面单独请求
|
||||
//qmap list
|
||||
|
||||
@@ -641,7 +640,6 @@ QVariant ParameterProcess::set_type(mavlink_param_value_t param)
|
||||
{
|
||||
value = "unknow";
|
||||
}break;
|
||||
|
||||
}
|
||||
|
||||
return value;
|
||||
@@ -701,7 +699,7 @@ uint8_t ParameterProcess::get_type(QVariant type)
|
||||
|
||||
|
||||
//使用QString
|
||||
QString ParameterProcess::set_id(char *id)//设置id,如果id小于16,那么能够找到/0,如果等于或者大于,那么会找不到,因此乱码
|
||||
QString ParameterProcess::set_id(char *id)
|
||||
{
|
||||
QString Name;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user