mainwindow.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #define CAMERA_NUM 4
  4. #include <QMainWindow>
  5. #include <QTranslator>
  6. #include <QtWidgets>
  7. //#include <QtWebEngineWidgets/QtWebEngineWidgets>
  8. #include <QSet>
  9. #include <QMutex>
  10. #include <QLabel>
  11. #include <iostream>
  12. #include <speed.h>
  13. #include "remotectrl.pb.h"
  14. #include "gpsimu.pb.h"
  15. #include "rawpic.pb.h"
  16. #include "myview.h"
  17. #include "grpcpc.h"
  18. #include "modulecomm.h"
  19. #include "joyreadthread.h"
  20. #include "dialogsetpassword.h"
  21. #include "dialogsetting.h"
  22. #include "ivh264framedecode.h"
  23. #include "pluginapp.h"
  24. QT_BEGIN_NAMESPACE
  25. namespace Ui { class MainWindow; }
  26. QT_END_NAMESPACE
  27. class MainWindow : public QMainWindow
  28. {
  29. Q_OBJECT
  30. public:
  31. MainWindow(QWidget *parent = nullptr);
  32. ~MainWindow();
  33. private slots:
  34. void on_pushButton_test_clicked();
  35. virtual void paintEvent(QPaintEvent *);
  36. void on_radioButton_manual_clicked();
  37. void onTimerManual();
  38. void onTimerRemote();
  39. void onTimerUpdateView();
  40. void onTimerUpdatePic();
  41. void on_radioButton_auto_clicked();
  42. // virtual void paintEvent(QPaintEvent *);
  43. void on_pushButton_Go_clicked();
  44. void on_comboBox_Station_currentIndexChanged(int index);
  45. void on_checkBox_Drive_stateChanged(int arg1);
  46. void on_checkBox_Drive_clicked();
  47. void on_checkBox_Null_clicked();
  48. void on_checkBox_Rear_clicked();
  49. void on_radioButton_Drive_clicked();
  50. void on_radioButton_Null_clicked();
  51. void onCloseDlg();
  52. void onCloseBigDlg();
  53. void on_checkBox_clicked();
  54. void on_actionSet_Query_Pass_triggered();
  55. void on_actionSetting_triggered();
  56. void on_actionSet_Ctrl_Pass_triggered();
  57. void onCamUpdate(int ncampos);
  58. void on_actionFullScreem_triggered();
  59. void on_actionNormal_triggered();
  60. void on_horizontalSlider_wheelspeed_sliderMoved(int position);
  61. void on_horizontalSlider_wheelspeed_valueChanged(int value);
  62. void onCamUpdate(int ncampos,QImage image);
  63. signals:
  64. void CamUpdate(int ncampos);
  65. void CamUpdate(int ncampos,QImage image);
  66. public:
  67. void resizeEvent(QResizeEvent *event);
  68. void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
  69. void keyReleaseEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
  70. private:
  71. Ui::MainWindow *ui;
  72. // QWebEngineView * mMapview;
  73. Speed * mpWheel, * mpAcc, * mpBrake;
  74. QSet<int> mPressKeys;
  75. QTimer * mpTimerManual;
  76. QTimer * mpTimerRemote;
  77. double mfWheel = 0;
  78. double mfAcc = 0;
  79. double mfBrake = 0;
  80. int mnLastTime;
  81. QTime mManualTime;
  82. double mfWheelSpeed = 10; //100degree/s
  83. double mfAccSpeed = 30; //30/s
  84. double mfBrakeSpeed = 100; //100/s
  85. double mfWheelBaseSpeed = 10;
  86. double mfWheelAutoDownSpeed = 0;
  87. double mfAccAutoDownSpeed = 10;
  88. double mfBrakeAutoDownSpeed = 30;
  89. iv::remotectrl mremotectrl;
  90. void * mpa;
  91. QTimer * mpTimerUpdateView;
  92. MyView * mmyview;
  93. QGraphicsScene *mscene;
  94. MyView * mmyviewLeft,* mmyviewRear,*mmyviewRight;
  95. MyView * mpviewImg[NUM_CAM];
  96. QGraphicsScene * mpsceneImg[NUM_CAM];
  97. void * mpadst;
  98. void * mpasimpletrace;
  99. grpcpc * mgrpcpc;
  100. QString mstrProgName = "ADC IV Remote Control ";
  101. QString mstrGPSTime = " GPS:";
  102. QString mstrPicTime = " Pic:";
  103. QString mstrVIN;
  104. #ifndef Q_OS_WIN
  105. JoyReadThread * mpJRT;
  106. #endif
  107. int mnShift = 0;
  108. int mnSelPic = 0;
  109. bool mbSavePic = false;
  110. public:
  111. void saveavi(int index);
  112. private:
  113. void CreateView();
  114. private:
  115. QLabel * mpLabelLatency;
  116. private:
  117. std::string mstrserverip = "192.168.14.98";//"111.33.136.149";//"127.0.0.1";// "140.143.237.38";
  118. std::string mstrserverport = "50051";//"9000";
  119. std::string mstruploadinterval = "100";
  120. std::string mstrVehVIN = "AAAAAAAAAAAAAAAAA";
  121. std::string mstrqueryMD5 = "5d41402abc4b2a76b9719d911017c592";
  122. std::string mstrctrlMD5 = "5d41402abc4b2a76b9719d911017c592";
  123. private:
  124. pluginapp * mpbaiduapp;
  125. pluginapp * mppicshow;
  126. private:
  127. bool mbThreadrun = true;
  128. private:
  129. void threadframe(int ncamppos);
  130. void threadpic(int ncampos);
  131. void threadinfo();
  132. private:
  133. ivh264framedecode * mph264decode[NUM_CAM];
  134. int mnframewidth = 1920;
  135. int mnframeheight = 1080;//720;
  136. std::thread * mpthreadframe[NUM_CAM];
  137. std::thread * mpthreadpic[NUM_CAM];
  138. std::thread * mpthreadinfo;
  139. QImage * mpImageCam[NUM_CAM];
  140. bool mbCamUpdate[NUM_CAM];
  141. QMutex mMutexCam[NUM_CAM];
  142. int mnVehMode = 1; //1 Speed Mode 2 AccBrakeMode
  143. QTranslator * m_translator;
  144. };
  145. #endif // MAINWINDOW_H