2020-10-21 19:37:48 +08:00
|
|
|
#include "PowerSystem.h"
|
2020-10-06 15:18:29 +08:00
|
|
|
#include "ui_PowerSystem.h"
|
|
|
|
|
|
|
|
|
|
PowerSystem::PowerSystem(QWidget *parent) :
|
2021-01-07 10:55:02 +08:00
|
|
|
ToolsWidget(parent),
|
2020-10-06 15:18:29 +08:00
|
|
|
ui(new Ui::PowerSystem)
|
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
2020-10-07 19:50:45 +08:00
|
|
|
|
|
|
|
|
setWindowTitle(tr("PowerSyste"));
|
2020-10-06 17:11:59 +08:00
|
|
|
|
2020-10-07 12:24:23 +08:00
|
|
|
//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);
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-13 18:41:23 +08:00
|
|
|
|
2020-10-15 22:21:38 +08:00
|
|
|
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档)");
|
2020-12-04 11:33:50 +08:00
|
|
|
cmdList.insert(0xb5,"关加力");
|
2020-10-15 22:21:38 +08:00
|
|
|
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,"加力点火快速阀");
|
2020-10-13 18:41:23 +08:00
|
|
|
|
|
|
|
|
|
2020-10-26 21:42:04 +08:00
|
|
|
ScopeRPM = new Chart(ui->frame_RPM);
|
|
|
|
|
ScopeTemp = new Chart(ui->frame_Temp);
|
|
|
|
|
ScopeAlt = new Chart(ui->frame_Alt);
|
|
|
|
|
ScopeMa = new Chart(ui->frame_Ma);
|
2020-10-27 18:56:30 +08:00
|
|
|
/*
|
2020-10-26 21:42:04 +08:00
|
|
|
ScopeRPM->chart()->axisX()->hide();
|
|
|
|
|
ScopeTemp->chart()->axisX()->hide();
|
|
|
|
|
ScopeAlt->chart()->axisX()->hide();
|
|
|
|
|
ScopeMa->chart()->axisX()->hide();
|
2020-10-27 18:56:30 +08:00
|
|
|
*/
|
2020-10-26 21:42:04 +08:00
|
|
|
|
2020-10-27 18:56:30 +08:00
|
|
|
ScopeRPM->chart()->legend()->setAlignment(Qt::AlignRight);
|
|
|
|
|
ScopeTemp->chart()->legend()->setAlignment(Qt::AlignRight);
|
|
|
|
|
ScopeAlt->chart()->legend()->setAlignment(Qt::AlignRight);
|
|
|
|
|
ScopeMa->chart()->legend()->setAlignment(Qt::AlignRight);
|
2020-10-26 21:42:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
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);
|
2020-10-06 15:18:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PowerSystem::~PowerSystem()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-10 12:12:30 +08:00
|
|
|
void PowerSystem::resizeEvent(QResizeEvent *event)
|
|
|
|
|
{
|
2020-10-26 21:42:04 +08:00
|
|
|
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());
|
2020-10-24 20:07:28 +08:00
|
|
|
|
2020-10-24 11:21:24 +08:00
|
|
|
|
2020-10-10 12:12:30 +08:00
|
|
|
}
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-06 17:11:59 +08:00
|
|
|
void PowerSystem::mousePressEvent(QMouseEvent *event)
|
|
|
|
|
{
|
|
|
|
|
if(event->button() == Qt::RightButton)
|
|
|
|
|
{
|
2021-01-10 18:49:21 +08:00
|
|
|
//qDebug() << event;
|
2020-10-06 17:11:59 +08:00
|
|
|
}
|
|
|
|
|
}
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-07 12:24:23 +08:00
|
|
|
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);
|
|
|
|
|
|
2020-12-13 11:00:31 +08:00
|
|
|
float cr = 0;
|
|
|
|
|
|
2020-10-08 16:13:38 +08:00
|
|
|
if(t->P1t != 0)
|
|
|
|
|
{
|
2020-12-13 11:00:31 +08:00
|
|
|
cr = ((float)t->P5t * 1.0f)/t->P1t;
|
|
|
|
|
setValue(ui->label_CR,QString::number(cr,'f',3));
|
2020-10-08 16:13:38 +08:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2020-12-13 11:00:31 +08:00
|
|
|
cr = 0;
|
|
|
|
|
setValue(ui->label_CR,QString::number(0));
|
2020-10-08 16:13:38 +08:00
|
|
|
}
|
|
|
|
|
|
2020-10-15 22:21:38 +08:00
|
|
|
if(t->SysState & 0x0010)
|
2020-10-07 12:24:23 +08:00
|
|
|
{
|
|
|
|
|
setValue(ui->label_RM,"正式运行");
|
|
|
|
|
}
|
2020-10-15 22:21:38 +08:00
|
|
|
else
|
|
|
|
|
{
|
2020-10-07 12:24:23 +08:00
|
|
|
setValue(ui->label_RM,"地面调试");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if((t->SysState & 0x0020) > 0)
|
|
|
|
|
{
|
|
|
|
|
setValue(ui->label_NMS,"N2传感器");
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
setValue(ui->label_NMS,"N1传感器");
|
|
|
|
|
}
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-21 19:37:48 +08:00
|
|
|
setValue(ui->label_P5t,QString::number(t->P5t,'f',1));
|
2020-12-07 16:29:08 +08:00
|
|
|
setValue(ui->label_RPM_mea,QString::number(t->RPM_mea,'f',0));
|
2020-12-08 00:03:40 +08:00
|
|
|
setValue(ui->label_T5,QString::number(t->T5 * 0.1 - 273.15,'f',1));
|
2020-10-21 19:37:48 +08:00
|
|
|
setValue(ui->label_Kfuel,QString::number(t->Kfuel,'f',1));
|
2020-12-07 16:29:08 +08:00
|
|
|
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));
|
2020-10-15 22:21:38 +08:00
|
|
|
setValue(ui->label_stage_ap,(t->stage_ap == 1)?(tr("正常档位")):(tr("加速档")));
|
2020-10-21 19:37:48 +08:00
|
|
|
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));
|
2020-12-13 11:00:31 +08:00
|
|
|
//setValue(ui->label_CR,QString::number(((float)t->P5t)/t->P1t,'f',1));
|
2020-10-21 19:37:48 +08:00
|
|
|
setValue(ui->label_DJS,QString::number(t->DJS / 4.0,'f',1));
|
|
|
|
|
setValue(ui->label_Vcc,QString::number(t->Vcc / 5.0,'f',1));
|
|
|
|
|
|
2020-12-06 20:29:25 +08:00
|
|
|
setValue(ui->label_P3t,QString::number(t->P3t,'f',0));
|
2020-12-07 16:29:08 +08:00
|
|
|
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));
|
2020-11-19 11:39:28 +08:00
|
|
|
|
2020-10-21 19:37:48 +08:00
|
|
|
|
2020-11-21 18:19:28 +08:00
|
|
|
//setValue()
|
|
|
|
|
|
|
|
|
|
|
2020-10-21 19:37:48 +08:00
|
|
|
//setValue(ui->label_Tbak,QString::number(t->Tbak,'f',1));
|
2020-11-21 18:19:28 +08:00
|
|
|
//setValue(ui->label_RPM_bak,QString::number(t->RPM_bak,'f',1));
|
2020-10-21 19:37:48 +08:00
|
|
|
//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));
|
2020-10-14 21:28:47 +08:00
|
|
|
|
|
|
|
|
|
2020-10-15 22:21:38 +08:00
|
|
|
setValue(ui->label_Cmd,cmdList.value(t->Cmd));
|
2020-10-07 12:24:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
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));
|
2020-10-06 15:18:29 +08:00
|
|
|
|
|
|
|
|
|
2020-12-13 11:00:31 +08:00
|
|
|
ScopeRPM->setSerieData(tr("物理"),t->RPM_mea);
|
|
|
|
|
ScopeRPM->setSerieData(tr("期望"),t->RPM_des);
|
2020-10-13 18:41:23 +08:00
|
|
|
|
2020-12-13 11:00:31 +08:00
|
|
|
ScopeTemp->setSerieData(tr("压比"),cr);
|
2020-10-13 18:41:23 +08:00
|
|
|
|
2020-10-24 20:07:28 +08:00
|
|
|
//从新做一个函数
|
2020-12-13 11:00:31 +08:00
|
|
|
ScopeAlt->setSerieData(tr("Wf测"),t->P3t);
|
2020-10-13 18:41:23 +08:00
|
|
|
|
2020-10-07 12:24:23 +08:00
|
|
|
}
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-15 22:21:38 +08:00
|
|
|
|
|
|
|
|
void PowerSystem::setCCMState(mavlink_ccmstate_t *t)
|
|
|
|
|
{
|
2020-10-21 19:37:48 +08:00
|
|
|
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));
|
2020-10-15 22:21:38 +08:00
|
|
|
}
|
2020-10-26 21:42:04 +08:00
|
|
|
|
|
|
|
|
|
2020-11-21 18:19:28 +08:00
|
|
|
void PowerSystem::setFuel(QVariant press, QVariant value)
|
|
|
|
|
{
|
|
|
|
|
setValue(ui->label_fuelpress,press.toString());
|
|
|
|
|
setValue(ui->label_fuelvalue,value.toString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2020-10-26 21:42:04 +08:00
|
|
|
|
|
|
|
|
void PowerSystem::setMa(QVariant Ma)
|
|
|
|
|
{
|
|
|
|
|
ScopeMa->setSerieData(tr("马赫"),Ma);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PowerSystem::setAlt(QVariant Alt)
|
|
|
|
|
{
|
2020-12-07 16:29:08 +08:00
|
|
|
//ScopeAlt->setSerieData(tr("海拔"),Alt);
|
2020-10-26 21:42:04 +08:00
|
|
|
}
|
2020-11-21 18:19:28 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|