HMI-25-【发动机】弄个发动机

网友投稿 591 2022-05-25

基于Qt的汽车仪表模拟

距离上一次写以及相隔一个多月了,这一个月可不好过,估计大家都以为我吧剩下的两个界面写了,可以还没有写,写不动了,又感觉腻味了,加上最近一直在写文档,烦的要死。

这里说明下为什么要开始写发动机,有好多网友拿到体验程序处理可以看下启动动画就什么都看不到了,而我和面写的那接种模式不过是界面上的变化,没有更多的新的东西,所以暂时先调整一下顺序,同时也缓解一下我自己的情绪,每天写点没啥价值的东西,有的时候就也不想写了,所以决定先写个发动机。

这次先写一个发动机的1.0版本,内部都先没有,只有根据油门输入的值变成转速发出来。

这里简单的实现了发动机的1.0版本,只有一个缸,有一个模拟启动后转速偏高,稳定后降下来的模拟,其实实现很简单。在我的项目里,实现这个小功能有麻烦,我分的内容太多了,所以逻辑我就不说了,就说这个发动机吧,哈哈。1.0里面连温度都没有做了。

头文件

#ifndef ENGING_6VAT_H

#define ENGING_6VAT_H

/**

版本:1.0

*/

#include

#include

#include

class VAT : public QThread

{

Q_OBJECT

public:

virtual void run();

signals:

/**

* @brief signal_VATSpeed

* @param speed

* 返回气缸的运行速度

*/

void signal_VATSpeed(int speed);

public:

int accelerator = 100;

bool stopflag = false;

};

class Enging_6vat : public QObject

{

Q_OBJECT

public:

explicit Enging_6vat(QObject *parent = nullptr);

/**

* @brief engintStart

* 启动发动机

*/

void engintStart();

HMI-25-【发动机】弄个发动机

/**

* @brief engintStop

* 发动机停止

*/

void engintStop();

/**

* @brief engintAccelerator

* @param accelerator

* 发动机油门0-100,默认为10

*/

void engintAccelerator(int accelerator = 10);

signals:

/**

* @brief engineRotateSpeed

* @param rotateSpeed

* 返回发动机转速

*/

void signal_EngineRotateSpeed(int rotateSpeed);

/**

* @brief signal_EngineTemperature

* @param temperature

* 返回发动机温度

*/

void signal_EngineTemperature(int temperature);

public slots:

private:

VAT *m_VAT_1 = nullptr;

};

#endif // ENGING_6VAT_H

源文件

#include "enging_6vat.h"

#include

Enging_6vat::Enging_6vat(QObject *parent) : QObject(parent)

{

m_VAT_1 = new VAT();

connect(m_VAT_1,&VAT::signal_VATSpeed,this,[=](int speed){

emit signal_EngineRotateSpeed(speed);

});

}

void Enging_6vat::engintStart()

{

m_VAT_1->stopflag = false;

m_VAT_1->start();

QTimer::singleShot(3000,this,[=](){m_VAT_1->accelerator = 80;});

}

void Enging_6vat::engintStop()

{

m_VAT_1->stopflag = true;

}

void Enging_6vat::engintAccelerator(int accelerator)

{

if(m_VAT_1)

{

m_VAT_1->accelerator = accelerator;

}

}

void VAT::run()

{

while (1)

{

emit signal_VATSpeed(8*accelerator);

if(stopflag)

{

break;

}

msleep(25);

}

}

体验地址:HMI项目_免费高速下载|百度网盘-分享无限制

2019/10/13 16:16

说明:

本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计、吉利汽车HMI项目。

设计图的所有权和解释权都归吉利汽车所有。

本项目所有资源文件均有打不死的小海复刻制作。

本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。

本项目仅限学习交流、禁止商业使用。

交通智能体

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小熊派鸿蒙Nano开发板体验手记(一)
下一篇:天池下的瑞金医院MMC人工智能辅助构建知识图谱
相关文章