611 lines
18 KiB
C++
611 lines
18 KiB
C++
#include "Senser.h"
|
|
#include "ui_Senser.h"
|
|
|
|
Senser::Senser(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::Senser)
|
|
{
|
|
ui->setupUi(this);
|
|
m_parent = parent;
|
|
|
|
QFile file(":/qss/Senser.qss");
|
|
file.open(QFile::ReadOnly);
|
|
QTextStream filetext(&file);
|
|
QString stylesheet = filetext.readAll();
|
|
this->setStyleSheet(stylesheet);
|
|
file.close();
|
|
|
|
attChart = new Chart(ui->frame_Attitude);
|
|
gyroChart = new Chart(ui->frame_Gyro);
|
|
accChart = new Chart(ui->frame_Accelerate);
|
|
|
|
attChart->setGeometry(0,0,ui->frame_Attitude->width(),ui->frame_Attitude->height());
|
|
gyroChart->setGeometry(0,0,ui->frame_Gyro->width(),ui->frame_Gyro->height());
|
|
accChart->setGeometry(0,0,ui->frame_Accelerate->width(),ui->frame_Accelerate->height());
|
|
|
|
|
|
attChart->chart()->legend()->setAlignment(Qt::AlignRight);
|
|
gyroChart->chart()->legend()->setAlignment(Qt::AlignRight);
|
|
accChart->chart()->legend()->setAlignment(Qt::AlignRight);
|
|
|
|
attChart->setOperation(false);
|
|
gyroChart->setOperation(false);
|
|
accChart->setOperation(false);
|
|
|
|
attChart->setRenderHint(QPainter::Antialiasing);
|
|
gyroChart->setRenderHint(QPainter::Antialiasing);
|
|
accChart->setRenderHint(QPainter::Antialiasing);
|
|
|
|
//ui->label->setFixedSize(w,h);
|
|
|
|
|
|
|
|
attChart->setRubberBand(QChartView::RectangleRubberBand);
|
|
gyroChart->setRubberBand(QChartView::RectangleRubberBand);
|
|
accChart->setRubberBand(QChartView::RectangleRubberBand);
|
|
|
|
//=======================================================
|
|
/*
|
|
connect(ui->checkBox_ins_ax,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_acc_stateChanged);
|
|
|
|
connect(ui->checkBox_ins_ay,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_acc_stateChanged);
|
|
|
|
connect(ui->checkBox_ins_az,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_acc_stateChanged);
|
|
//=======================================================
|
|
connect(ui->checkBox_ins_p,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
|
|
connect(ui->checkBox_ins_q,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
|
|
connect(ui->checkBox_ins_r,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
//=======================================================
|
|
connect(ui->checkBox_ins_rol,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_att_stateChanged);
|
|
|
|
connect(ui->checkBox_ins_pit,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_att_stateChanged);
|
|
|
|
|
|
//=======================================================
|
|
connect(ui->checkBox_sbg_ax,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_acc_stateChanged);
|
|
|
|
connect(ui->checkBox_sbg_ay,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_acc_stateChanged);
|
|
|
|
connect(ui->checkBox_sbg_az,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_acc_stateChanged);
|
|
//=======================================================
|
|
connect(ui->checkBox_sbg_p,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
|
|
connect(ui->checkBox_sbg_q,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
|
|
connect(ui->checkBox_sbg_r,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
//=======================================================
|
|
connect(ui->checkBox_sbg_rol,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_att_stateChanged);
|
|
|
|
connect(ui->checkBox_sbg_pit,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_att_stateChanged);
|
|
|
|
|
|
//=======================================================
|
|
connect(ui->checkBox_use_p,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
|
|
connect(ui->checkBox_use_q,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
|
|
connect(ui->checkBox_use_r,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_gyro_stateChanged);
|
|
//=======================================================
|
|
connect(ui->checkBox_use_rol,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_att_stateChanged);
|
|
|
|
connect(ui->checkBox_use_pit,&QCheckBox::stateChanged,
|
|
this,&Senser::on_checkBox_att_stateChanged);
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
Senser::~Senser()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
|
|
void Senser::setColor(QWidget *w,state s)
|
|
{
|
|
w->setProperty("state",s);
|
|
w->style()->unpolish(w);
|
|
w->style()->polish(w);
|
|
}
|
|
|
|
void Senser::setValue(QLabel *w,QString s)
|
|
{
|
|
w->setText(s);
|
|
}
|
|
|
|
|
|
|
|
void Senser::resizeEvent(QResizeEvent *event)
|
|
{
|
|
attChart->setGeometry(0,0,ui->frame_Attitude->width(),ui->frame_Attitude->height());
|
|
gyroChart->setGeometry(0,0,ui->frame_Gyro->width(),ui->frame_Gyro->height());
|
|
accChart->setGeometry(0,0,ui->frame_Accelerate->width(),ui->frame_Accelerate->height());
|
|
}
|
|
|
|
void Senser::closeEvent(QCloseEvent *event)
|
|
{
|
|
setFloat();
|
|
event->ignore();
|
|
}
|
|
|
|
void Senser::setFloat(void)
|
|
{
|
|
if(this->parent())
|
|
{
|
|
this->setParent(nullptr);
|
|
QScreen *screen=QGuiApplication::primaryScreen ();;
|
|
this->move((screen->availableGeometry().width()-this->width())/2,(screen->availableGeometry().height()-this->height())/2);
|
|
this->show();
|
|
}
|
|
else
|
|
{
|
|
this->setParent(m_parent);
|
|
this->move(0,0);
|
|
this->hide();
|
|
//qDebug() << m_parent->children();
|
|
|
|
}
|
|
}
|
|
|
|
void Senser::on_checkBox_att_stateChanged(int arg1)
|
|
{
|
|
QCheckBox *chk = qobject_cast<QCheckBox *>(sender());
|
|
if(chk)
|
|
{
|
|
if(arg1 == Qt::Checked)
|
|
{
|
|
attChart->addSeries(chk->text());
|
|
}
|
|
else if(arg1 == Qt::Unchecked)
|
|
{
|
|
attChart->removeSerie(chk->text());
|
|
}
|
|
update();
|
|
}
|
|
}
|
|
|
|
void Senser::on_checkBox_gyro_stateChanged(int arg1)
|
|
{
|
|
QCheckBox *chk = qobject_cast<QCheckBox *>(sender());
|
|
if(chk)
|
|
{
|
|
if(arg1 == Qt::Checked)
|
|
{
|
|
gyroChart->addSeries(chk->text());
|
|
}
|
|
else if(arg1 == Qt::Unchecked)
|
|
{
|
|
gyroChart->removeSerie(chk->text());
|
|
}
|
|
update();
|
|
}
|
|
}
|
|
|
|
void Senser::on_checkBox_acc_stateChanged(int arg1)
|
|
{
|
|
QCheckBox *chk = qobject_cast<QCheckBox *>(sender());
|
|
if(chk)
|
|
{
|
|
if(arg1 == Qt::Checked)
|
|
{
|
|
accChart->addSeries(chk->text());
|
|
}
|
|
else if(arg1 == Qt::Unchecked)
|
|
{
|
|
accChart->removeSerie(chk->text());
|
|
}
|
|
update();
|
|
}
|
|
}
|
|
|
|
|
|
void Senser::setINS(int source,int pos,QVariant value)
|
|
{
|
|
if(source == 1)
|
|
{
|
|
switch (pos) {
|
|
case 1:
|
|
ui->label_1_svn->setText(value.toString());
|
|
break;
|
|
case 2:
|
|
ui->label_1_BIT->setText(value.toString());
|
|
break;
|
|
case 3:
|
|
ui->label_1_AttitudeStatus->setText(value.toString());
|
|
break;
|
|
case 4:
|
|
ui->label_1_HeadingStatus->setText(value.toString());
|
|
break;
|
|
case 5:
|
|
ui->label_1_SpeedStatus->setText(value.toString());
|
|
break;
|
|
case 6:
|
|
ui->label_1_PositionStatus->setText(value.toString());
|
|
break;
|
|
case 7:
|
|
ui->label_1_System->setText(value.toString());
|
|
break;
|
|
case 8:
|
|
ui->label_1_COM->setText(value.toString());
|
|
break;
|
|
case 9:
|
|
ui->label_1_GPS->setText(value.toString());
|
|
break;
|
|
case 10:
|
|
ui->label_1_lng->setText(value.toString());
|
|
break;
|
|
case 11:
|
|
ui->label_1_lat->setText(value.toString());
|
|
break;
|
|
case 12:
|
|
ui->label_1_alt->setText(value.toString());
|
|
break;
|
|
case 13:
|
|
ui->label_1_gs->setText(value.toString());
|
|
break;
|
|
case 14:
|
|
ui->label_1_rol->setText(value.toString());
|
|
break;
|
|
case 15:
|
|
ui->label_1_pit->setText(value.toString());
|
|
break;
|
|
case 16:
|
|
ui->label_1_yaw->setText(value.toString());
|
|
break;
|
|
case 17:
|
|
ui->label_1_heading->setText(value.toString());
|
|
break;
|
|
case 18:
|
|
ui->label_1_p->setText(value.toString());
|
|
break;
|
|
case 19:
|
|
ui->label_1_q->setText(value.toString());
|
|
break;
|
|
case 20:
|
|
ui->label_1_r->setText(value.toString());
|
|
break;
|
|
case 21:
|
|
ui->label_1_ax->setText(value.toString());
|
|
break;
|
|
case 22:
|
|
ui->label_1_ay->setText(value.toString());
|
|
break;
|
|
case 23:
|
|
ui->label_1_az->setText(value.toString());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else if(source == 2)
|
|
{
|
|
switch (pos) {
|
|
case 1:
|
|
ui->label_2_svn->setText(value.toString());
|
|
break;
|
|
case 2:
|
|
ui->label_2_BIT->setText(value.toString());
|
|
break;
|
|
case 3:
|
|
ui->label_2_AttitudeStatus->setText(value.toString());
|
|
break;
|
|
case 4:
|
|
ui->label_2_HeadingStatus->setText(value.toString());
|
|
break;
|
|
case 5:
|
|
ui->label_2_SpeedStatus->setText(value.toString());
|
|
break;
|
|
case 6:
|
|
ui->label_2_PositionStatus->setText(value.toString());
|
|
break;
|
|
case 7:
|
|
ui->label_2_System->setText(value.toString());
|
|
break;
|
|
case 8:
|
|
ui->label_2_COM->setText(value.toString());
|
|
break;
|
|
case 9:
|
|
ui->label_2_GPS->setText(value.toString());
|
|
break;
|
|
case 10:
|
|
ui->label_2_lng->setText(value.toString());
|
|
break;
|
|
case 11:
|
|
ui->label_2_lat->setText(value.toString());
|
|
break;
|
|
case 12:
|
|
ui->label_2_alt->setText(value.toString());
|
|
break;
|
|
case 13:
|
|
ui->label_2_gs->setText(value.toString());
|
|
break;
|
|
case 14:
|
|
ui->label_2_rol->setText(value.toString());
|
|
break;
|
|
case 15:
|
|
ui->label_2_pit->setText(value.toString());
|
|
break;
|
|
case 16:
|
|
ui->label_2_yaw->setText(value.toString());
|
|
break;
|
|
case 17:
|
|
ui->label_2_heading->setText(value.toString());
|
|
break;
|
|
case 18:
|
|
ui->label_2_p->setText(value.toString());
|
|
break;
|
|
case 19:
|
|
ui->label_2_q->setText(value.toString());
|
|
break;
|
|
case 20:
|
|
ui->label_2_r->setText(value.toString());
|
|
break;
|
|
case 21:
|
|
ui->label_2_ax->setText(value.toString());
|
|
break;
|
|
case 22:
|
|
ui->label_2_ay->setText(value.toString());
|
|
break;
|
|
case 23:
|
|
ui->label_2_az->setText(value.toString());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void Senser::setDAS(int source,int pos,QVariant value)
|
|
{
|
|
if(source == 1)
|
|
{
|
|
switch (pos) {
|
|
case 1:
|
|
//ui->label_1_atteck->setText(value.toString());
|
|
break;
|
|
case 2:
|
|
//ui->label_1_slide->setText(value.toString());
|
|
break;
|
|
case 3:
|
|
ui->label_1_rel_alt->setText(value.toString());
|
|
break;
|
|
case 4:
|
|
ui->label_1_cas->setText(value.toString());
|
|
break;
|
|
case 5:
|
|
ui->label_1_tas->setText(value.toString());
|
|
break;
|
|
case 6:
|
|
ui->label_1_ma->setText(value.toString());
|
|
break;
|
|
case 7:
|
|
ui->label_1_dynamic->setText(value.toString());
|
|
break;
|
|
case 8:
|
|
ui->label_1_static->setText(value.toString());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else if(source == 2)
|
|
{
|
|
switch (pos) {
|
|
case 1:
|
|
//ui->label_2_atteck->setText(value.toString());
|
|
break;
|
|
case 2:
|
|
//ui->label_2_slide->setText(value.toString());
|
|
break;
|
|
case 3:
|
|
//ui->label_2_pre_alt->setText(value.toString());
|
|
break;
|
|
case 4:
|
|
//ui->label_2_cas->setText(value.toString());
|
|
break;
|
|
case 5:
|
|
//ui->label_2_tas->setText(value.toString());
|
|
break;
|
|
case 6:
|
|
//ui->label_2_ma->setText(value.toString());
|
|
break;
|
|
case 7:
|
|
ui->label_2_dynamic->setText(value.toString());
|
|
break;
|
|
case 8:
|
|
ui->label_2_static->setText(value.toString());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
void Senser::setINSState(int source,int pos,state value)
|
|
{
|
|
if(source == 1)
|
|
{
|
|
switch (pos) {
|
|
case 1:
|
|
setColor(ui->label_1_svn,value);
|
|
break;
|
|
case 2:
|
|
setColor(ui->label_1_BIT,value);
|
|
break;
|
|
case 3:
|
|
setColor(ui->label_1_AttitudeStatus,value);
|
|
break;
|
|
case 4:
|
|
setColor(ui->label_1_HeadingStatus,value);
|
|
break;
|
|
case 5:
|
|
setColor(ui->label_1_SpeedStatus,value);
|
|
break;
|
|
case 6:
|
|
setColor(ui->label_1_PositionStatus,value);
|
|
break;
|
|
case 7:
|
|
setColor(ui->label_1_System,value);
|
|
break;
|
|
case 8:
|
|
setColor(ui->label_1_COM,value);
|
|
break;
|
|
case 9:
|
|
setColor(ui->label_1_GPS,value);
|
|
break;
|
|
case 10:
|
|
setColor(ui->label_1_lng,value);
|
|
break;
|
|
case 11:
|
|
setColor(ui->label_1_lat,value);
|
|
break;
|
|
case 12:
|
|
setColor(ui->label_1_alt,value);
|
|
break;
|
|
case 13:
|
|
setColor(ui->label_1_gs,value);
|
|
break;
|
|
case 14:
|
|
setColor(ui->label_1_rol,value);
|
|
break;
|
|
case 15:
|
|
setColor(ui->label_1_pit,value);
|
|
break;
|
|
case 16:
|
|
setColor(ui->label_1_yaw,value);
|
|
break;
|
|
case 17:
|
|
setColor(ui->label_1_heading,value);
|
|
break;
|
|
case 18:
|
|
setColor(ui->label_1_p,value);
|
|
break;
|
|
case 19:
|
|
setColor(ui->label_1_q,value);
|
|
break;
|
|
case 20:
|
|
setColor(ui->label_1_r,value);
|
|
break;
|
|
case 21:
|
|
setColor(ui->label_1_ax,value);
|
|
break;
|
|
case 22:
|
|
setColor(ui->label_1_ay,value);
|
|
break;
|
|
case 23:
|
|
setColor(ui->label_1_az,value);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else if(source == 2)
|
|
{
|
|
switch (pos) {
|
|
case 1:
|
|
setColor(ui->label_2_svn,value);
|
|
break;
|
|
case 2:
|
|
setColor(ui->label_2_BIT,value);
|
|
break;
|
|
case 3:
|
|
setColor(ui->label_2_AttitudeStatus,value);
|
|
break;
|
|
case 4:
|
|
setColor(ui->label_2_HeadingStatus,value);
|
|
break;
|
|
case 5:
|
|
setColor(ui->label_2_SpeedStatus,value);
|
|
break;
|
|
case 6:
|
|
setColor(ui->label_2_PositionStatus,value);
|
|
break;
|
|
case 7:
|
|
setColor(ui->label_2_System,value);
|
|
break;
|
|
case 8:
|
|
setColor(ui->label_2_COM,value);
|
|
break;
|
|
case 9:
|
|
setColor(ui->label_2_GPS,value);
|
|
break;
|
|
case 10:
|
|
setColor(ui->label_2_lng,value);
|
|
break;
|
|
case 11:
|
|
setColor(ui->label_2_lat,value);
|
|
break;
|
|
case 12:
|
|
setColor(ui->label_2_alt,value);
|
|
break;
|
|
case 13:
|
|
setColor(ui->label_2_gs,value);
|
|
break;
|
|
case 14:
|
|
setColor(ui->label_2_rol,value);
|
|
break;
|
|
case 15:
|
|
setColor(ui->label_2_pit,value);
|
|
break;
|
|
case 16:
|
|
setColor(ui->label_2_yaw,value);
|
|
break;
|
|
case 17:
|
|
setColor(ui->label_2_heading,value);
|
|
break;
|
|
case 18:
|
|
setColor(ui->label_2_p,value);
|
|
break;
|
|
case 19:
|
|
setColor(ui->label_2_q,value);
|
|
break;
|
|
case 20:
|
|
setColor(ui->label_2_r,value);
|
|
break;
|
|
case 21:
|
|
setColor(ui->label_2_ax,value);
|
|
break;
|
|
case 22:
|
|
setColor(ui->label_2_ay,value);
|
|
break;
|
|
case 23:
|
|
setColor(ui->label_2_az,value);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|