2023-04-17 17:24:51 +08:00
|
|
|
#include "PowerSystem.h"
|
2020-10-06 15:18:29 +08:00
|
|
|
#include "ui_PowerSystem.h"
|
|
|
|
|
|
2023-05-15 13:56:25 +08:00
|
|
|
|
2023-06-03 17:24:33 +08:00
|
|
|
|
|
|
|
|
QVector<double> test = {1,2,3,4,5,6,7};
|
|
|
|
|
|
2023-05-15 13:56:25 +08:00
|
|
|
double get_mean(QVector<double> in)
|
|
|
|
|
{
|
|
|
|
|
double sum = std::accumulate(in.begin(), in.end(), 0.0);
|
|
|
|
|
double mean = sum / in.size(); //均值
|
2023-06-03 17:24:33 +08:00
|
|
|
|
|
|
|
|
qDebug() << in.size() << sum;
|
|
|
|
|
|
2023-05-15 13:56:25 +08:00
|
|
|
return mean;
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-06 15:18:29 +08:00
|
|
|
PowerSystem::PowerSystem(QWidget *parent) :
|
|
|
|
|
QWidget(parent),
|
|
|
|
|
ui(new Ui::PowerSystem)
|
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
2020-10-07 19:50:45 +08:00
|
|
|
m_parent = parent;
|
|
|
|
|
|
2023-06-03 17:24:33 +08:00
|
|
|
test.clear();
|
|
|
|
|
for(int i = 1;i<101;i++)
|
|
|
|
|
{
|
|
|
|
|
test.append(i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
qDebug() << "get_mean" << get_mean(test);
|
|
|
|
|
|
2022-08-15 10:47:43 +08:00
|
|
|
|
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);
|
|
|
|
|
*/
|
|
|
|
|
|
2022-05-31 18:22:08 +08:00
|
|
|
ui->checkBox_17->setHidden(true);
|
2020-10-07 12:24:23 +08:00
|
|
|
|
|
|
|
|
//设置灯
|
|
|
|
|
setColor(ui->checkBox_1,state::success);
|
|
|
|
|
setColor(ui->checkBox_2,state::success);
|
|
|
|
|
setColor(ui->checkBox_3,state::success);
|
2022-08-15 10:47:43 +08:00
|
|
|
// setColor(ui->checkBox_4,state::success); //P3t超新
|
2020-10-07 12:24:23 +08:00
|
|
|
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);
|
2022-07-13 14:25:23 +08:00
|
|
|
//setColor(ui->checkBox_15,state::success);
|
2020-10-07 12:24:23 +08:00
|
|
|
setColor(ui->checkBox_16,state::success);
|
|
|
|
|
setColor(ui->checkBox_17,state::success);
|
2022-08-15 10:47:43 +08:00
|
|
|
// setColor(ui->checkBox_18,state::success); //舵机控制器
|
2020-10-07 12:24:23 +08:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2022-02-25 15:50:42 +08:00
|
|
|
ui->frame_RPM->resize(590,176);
|
|
|
|
|
ui->frame_Temp->resize(590,176);
|
|
|
|
|
ui->frame_Alt->resize(590,176);
|
|
|
|
|
ui->frame_Ma->resize(590,176);
|
|
|
|
|
|
|
|
|
|
|
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);
|
2022-01-22 15:28:20 +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());
|
2022-08-15 18:35:06 +08:00
|
|
|
|
2022-08-16 13:11:25 +08:00
|
|
|
|
2023-05-16 16:49:15 +08:00
|
|
|
averageMa.clear();
|
|
|
|
|
averageTime.clear();
|
|
|
|
|
|
2022-08-15 18:35:06 +08:00
|
|
|
//设置开车时间
|
|
|
|
|
connect(&timer, &QTimer::timeout,
|
2022-08-16 13:11:25 +08:00
|
|
|
this, [=]()
|
2022-08-15 18:35:06 +08:00
|
|
|
{
|
2022-08-16 13:11:25 +08:00
|
|
|
time = time.addSecs(1);
|
|
|
|
|
// qDebug() << time;
|
2022-08-15 18:35:06 +08:00
|
|
|
ui->label_13->setText(time.toString("hh:mm:ss") );
|
2022-08-16 13:11:25 +08:00
|
|
|
});
|
2023-05-15 13:56:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
AMaTimer = new QTimer();
|
|
|
|
|
AMaTimer->setInterval(1000);
|
|
|
|
|
|
|
|
|
|
connect(AMaTimer,&QTimer::timeout,this,[=](){
|
|
|
|
|
|
|
|
|
|
double AMa = get_mean(averageMa);
|
|
|
|
|
ui->label_Average_Ma->setText(QString::number(AMa,'f',3));
|
2023-06-03 17:24:33 +08:00
|
|
|
qDebug() << "mach" << AMa;
|
2023-05-15 13:56:25 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-06 15:18:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PowerSystem::~PowerSystem()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
|
|
|
|
|
2022-03-10 11:22:25 +08:00
|
|
|
void PowerSystem::updateUI()
|
|
|
|
|
{
|
|
|
|
|
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-10 12:12:30 +08:00
|
|
|
void PowerSystem::resizeEvent(QResizeEvent *event)
|
|
|
|
|
{
|
2022-01-22 15:28:20 +08:00
|
|
|
qDebug() << "resize 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());
|
2022-02-25 15:50:42 +08:00
|
|
|
|
|
|
|
|
//qDebug() << ui->frame_Ma->size();
|
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)
|
|
|
|
|
{
|
|
|
|
|
qDebug() << event;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-07 19:50:45 +08:00
|
|
|
void PowerSystem::closeEvent(QCloseEvent *event)
|
|
|
|
|
{
|
|
|
|
|
setFloat();
|
|
|
|
|
event->ignore();
|
|
|
|
|
}
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-06 17:11:59 +08:00
|
|
|
void PowerSystem::contextMenuEvent(QContextMenuEvent *event)
|
|
|
|
|
{
|
2020-10-26 21:42:04 +08:00
|
|
|
/*
|
2020-10-06 17:11:59 +08:00
|
|
|
QMenu *menu = new QMenu(this);
|
2020-10-06 15:18:29 +08:00
|
|
|
|
2020-10-06 17:11:59 +08:00
|
|
|
QAction *pAction = new QAction("float",this);
|
|
|
|
|
|
|
|
|
|
connect(pAction,SIGNAL(triggered(bool)),
|
|
|
|
|
this,SLOT(setFloat()));
|
|
|
|
|
|
|
|
|
|
menu->addAction(pAction);
|
|
|
|
|
menu->move(cursor().pos());
|
|
|
|
|
menu->show();
|
2020-10-26 21:42:04 +08:00
|
|
|
*/
|
2020-10-06 17:11:59 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PowerSystem::setFloat(void)
|
|
|
|
|
{
|
|
|
|
|
if(this->parent())
|
|
|
|
|
{
|
|
|
|
|
this->setParent(nullptr);
|
2020-10-10 15:25:17 +08:00
|
|
|
QScreen *screen=QGuiApplication::primaryScreen ();;
|
|
|
|
|
this->move((screen->availableGeometry().width()-this->width())/2,(screen->availableGeometry().height()-this->height())/2);
|
2020-10-16 17:06:18 +08:00
|
|
|
this->show();
|
2022-01-24 18:30:30 +08:00
|
|
|
this->resize(m_parent->size());
|
2022-03-10 11:22:25 +08:00
|
|
|
updateUI();
|
2020-10-06 17:11:59 +08:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2020-10-07 19:50:45 +08:00
|
|
|
this->setParent(m_parent);
|
2020-10-06 17:11:59 +08:00
|
|
|
this->move(0,0);
|
2022-01-22 15:28:20 +08:00
|
|
|
//this->hide();
|
|
|
|
|
this->show();
|
|
|
|
|
this->resize(m_parent->size());
|
2020-10-16 17:06:18 +08:00
|
|
|
//qDebug() << m_parent->children();
|
2022-03-10 11:22:25 +08:00
|
|
|
updateUI();
|
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::setColor(QWidget *w,state s)
|
|
|
|
|
{
|
|
|
|
|
w->setProperty("state",s);
|
|
|
|
|
w->style()->unpolish(w);
|
|
|
|
|
w->style()->polish(w);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PowerSystem::setValue(QLabel *w,QString s)
|
|
|
|
|
{
|
|
|
|
|
w->setText(s);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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));
|
2022-08-15 18:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-16 13:11:25 +08:00
|
|
|
|
|
|
|
|
// static quint64 StartTime = QDateTime::currentMSecsSinceEpoch();;
|
|
|
|
|
static quint64 timeRPM = QDateTime::currentMSecsSinceEpoch();;
|
|
|
|
|
static bool isStartTime = false;
|
|
|
|
|
|
|
|
|
|
if(t->RPM_mea >= 10000)
|
2022-08-15 18:35:06 +08:00
|
|
|
{
|
2022-08-16 13:11:25 +08:00
|
|
|
if((QDateTime::currentMSecsSinceEpoch() - timeRPM) > 3000)//3s
|
2022-08-15 18:35:06 +08:00
|
|
|
{
|
2022-08-16 13:11:25 +08:00
|
|
|
if(!isStartTime)
|
2022-08-15 18:35:06 +08:00
|
|
|
{
|
2022-08-16 13:11:25 +08:00
|
|
|
isStartTime = true;
|
2022-08-15 18:35:06 +08:00
|
|
|
timer.start(1000);
|
2022-08-16 13:11:25 +08:00
|
|
|
// StartTime = QDateTime::currentMSecsSinceEpoch();
|
2022-08-15 18:35:06 +08:00
|
|
|
}
|
|
|
|
|
}
|
2022-08-16 13:11:25 +08:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
isStartTime = false;
|
|
|
|
|
timeRPM = QDateTime::currentMSecsSinceEpoch();
|
|
|
|
|
if(timer.isActive() )
|
2022-08-15 18:35:06 +08:00
|
|
|
{
|
2022-08-16 13:11:25 +08:00
|
|
|
timer.stop();
|
|
|
|
|
time = QTime(0, 0);
|
2022-08-15 18:35:06 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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));
|
2022-08-15 10:47:43 +08:00
|
|
|
// setValue(ui->label_DJS,QString::number(t->DJS / 4.0,'f',1)); //舵机位移
|
2020-10-21 19:37:48 +08:00
|
|
|
setValue(ui->label_Vcc,QString::number(t->Vcc / 5.0,'f',1));
|
|
|
|
|
|
2023-04-17 17:24:51 +08:00
|
|
|
setValue(ui->label_P3t,QString::number(t->Tbak));
|
2022-08-15 10:47:43 +08:00
|
|
|
// setValue(ui->label_rP51_Def,QString::number(t->Tbak * 0.01,'f',2)); //rP51_Def
|
|
|
|
|
// setValue(ui->label_Wf_Def,QString::number(t->RPM_bak,'f',0)); //Wf_Def
|
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));
|
2022-08-15 10:47:43 +08:00
|
|
|
// 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));
|
2022-08-15 10:47:43 +08:00
|
|
|
//P3t超新
|
|
|
|
|
// setColor(ui->checkBox_4,((t->SysState & 0x0800) > 0)?(state::failure):(state::success));
|
2020-10-07 12:24:23 +08:00
|
|
|
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));
|
2022-07-13 14:25:23 +08:00
|
|
|
//setColor(ui->checkBox_15,((t->Fault & 0x0080) > 0)?(state::failure):(state::success));
|
2020-10-07 12:24:23 +08:00
|
|
|
setColor(ui->checkBox_16,((t->Fault & 0x0100) > 0)?(state::failure):(state::success));
|
|
|
|
|
setColor(ui->checkBox_17,((t->Fault & 0x0200) > 0)?(state::failure):(state::success));
|
2022-08-15 10:47:43 +08:00
|
|
|
// setColor(ui->checkBox_18,((t->Fault & 0x0400) > 0)?(state::failure):(state::success)); //舵机控制器
|
2020-10-07 12:24:23 +08:00
|
|
|
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
|
|
|
//从新做一个函数
|
2023-04-17 17:24:51 +08:00
|
|
|
ScopeAlt->setSerieData(tr("流量计流量"),t->Tbak);
|
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)
|
|
|
|
|
{
|
2021-07-06 09:38:55 +08:00
|
|
|
ui->label_STEMP1->setText(QString::number(t->temp[1] * 0.1,'f',1));
|
|
|
|
|
ui->label_STEMP2->setText(QString::number(t->temp[0] * 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
|
|
|
|
2023-05-15 13:56:25 +08:00
|
|
|
|
2023-05-17 16:27:12 +08:00
|
|
|
void PowerSystem::setMa(qint64 time, QVariant Ma)
|
2020-10-26 21:42:04 +08:00
|
|
|
{
|
2023-05-15 13:56:25 +08:00
|
|
|
if(AMaTimer)
|
|
|
|
|
{
|
|
|
|
|
if(!AMaTimer->isActive())
|
|
|
|
|
{
|
|
|
|
|
AMaTimer->start();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
averageMa.append(Ma.toDouble());
|
2023-05-17 16:27:12 +08:00
|
|
|
averageTime.append(time);
|
2023-05-15 13:56:25 +08:00
|
|
|
|
2023-06-03 17:24:33 +08:00
|
|
|
/*
|
|
|
|
|
while(averageTime.size() > 91)
|
2023-05-15 13:56:25 +08:00
|
|
|
{
|
2023-05-16 16:49:15 +08:00
|
|
|
averageTime.removeFirst();
|
2023-05-15 13:56:25 +08:00
|
|
|
averageMa.removeFirst();
|
|
|
|
|
}
|
2023-06-03 17:24:33 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while(averageTime.back() - averageTime.first() >= (101))
|
|
|
|
|
{
|
|
|
|
|
averageTime.removeFirst();
|
|
|
|
|
averageMa.removeFirst();
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-15 13:56:25 +08:00
|
|
|
|
2023-06-03 17:24:33 +08:00
|
|
|
qDebug() << "size of time:" << averageTime.size() << averageMa.size() << averageTime.back() << averageTime.first() << (averageTime.back() - averageTime.first());
|
2023-05-16 16:49:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-15 13:56:25 +08:00
|
|
|
|
2020-10-26 21:42:04 +08:00
|
|
|
ScopeMa->setSerieData(tr("马赫"),Ma);
|
2023-05-15 13:56:25 +08:00
|
|
|
|
2020-10-26 21:42:04 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|