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.

118 lines
3.1 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
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
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. public:
  69. Ui::MainWindow *ui;
  70. MainWindow(QWidget *parent = nullptr);
  71. ~MainWindow();
  72. void constructBaseUI();
  73. void constructAppUI();
  74. private slots:
  75. void doinui_slot(QFunction);
  76. signals:
  77. void doinui_signal(QFunction);
  78. private:
  79. static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg);
  80. void instructionPreviewClear();
  81. void instructionPreviewShow(QString info);
  82. void reportPreviewShow(QString info);
  83. void blockDataUploadPreviewShow(QString info);
  84. void rawDataPreviewShow(QString info);
  85. void displayWave(int16_t wave1, int16_t wave2, int16_t wave3);
  86. void displayInfo(bool suc, QString info);
  87. private:
  88. void processException(const std::zexception &e);
  89. private:
  90. /***********************************************************************************************************************
  91. * UI_UTILS *
  92. ***********************************************************************************************************************/
  93. QWidget *allocNewTab(QString zh_name);
  94. QGroupBox *allocNewBox(QWidget *tab, QString zh_name, int column);
  95. void addNewButtonStyle1(QWidget *box, QString zh_name, QStringList params, std::function<void(int argn, const char **args)> onButtonClick);
  96. void endAllocNewBox(QGroupBox *box);
  97. void endAllocNewTab(QWidget *tab);
  98. };
  99. #endif // MAINWINDOW_H