You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.3 KiB

2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QtCore/QVariant>
  5. #include <QtWidgets/QAction>
  6. #include <QtWidgets/QApplication>
  7. #include <QtWidgets/QComboBox>
  8. #include <QtWidgets/QFormLayout>
  9. #include <QtWidgets/QGridLayout>
  10. #include <QtWidgets/QGroupBox>
  11. #include <QtWidgets/QHBoxLayout>
  12. #include <QtWidgets/QLabel>
  13. #include <QtWidgets/QMainWindow>
  14. #include <QtWidgets/QMenu>
  15. #include <QtWidgets/QMenuBar>
  16. #include <QtWidgets/QPushButton>
  17. #include <QtWidgets/QSpacerItem>
  18. #include <QtWidgets/QStatusBar>
  19. #include <QtWidgets/QTabWidget>
  20. #include <QtWidgets/QTextBrowser>
  21. #include <QtWidgets/QTextEdit>
  22. #include <QtWidgets/QVBoxLayout>
  23. #include <QtWidgets/QWidget>
  24. //
  25. #include <fstream>
  26. #include <functional>
  27. #include <iostream>
  28. #include <list>
  29. #include <map>
  30. #include <memory>
  31. #include <set>
  32. #include <sstream>
  33. #include <string>
  34. #include <vector>
  35. #include "logger.hpp"
  36. #include "qfunction.hpp"
  37. #include "zexception.hpp"
  38. #include "zqthread.hpp"
  39. QT_BEGIN_NAMESPACE
  40. namespace Ui {
  41. class MainWindow;
  42. }
  43. QT_END_NAMESPACE
  44. typedef enum {
  45. kreg_val_type_dotted_hex, // 点分16进制
  46. kreg_val_type_dotted_decimal, // 点分10进制
  47. kreg_val_type_str,
  48. kreg_val_type_hex,
  49. kreg_val_type_decimal,
  50. kreg_val_type_binary,
  51. kreg_val_type_freq,
  52. kreg_val_type_signal,
  53. } reg_val_type_t;
  54. class DispalyRegIterm {
  55. public:
  56. QLabel *label = 0;
  57. QTextBrowser *regBrowser = 0;
  58. QTextEdit *regEditer = 0;
  59. QPushButton *writerButton = 0;
  60. uint32_t regvalcache;
  61. reg_val_type_t regvaltype;
  62. };
  63. class MainWindow : public QMainWindow {
  64. Q_OBJECT
  65. private:
  66. std::map<int32_t, DispalyRegIterm *> m_regdisplayer;
  67. std::unique_ptr<iflytop::ZQThread> m_thread;
  68. bool m_testState = false;
  69. std::unique_ptr<std::thread> m_testThread;
  70. public:
  71. Ui::MainWindow *ui;
  72. MainWindow(QWidget *parent = nullptr);
  73. ~MainWindow();
  74. void constructBaseUI();
  75. void constructAppUI();
  76. private slots:
  77. void doinui_slot(QFunction);
  78. void on_PublicState_ConfirmKey_clicked();
  79. signals:
  80. void doinui_signal(QFunction);
  81. private:
  82. static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg);
  83. void instructionPreviewClear();
  84. void instructionPreviewShow(QString info);
  85. void reportPreviewShow(QString info);
  86. void blockDataUploadPreviewShow(QString info);
  87. void rawDataPreviewShow(QString info);
  88. void displayWave(int16_t wave1, int16_t wave2, int16_t wave3);
  89. void displayInfo(bool suc, QString info);
  90. private:
  91. void processException(const std::zexception &e);
  92. private:
  93. /***********************************************************************************************************************
  94. * UI_UTILS *
  95. ***********************************************************************************************************************/
  96. QWidget *allocNewTab(QString zh_name);
  97. QGroupBox *allocNewBox(QWidget *tab, QString zh_name, int column);
  98. void addNewButtonStyle1(QWidget *box, QString zh_name, QStringList params, std::function<void(int argn, const char **args)> onButtonClick);
  99. void endAllocNewBox(QGroupBox *box);
  100. void endAllocNewTab(QWidget *tab);
  101. int32_t getDeviceId();
  102. };
  103. #endif // MAINWINDOW_H