Java類和對象的設計
687
2025-04-01
基于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();
/**
* @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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。