mainwindow.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QImage>
  5. #include <QFileDialog>
  6. #include <QFile>
  7. #include <QtSerialPort/QSerialPort>
  8. #include <QtSerialPort/QSerialPortInfo>
  9. #include <QProcess>
  10. #include <QDir>
  11. #include <QObject>
  12. #include <QMessageBox>
  13. #include <QProgressDialog>
  14. #include <QTime>
  15. #include <QTimer>
  16. #include <QLocalSocket>
  17. #include <QJsonDocument>
  18. #include <QJsonObject>
  19. #include <QJsonValue>
  20. #include <QSystemSemaphore>
  21. #include <QThread>
  22. #ifdef _WIN32
  23. #include <qt_windows.h>
  24. #endif
  25. QT_BEGIN_NAMESPACE
  26. void delay(int ms);
  27. class MainWindow;
  28. class SemaphoreWorkerThread : public QThread
  29. {
  30. protected:
  31. void run() override;
  32. public:
  33. SemaphoreWorkerThread(QObject*, MainWindow*);
  34. private:
  35. MainWindow* wnd;
  36. };
  37. class Counter : public QObject
  38. {
  39. Q_OBJECT
  40. private:
  41. int counts;
  42. int ncounts;
  43. public:
  44. Counter(int counts);
  45. void reset();
  46. void rebind(int counts);
  47. public slots:
  48. void count();
  49. signals:
  50. void countsEnd();
  51. };
  52. namespace Ui {
  53. class MainWindow;
  54. }
  55. QT_END_NAMESPACE
  56. class MainWindow : public QMainWindow
  57. {
  58. Q_OBJECT
  59. public:
  60. MainWindow(QWidget *parent = nullptr);
  61. ~MainWindow();
  62. int cancelProgram();
  63. HANDLE semget();
  64. private slots:
  65. void sdrFDialog();
  66. void syncFDialog();
  67. void graFDialog();
  68. void gra2FDialog();
  69. void gra3FDialog();
  70. void outFDialog();
  71. int runButtonPress();
  72. int saveProfilePress();
  73. int loadProfilePress();
  74. void GRA1checkBoxEvent();
  75. void GRA2checkBoxEvent();
  76. void GRA3checkBoxEvent();
  77. void OUTcheckBoxEvent();
  78. int syncFinished();
  79. int graFinished();
  80. int startHackRF();
  81. int hackrfFinished();
  82. int picoFinished();
  83. int readOutput();
  84. int programFinished();
  85. int analizeButtonPress();
  86. void plotprocFinishedSlot();
  87. //void picoprocFinishedSlot();
  88. signals:
  89. void readyForRF();
  90. private:
  91. Ui::MainWindow *ui;
  92. QList<QSerialPortInfo> portInfos;
  93. QProcess plotproc, syncproc, graproc, graproc2, graproc3, hackrfproc, picoproc;
  94. QStringList syncargs, graargs, graargs2, graargs3, hackrfargs, picoargs;
  95. Counter* graCounter;
  96. QProgressDialog* progress;
  97. int pvalue;
  98. QSerialPort* syncport;
  99. QTimer* tmrForRF;
  100. bool is_canceled = false;
  101. int test;
  102. #ifdef _WIN32
  103. HANDLE semForRF;
  104. #endif
  105. SemaphoreWorkerThread* semThread;
  106. };
  107. #endif // MAINWINDOW_H