HMI-25-【發動機】弄個發動機

      網友投稿 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

      HMI-25-【發動機】弄個發動機

      {

      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小時內刪除侵權內容。

      上一篇:Word2013表格中的橡皮擦的使用方法有哪些
      下一篇:word文檔怎么顯示行數(如何在word顯示行數)
      相關文章
      亚洲精品伦理熟女国产一区二区 | 亚洲精品私拍国产福利在线| 亚洲av无码乱码在线观看野外| 亚洲中文无码卡通动漫野外 | 国产午夜亚洲精品理论片不卡| 亚洲成年人啊啊aa在线观看| 亚洲国产精品无码久久| 亚洲精品无码久久久久YW| 亚洲色偷偷色噜噜狠狠99网| 亚洲色欲色欲www| 99999久久久久久亚洲| 亚洲1234区乱码| 7777久久亚洲中文字幕| 亚洲sss综合天堂久久久| 中文有码亚洲制服av片| 亚洲精品无码久久久久APP | 亚洲精品无码久久一线| 日韩va亚洲va欧洲va国产| 亚洲国产a∨无码中文777| 亚洲AV一宅男色影视| 亚洲激情在线观看| 久久久久亚洲AV无码专区首JN| 久久精品九九亚洲精品| 亚洲国产日韩在线| 亚洲日本国产综合高清| 亚洲精品动漫免费二区| www国产亚洲精品久久久| 亚洲熟女乱综合一区二区| 亚洲精品国精品久久99热一| 亚洲av无码国产精品夜色午夜| 久久亚洲春色中文字幕久久久| 亚洲无圣光一区二区| 国产精品亚洲综合五月天| 亚洲第一第二第三第四第五第六| 老子影院午夜伦不卡亚洲| 亚洲无码黄色网址| 亚洲av无码专区国产乱码在线观看| 久久国产亚洲高清观看| 亚洲天堂2017无码中文| 在线观看亚洲免费| 亚洲午夜久久久久久噜噜噜|