Files
gcs-nf/App/ToolsUI/PowerSystem/PowerSystem.cpp
T
2021-01-10 18:49:21 +08:00

311 lines
12 KiB
C++

#include "PowerSystem.h"
#include "ui_PowerSystem.h"
PowerSystem::PowerSystem(QWidget *parent) :
ToolsWidget(parent),
ui(new Ui::PowerSystem)
{
ui->setupUi(this);
setWindowTitle(tr("PowerSyste"));
//load qss
QFile file(":/qss/PowerSystem.qss");
file.open(QFile::ReadOnly);
QTextStream filetext(&file);
QString stylesheet = filetext.readAll();
this->setStyleSheet(stylesheet);
file.close();
//设置label
/*
setColor(ui->label_RS,state::success);
setColor(ui->label_NMS,state::success);
setColor(ui->label_ITP,state::success);
setColor(ui->label_CR,state::success);
setColor(ui->label_ITT,state::success);
setColor(ui->label_RPM_mea,state::success);
setColor(ui->label_RM,state::success);
setColor(ui->label_ATP,state::success);
setColor(ui->label_T5,state::success);
setColor(ui->label_TRPM,state::success);
*/
//设置灯
setColor(ui->checkBox_1,state::success);
setColor(ui->checkBox_2,state::success);
setColor(ui->checkBox_3,state::success);
setColor(ui->checkBox_4,state::success);
setColor(ui->checkBox_5,state::success);
setColor(ui->checkBox_6,state::success);
setColor(ui->checkBox_7,state::success);
setColor(ui->checkBox_8,state::success);
setColor(ui->checkBox_9,state::success);
setColor(ui->checkBox_10,state::success);
setColor(ui->checkBox_11,state::success);
setColor(ui->checkBox_12,state::success);
setColor(ui->checkBox_13,state::success);
setColor(ui->checkBox_14,state::success);
setColor(ui->checkBox_15,state::success);
setColor(ui->checkBox_16,state::success);
setColor(ui->checkBox_17,state::success);
setColor(ui->checkBox_18,state::success);
setColor(ui->checkBox_19,state::success);
setColor(ui->checkBox_20,state::success);
setColor(ui->checkBox_21,state::success);
cmdList.insert(0x13,"冷运转");
cmdList.insert(0x43,"停车");
cmdList.insert(0x73,"紧急停车");
cmdList.insert(0x15,"地面起动");
cmdList.insert(0x25,"空中起动");
cmdList.insert(0x45,"给定转速");
cmdList.insert(0x75,"开半加力(基准档)");
cmdList.insert(0x1c,"开半加力(1档)");
cmdList.insert(0x2c,"开半加力(2档)");
cmdList.insert(0x3c,"开半加力(3档)");
cmdList.insert(0x4c,"开半加力(4档)");
cmdList.insert(0x5c,"开半加力(5档)");
cmdList.insert(0x6c,"开半加力(6档)");
cmdList.insert(0x7c,"开半加力(7档)");
cmdList.insert(0x8c,"开半加力(8档)");
cmdList.insert(0x9c,"开半加力(9档)");
cmdList.insert(0x85,"开全加力(基准档)");
cmdList.insert(0x16,"开全加力(1档)");
cmdList.insert(0x26,"开全加力(2档)");
cmdList.insert(0x36,"开全加力(3档)");
cmdList.insert(0x46,"开全加力(4档)");
cmdList.insert(0x56,"开全加力(5档)");
cmdList.insert(0x66,"开全加力(6档)");
cmdList.insert(0x76,"开全加力(7档)");
cmdList.insert(0x86,"开全加力(8档)");
cmdList.insert(0x96,"开全加力(9档)");
cmdList.insert(0xb5,"关加力");
cmdList.insert(0xd5,"手动转速控制");
cmdList.insert(0x19,"核心机主燃油泵");
cmdList.insert(0x29,"加力主燃油泵");
cmdList.insert(0x49,"加力点火燃油泵");
cmdList.insert(0x79,"尾喷口舵机");
cmdList.insert(0x89,"点火器");
cmdList.insert(0xb9,"起动控制1");
cmdList.insert(0xd9,"起动控制2");
cmdList.insert(0x1a,"核心机点火油阀");
cmdList.insert(0x2a,"核心机优先油阀");
cmdList.insert(0x4a,"核心机轻吹油阀");
cmdList.insert(0x7a,"核心机起动气阀");
cmdList.insert(0x8a,"核心机主油阀");
cmdList.insert(0xba,"加力主油阀");
cmdList.insert(0xda,"加力轻吹阀");
cmdList.insert(0xea,"加力点火快速阀");
ScopeRPM = new Chart(ui->frame_RPM);
ScopeTemp = new Chart(ui->frame_Temp);
ScopeAlt = new Chart(ui->frame_Alt);
ScopeMa = new Chart(ui->frame_Ma);
/*
ScopeRPM->chart()->axisX()->hide();
ScopeTemp->chart()->axisX()->hide();
ScopeAlt->chart()->axisX()->hide();
ScopeMa->chart()->axisX()->hide();
*/
ScopeRPM->chart()->legend()->setAlignment(Qt::AlignRight);
ScopeTemp->chart()->legend()->setAlignment(Qt::AlignRight);
ScopeAlt->chart()->legend()->setAlignment(Qt::AlignRight);
ScopeMa->chart()->legend()->setAlignment(Qt::AlignRight);
ScopeRPM->setOperation(false);
ScopeTemp->setOperation(false);
ScopeAlt->setOperation(false);
ScopeMa->setOperation(false);
ScopeRPM->setRenderHint(QPainter::Antialiasing);
ScopeTemp->setRenderHint(QPainter::Antialiasing);
ScopeAlt->setRenderHint(QPainter::Antialiasing);
ScopeMa->setRenderHint(QPainter::Antialiasing);
}
PowerSystem::~PowerSystem()
{
delete ui;
}
void PowerSystem::resizeEvent(QResizeEvent *event)
{
ScopeRPM->setGeometry(0,0,ui->frame_RPM->width(),ui->frame_RPM->height());
ScopeTemp->setGeometry(0,0,ui->frame_Temp->width(),ui->frame_Temp->height());
ScopeAlt->setGeometry(0,0,ui->frame_Alt->width(),ui->frame_Alt->height());
ScopeMa->setGeometry(0,0,ui->frame_Ma->width(),ui->frame_Ma->height());
}
void PowerSystem::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::RightButton)
{
//qDebug() << event;
}
}
void PowerSystem::setTurbineState(mavlink_turbinestate_t *t)
{
QString runState;
switch (t->SysState & 0x000F) {
case 0x00: runState = "静止"; break;
case 0x01: runState = "地面检查"; break;
case 0x02: runState = "冷运转"; break;
case 0x03: runState = "(预留)"; break;
case 0x04: runState = "停车"; break;
case 0x05: runState = "地起"; break;
case 0x06: runState = "空起(预留)"; break;
case 0x07: runState = "手动"; break;
case 0x08: runState = "安全"; break;
case 0x09: runState = "稳态"; break;
case 0x0a: runState = "减速"; break;
case 0x0b: runState = "加速"; break;
case 0x0c: runState = "关加力"; break;
case 0x0d: runState = "加力点火"; break;
case 0x0e: runState = "半加力"; break;
case 0x0f: runState = "全加力"; break;
}
setValue(ui->label_RS,runState);
float cr = 0;
if(t->P1t != 0)
{
cr = ((float)t->P5t * 1.0f)/t->P1t;
setValue(ui->label_CR,QString::number(cr,'f',3));
}
else
{
cr = 0;
setValue(ui->label_CR,QString::number(0));
}
if(t->SysState & 0x0010)
{
setValue(ui->label_RM,"正式运行");
}
else
{
setValue(ui->label_RM,"地面调试");
}
if((t->SysState & 0x0020) > 0)
{
setValue(ui->label_NMS,"N2传感器");
}
else{
setValue(ui->label_NMS,"N1传感器");
}
setValue(ui->label_P5t,QString::number(t->P5t,'f',1));
setValue(ui->label_RPM_mea,QString::number(t->RPM_mea,'f',0));
setValue(ui->label_T5,QString::number(t->T5 * 0.1 - 273.15,'f',1));
setValue(ui->label_Kfuel,QString::number(t->Kfuel,'f',1));
setValue(ui->label_RPM_des,QString::number(t->RPM_des,'f',0));
setValue(ui->label_RPM_des_ap,QString::number(t->RPM_des_ap,'f',0));
setValue(ui->label_stage_ap,(t->stage_ap == 1)?(tr("正常档位")):(tr("加速档")));
setValue(ui->label_temp_ap,QString::number(t->temp_ap + 200 - 273.15,'f',1));
setValue(ui->label_tas_ap,QString::number(t->tas_ap*10.0,'f',1));
setValue(ui->label_asl_ap,QString::number(t->asl_ap*100.0,'f',1));
setValue(ui->label_KabMain,QString::number(t->KabMain*30.0,'f',1));
setValue(ui->label_KabFire,QString::number(t->KabFire*30.0,'f',1));
setValue(ui->label_KDj,QString::number(t->KDj*30.0,'f',1));
setValue(ui->label_T1t,QString::number(t->T1t + 200 - 273.15,'f',1));
setValue(ui->label_P1t,QString::number(t->P1t,'f',1));
//setValue(ui->label_CR,QString::number(((float)t->P5t)/t->P1t,'f',1));
setValue(ui->label_DJS,QString::number(t->DJS / 4.0,'f',1));
setValue(ui->label_Vcc,QString::number(t->Vcc / 5.0,'f',1));
setValue(ui->label_P3t,QString::number(t->P3t,'f',0));
setValue(ui->label_rP51_Def,QString::number(t->Tbak * 0.01,'f',2));
setValue(ui->label_Wf_Def,QString::number(t->RPM_bak,'f',0));
//setValue()
//setValue(ui->label_Tbak,QString::number(t->Tbak,'f',1));
//setValue(ui->label_RPM_bak,QString::number(t->RPM_bak,'f',1));
//setValue(ui->label_IOState,QString::number(t->IOState,'f',1));
//setValue(ui->label_SysState,QString::number(t->SysState,'f',1));
//setValue(ui->label_Fault,QString::number(t->Fault,'f',1));
//setValue(ui->label_rev,QString::number(t->rev,'f',1));
setValue(ui->label_CFuelMode,QString::number(t->CFuelMode,'f',1));
setValue(ui->label_Cmd,cmdList.value(t->Cmd));
setColor(ui->checkBox_1,((t->SysState & 0x0100) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_2,((t->SysState & 0x0200) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_3,((t->SysState & 0x0400) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_4,((t->SysState & 0x0800) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_5,((t->SysState & 0x1000) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_6,((t->SysState & 0x2000) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_7,((t->SysState & 0x4000) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_8,((t->Fault & 0x0001) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_9,((t->Fault & 0x0002) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_10,((t->Fault & 0x0004) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_11,((t->Fault & 0x0008) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_12,((t->Fault & 0x0010) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_13,((t->Fault & 0x0020) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_14,((t->Fault & 0x0040) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_15,((t->Fault & 0x0080) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_16,((t->Fault & 0x0100) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_17,((t->Fault & 0x0200) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_18,((t->Fault & 0x0400) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_19,((t->Fault & 0x0800) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_20,((t->Fault & 0x1000) > 0)?(state::failure):(state::success));
setColor(ui->checkBox_21,((t->Fault & 0x2000) > 0)?(state::failure):(state::success));
ScopeRPM->setSerieData(tr("物理"),t->RPM_mea);
ScopeRPM->setSerieData(tr("期望"),t->RPM_des);
ScopeTemp->setSerieData(tr("压比"),cr);
//从新做一个函数
ScopeAlt->setSerieData(tr("Wf测"),t->P3t);
}
void PowerSystem::setCCMState(mavlink_ccmstate_t *t)
{
ui->label_STEMP1->setText(QString::number(t->temp[0] * 0.1,'f',1));
ui->label_STEMP2->setText(QString::number(t->temp[1] * 0.1,'f',1));
}
void PowerSystem::setFuel(QVariant press, QVariant value)
{
setValue(ui->label_fuelpress,press.toString());
setValue(ui->label_fuelvalue,value.toString());
}
void PowerSystem::setMa(QVariant Ma)
{
ScopeMa->setSerieData(tr("马赫"),Ma);
}
void PowerSystem::setAlt(QVariant Alt)
{
//ScopeAlt->setSerieData(tr("海拔"),Alt);
}