mainwindow.h 4.3 KB

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