Files
gcs-nf/App/ToolsUI/Senser/Senser.cpp
T

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;
}
}
}