Files
gcs-nf/App/StatusUI/StatusUI.cpp
T

524 lines
14 KiB
C++
Raw Normal View History

#include "StatusUI.h"
2020-10-08 17:32:13 +08:00
#include "ui_StatusUI.h"
StatusUI::StatusUI(QWidget *parent) :
QWidget(parent),
ui(new Ui::StatusUI)
{
ui->setupUi(this);
2020-10-09 13:30:11 +08:00
//load qss
QFile file(":/qss/StatusUI.qss");
2020-10-09 13:30:11 +08:00
file.open(QFile::ReadOnly);
QTextStream filetext(&file);
QString stylesheet = filetext.readAll();
this->setStyleSheet(stylesheet);
file.close();
2020-11-05 13:44:27 +08:00
/*
2020-10-15 22:21:38 +08:00
ui->label_Warning_1_1->hide();
ui->label_Warning_1_2->hide();
ui->label_Warning_2_1->hide();
ui->label_Warning_2_2->hide();
ui->label_Warning_3_1->hide();
ui->label_Warning_3_2->hide();
ui->label_L1->hide();
ui->label_L2->hide();
ui->label_L3->hide();
ui->groupBox_Warn->hide();
2020-11-05 13:44:27 +08:00
*/
2020-10-15 22:21:38 +08:00
2020-12-08 22:21:52 +08:00
ui->label_VerticalMode->hide();
ui->label_HorizonMode->hide();
ui->label_navMode->hide();
2020-11-07 10:54:30 +08:00
int w = 150;
2020-12-06 09:13:42 +08:00
int h = 20;
2020-10-15 22:21:38 +08:00
2020-12-04 01:46:02 +08:00
ui->label_FlightMode->setFixedSize(w,h);
ui->label_VerticalMode->setFixedSize(w,h);
ui->label_HorizonMode->setFixedSize(w,h);
2020-11-07 10:54:30 +08:00
//========================================
2020-12-04 01:46:02 +08:00
ui->label_1_Atteck->setFixedSize(w,h);
ui->label_1_Slide->setFixedSize(w,h);
ui->label_1_rol->setFixedSize(w,h);
ui->label_1_pit->setFixedSize(w,h);
ui->label_1_heading->setFixedSize(w,h);
ui->label_1_alt->setFixedSize(w,h);
ui->label_1_cas->setFixedSize(w,h);
ui->label_1_tas->setFixedSize(w,h);
ui->label_1_gs->setFixedSize(w,h);
ui->label_1_ma->setFixedSize(w,h);
ui->label_1_rate->setFixedSize(w,h);
ui->label_2_rol->setFixedSize(w,h);
ui->label_2_pit->setFixedSize(w,h);
ui->label_2_heading->setFixedSize(w,h);
ui->label_2_alt->setFixedSize(w,h);
ui->label_2_tas->setFixedSize(w,h);
//========================================
ui->label_la_real->setFixedSize(w,h);
ui->label_la_target->setFixedSize(w,h);
ui->label_ra_real->setFixedSize(w,h);
ui->label_ra_target->setFixedSize(w,h);
ui->label_lv_real->setFixedSize(w,h);
ui->label_lv_target->setFixedSize(w,h);
ui->label_rv_real->setFixedSize(w,h);
ui->label_rv_target->setFixedSize(w,h);
ui->label_rud_real->setFixedSize(w,h);
ui->label_rud_target->setFixedSize(w,h);
2020-11-07 10:54:30 +08:00
//===================================
2020-12-04 01:46:02 +08:00
ui->label_thr->setFixedSize(w,h);
ui->label_rpm->setFixedSize(w,h);
ui->label_1_FuelLevel->setFixedSize(w,h);
ui->label_2_FuelLevel->setFixedSize(w,h);
ui->label_fuelPressure->setFixedSize(w,h);
ui->label_temp_up->setFixedSize(w,h);
ui->label_temp_right->setFixedSize(w,h);
2020-11-07 10:54:30 +08:00
//===================================
2020-12-04 01:46:02 +08:00
ui->label_28_V->setFixedSize(w,h);
ui->label_28_A->setFixedSize(w,h);
ui->label_56_V->setFixedSize(w,h);
ui->label_56_A->setFixedSize(w,h);
2020-11-07 10:54:30 +08:00
//==================================
2020-12-04 01:46:02 +08:00
ui->label_ssp->setFixedSize(w,h);
ui->label_ssr->setFixedSize(w,h);
2020-12-04 01:46:02 +08:00
//====================================
setColor(ui->label_FlightMode,state::inital);
setColor(ui->label_VerticalMode,state::inital);
setColor(ui->label_HorizonMode,state::inital);
//==================================
setColor(ui->label_1_Atteck,state::inital);
setColor(ui->label_1_Slide,state::inital);
setColor(ui->label_1_rol,state::inital);
setColor(ui->label_1_pit,state::inital);
setColor(ui->label_1_heading,state::inital);
setColor(ui->label_1_alt,state::inital);
setColor(ui->label_1_cas,state::inital);
setColor(ui->label_1_tas,state::inital);
setColor(ui->label_1_gs,state::inital);
setColor(ui->label_1_ma,state::inital);
setColor(ui->label_1_rate,state::inital);
setColor(ui->label_2_rol,state::inital);
setColor(ui->label_2_pit,state::inital);
setColor(ui->label_2_heading,state::inital);
setColor(ui->label_2_alt,state::inital);
setColor(ui->label_2_tas,state::inital);
//========================================
setColor(ui->label_la_real,state::inital);
setColor(ui->label_la_target,state::inital);
setColor(ui->label_ra_real,state::inital);
setColor(ui->label_ra_target,state::inital);
setColor(ui->label_lv_real,state::inital);
setColor(ui->label_lv_target,state::inital);
setColor(ui->label_rv_real,state::inital);
setColor(ui->label_rv_target,state::inital);
setColor(ui->label_rud_real,state::inital);
setColor(ui->label_rud_target,state::inital);
//===================================
setColor(ui->label_thr,state::inital);
setColor(ui->label_rpm,state::inital);
setColor(ui->label_1_FuelLevel,state::inital);
setColor(ui->label_2_FuelLevel,state::inital);
setColor(ui->label_fuelPressure,state::inital);
setColor(ui->label_temp_up,state::inital);
setColor(ui->label_temp_right,state::inital);
//===================================
setColor(ui->label_28_V,state::inital);
setColor(ui->label_28_A,state::inital);
setColor(ui->label_56_V,state::inital);
setColor(ui->label_56_A,state::inital);
//==================================
setColor(ui->label_ssp,state::inital);
setColor(ui->label_ssr,state::inital);
2020-12-08 22:21:52 +08:00
2020-10-08 17:32:13 +08:00
}
StatusUI::~StatusUI()
{
delete ui;
}
2020-10-09 13:30:11 +08:00
void StatusUI::setColor(QWidget *w,state s)
{
w->setProperty("state",s);
w->style()->unpolish(w);
w->style()->polish(w);
}
void StatusUI::setValue(QLabel *w,QString s)
{
w->setText(s);
}
2020-12-04 01:46:02 +08:00
void StatusUI::setMode(uint32_t pos,QVariant value1,QVariant value2)
{
switch (pos) {
case 1:
ui->label_FlightMode->setText(value1.toString());
break;
case 2:
ui->label_VerticalMode->setText(value1.toString());
ui->label_HorizonMode->setText(value2.toString());
break;
}
}
2020-12-04 11:33:50 +08:00
void StatusUI::setState(uint32_t pos, QVariant value1, QVariant value2)
2020-10-09 13:30:11 +08:00
{
2020-10-11 19:10:57 +08:00
switch (pos) {
case 1:
2020-12-04 11:33:50 +08:00
ui->label_1_Atteck->setText(value1.toString());
2020-12-07 16:29:08 +08:00
if(qAbs(value1.toFloat()) >= 20)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_1_Atteck,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_1_Atteck,state::inital);
}
2020-10-11 19:10:57 +08:00
break;
case 2:
2020-12-04 11:33:50 +08:00
ui->label_1_Slide->setText(value1.toString());
2020-12-07 16:29:08 +08:00
if(qAbs(value1.toFloat()) >= 20)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_1_Slide,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_1_Slide,state::inital);
}
break;
2020-10-24 08:45:26 +08:00
case 3:
2020-12-04 11:33:50 +08:00
ui->label_1_rol->setText(value1.toString());
ui->label_2_rol->setText(value2.toString());
2020-12-07 16:29:08 +08:00
if(qAbs(value1.toFloat()) >= 45)
2020-12-04 11:33:50 +08:00
{
setColor(ui->label_1_rol,state::failure);
}
else
{
setColor(ui->label_1_rol,state::inital);
}
2020-10-11 19:10:57 +08:00
break;
2020-10-24 08:45:26 +08:00
case 4:
2020-12-04 11:33:50 +08:00
ui->label_1_pit->setText(value1.toString());
ui->label_2_pit->setText(value2.toString());
2020-12-07 16:29:08 +08:00
if(qAbs(value1.toFloat()) >= 25)
2020-12-04 11:33:50 +08:00
{
setColor(ui->label_1_pit,state::failure);
}
else
{
setColor(ui->label_1_pit,state::inital);
}
2020-10-24 11:21:24 +08:00
break;
case 5:
2020-12-04 11:33:50 +08:00
ui->label_1_heading->setText(value1.toString());
ui->label_2_heading->setText(value2.toString());
2020-10-11 19:10:57 +08:00
break;
2020-10-24 11:21:24 +08:00
case 6:
2020-12-04 11:33:50 +08:00
ui->label_1_alt->setText(value1.toString());
ui->label_2_alt->setText(value2.toString());
2020-10-11 19:10:57 +08:00
break;
2020-10-24 11:21:24 +08:00
case 7:
2020-12-04 11:33:50 +08:00
ui->label_1_cas->setText(value1.toString());
if(value1.toFloat() <= 90)
{
setColor(ui->label_1_cas,state::failure);
}
else
{
setColor(ui->label_1_cas,state::inital);
}
2020-10-24 08:45:26 +08:00
break;
2020-10-24 11:21:24 +08:00
case 8:
2020-12-04 11:33:50 +08:00
ui->label_1_tas->setText(value1.toString());
ui->label_2_tas->setText(value2.toString());
if(value1.toFloat() <= 100)
2020-12-04 11:33:50 +08:00
{
setColor(ui->label_1_tas,state::failure);
}
else
{
setColor(ui->label_1_tas,state::inital);
}
2020-10-24 08:45:26 +08:00
break;
2020-12-04 01:46:02 +08:00
case 9:
2020-12-04 11:33:50 +08:00
ui->label_1_gs->setText(value1.toString());
if(value1.toFloat() <= 100)
2020-12-04 11:33:50 +08:00
{
setColor(ui->label_1_gs,state::failure);
}
else
{
setColor(ui->label_1_gs,state::inital);
}
2020-10-24 08:45:26 +08:00
2020-11-05 13:44:27 +08:00
break;
2020-12-04 01:46:02 +08:00
case 10:
2020-12-04 11:33:50 +08:00
ui->label_1_ma->setText(value1.toString());
2020-11-05 13:44:27 +08:00
2020-10-24 08:45:26 +08:00
break;
2020-12-04 01:46:02 +08:00
case 11:
2020-12-04 11:33:50 +08:00
ui->label_1_rate->setText(value1.toString());
2020-12-07 16:29:08 +08:00
if(value1.toFloat() <= -50)
2020-12-04 11:33:50 +08:00
{
setColor(ui->label_1_rate,state::failure);
}
else
{
setColor(ui->label_1_rate,state::inital);
}
2020-12-04 01:46:02 +08:00
2020-10-11 19:10:57 +08:00
break;
}
2020-10-09 13:30:11 +08:00
}
2020-10-10 15:25:17 +08:00
2020-10-11 19:10:57 +08:00
void StatusUI::setServo(uint32_t pos,QVariant real,QVariant meas)
2020-10-10 15:25:17 +08:00
{
2020-10-11 19:10:57 +08:00
switch (pos) {
2020-10-24 20:07:28 +08:00
2020-10-11 19:10:57 +08:00
case 1:
2020-10-24 20:07:28 +08:00
ui->label_la_real->setText(real.toString());
2020-12-04 01:46:02 +08:00
ui->label_la_target->setText(meas.toString());
2020-10-11 19:10:57 +08:00
break;
case 2:
2020-10-24 20:07:28 +08:00
ui->label_ra_real->setText(real.toString());
2020-12-04 01:46:02 +08:00
ui->label_ra_target->setText(meas.toString());
2020-10-24 20:07:28 +08:00
break;
case 3:
2020-10-11 19:10:57 +08:00
ui->label_lv_real->setText(real.toString());
2020-12-04 01:46:02 +08:00
ui->label_lv_target->setText(meas.toString());
2020-10-11 19:10:57 +08:00
break;
2020-10-24 20:07:28 +08:00
case 4:
2020-10-11 19:10:57 +08:00
ui->label_rv_real->setText(real.toString());
2020-12-04 01:46:02 +08:00
ui->label_rv_target->setText(meas.toString());
2020-10-11 19:10:57 +08:00
break;
case 5:
2020-10-24 20:07:28 +08:00
ui->label_rud_real->setText(real.toString());
2020-12-04 01:46:02 +08:00
ui->label_rud_target->setText(meas.toString());
2020-10-11 19:10:57 +08:00
break;
}
2020-10-10 15:25:17 +08:00
}
2020-12-04 01:46:02 +08:00
void StatusUI::setEngine(uint32_t pos,QVariant value1,QVariant value2)
2020-10-10 15:25:17 +08:00
{
2020-10-11 19:10:57 +08:00
switch (pos) {
case 1:
2020-12-06 09:13:42 +08:00
if(value1.toInt() >= 100)
2020-12-06 09:13:42 +08:00
{
ui->label_thr->setRange(0,value1.toInt());
2020-12-06 09:13:42 +08:00
}
ui->label_thr->setValue(value1.toInt());
2020-12-04 01:46:02 +08:00
ui->label_rpm->setText(value2.toString());
2020-12-07 16:29:08 +08:00
if(qAbs(value2.toFloat()) >= 46100)
{
setColor(ui->label_rpm,state::failure);
}
else
{
setColor(ui->label_rpm,state::inital);
}
2020-10-11 19:10:57 +08:00
break;
2020-12-04 01:46:02 +08:00
case 2:
2020-12-04 01:46:02 +08:00
ui->label_1_FuelLevel->setText(value1.toString());
2020-12-04 11:33:50 +08:00
if(qAbs(value1.toFloat()) <= 9)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_1_FuelLevel,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_1_FuelLevel,state::inital);
}
2020-12-04 01:46:02 +08:00
ui->label_2_FuelLevel->setText(value2.toString());
2020-12-04 11:33:50 +08:00
if(qAbs(value2.toFloat()) <= 9)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_2_FuelLevel,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_2_FuelLevel,state::inital);
}
2020-10-11 19:10:57 +08:00
break;
2020-12-04 01:46:02 +08:00
case 3:
ui->label_fuelPressure->setText(value1.toString());
2020-12-04 01:46:02 +08:00
if((value1.toFloat() <= 10)||(value1.toFloat() >= 80))
{
setColor(ui->label_fuelPressure,state::failure);
}
else
{
setColor(ui->label_fuelPressure,state::inital);
}
2020-10-11 19:10:57 +08:00
break;
2020-10-10 15:25:17 +08:00
2020-12-04 01:46:02 +08:00
case 4:
ui->label_temp_up->setText(value1.toString());
2020-12-05 14:39:44 +08:00
if(qAbs(value1.toFloat()) >= 130)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_temp_up,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_temp_up,state::inital);
}
2020-12-04 01:46:02 +08:00
ui->label_temp_right->setText(value2.toString());
2020-12-05 14:39:44 +08:00
if(qAbs(value2.toFloat()) >= 130)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_temp_right,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_temp_right,state::inital);
}
2020-10-11 19:10:57 +08:00
break;
2020-10-11 19:10:57 +08:00
}
2020-10-10 15:25:17 +08:00
}
2020-12-04 01:46:02 +08:00
void StatusUI::setBattery(uint32_t pos,QVariant value1,QVariant value2)
2020-10-10 15:25:17 +08:00
{
2020-10-11 19:10:57 +08:00
switch (pos) {
case 1:
2020-12-04 01:46:02 +08:00
ui->label_28_V->setText(value1.toString());
2020-12-04 01:46:02 +08:00
if(qAbs(value1.toFloat()) <= 23)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_28_V,state::failure);
}
else if(qAbs(value1.toFloat()) <= 25)
{
setColor(ui->label_28_V,state::warning);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_28_V,state::inital);
}
2020-12-04 01:46:02 +08:00
ui->label_28_A->setText(value2.toString());
2020-12-08 22:21:52 +08:00
if(qAbs(value2.toFloat()) >= 15)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_28_A,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_28_A,state::inital);
}
break;
case 2:
2020-12-04 01:46:02 +08:00
ui->label_56_V->setText(value1.toString());
2020-12-04 01:46:02 +08:00
if(qAbs(value1.toFloat()) <= 46)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_56_V,state::failure);
}
else if(qAbs(value1.toFloat()) <= 50)
{
setColor(ui->label_56_V,state::warning);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_56_V,state::inital);
}
2020-12-04 01:46:02 +08:00
ui->label_56_A->setText(value2.toString());
2020-12-08 22:21:52 +08:00
if(qAbs(value2.toFloat()) >= 15)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_56_A,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_56_A,state::inital);
}
2020-10-28 13:48:15 +08:00
break;
2020-12-04 01:46:02 +08:00
2020-10-28 13:48:15 +08:00
}
}
2020-12-04 01:46:02 +08:00
void StatusUI::setDlink(uint32_t pos,QVariant value1,QVariant value2)
2020-10-28 13:48:15 +08:00
{
switch (pos) {
case 1:
2020-12-04 01:46:02 +08:00
ui->label_ssp->setText(value1.toString());
2020-12-04 11:33:50 +08:00
if(qAbs(value1.toFloat()) <= 50)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_ssp,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_ssp,state::inital);
}
2020-12-04 01:46:02 +08:00
ui->label_ssr->setText(value2.toString());
2020-12-04 11:33:50 +08:00
if(qAbs(value2.toFloat()) <= 500)
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_ssr,state::failure);
}
else
{
2020-12-04 01:46:02 +08:00
setColor(ui->label_ssr,state::inital);
}
2020-12-04 01:46:02 +08:00
break;
}
}
2020-10-28 13:48:15 +08:00