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.

143 lines
3.0 KiB

2 years 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
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
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/QGridLayout>
  8. #include <QtWidgets/QLabel>
  9. #include <QtWidgets/QMainWindow>
  10. #include <QtWidgets/QMenu>
  11. #include <QtWidgets/QMenuBar>
  12. #include <QtWidgets/QPushButton>
  13. #include <QtWidgets/QStatusBar>
  14. #include <QtWidgets/QTextBrowser>
  15. #include <QtWidgets/QTextEdit>
  16. #include <QtWidgets/QWidget>
  17. //
  18. #include <fstream>
  19. #include <functional>
  20. #include <iostream>
  21. #include <list>
  22. #include <map>
  23. #include <memory>
  24. #include <set>
  25. #include <sstream>
  26. #include <string>
  27. #include <vector>
  28. #include "logger.hpp"
  29. #include "qfunction.hpp"
  30. #include "zexception.hpp"
  31. #include "zqthread.hpp"
  32. QT_BEGIN_NAMESPACE
  33. namespace Ui {
  34. class MainWindow;
  35. }
  36. QT_END_NAMESPACE
  37. typedef enum {
  38. kreg_val_type_dotted_hex, // 点分16进制
  39. kreg_val_type_dotted_decimal, // 点分10进制
  40. kreg_val_type_str,
  41. kreg_val_type_hex,
  42. kreg_val_type_decimal,
  43. kreg_val_type_binary,
  44. kreg_val_type_freq,
  45. kreg_val_type_signal,
  46. } reg_val_type_t;
  47. class DispalyRegIterm {
  48. public:
  49. QLabel *label = 0;
  50. QTextBrowser *regBrowser = 0;
  51. QTextEdit *regEditer = 0;
  52. QPushButton *writerButton = 0;
  53. uint32_t regvalcache;
  54. reg_val_type_t regvaltype;
  55. };
  56. class MainWindow : public QMainWindow {
  57. Q_OBJECT
  58. private:
  59. std::map<int32_t, DispalyRegIterm *> m_regdisplayer;
  60. std::unique_ptr<iflytop::ZQThread> m_thread;
  61. public:
  62. Ui::MainWindow *ui;
  63. MainWindow(QWidget *parent = nullptr);
  64. ~MainWindow();
  65. void constructUI();
  66. private slots:
  67. void doinui_slot(QFunction);
  68. void on_readDeviceVersion_clicked();
  69. void on_readDeviceState_clicked();
  70. void on_readTime_clicked();
  71. void on_syncTime_clicked();
  72. void on_readAllRecords_clicked();
  73. void on_startUploadRecord_clicked();
  74. void on_readSensorInfo_clicked();
  75. void on_readSN_clicked();
  76. void on_stopUploadRecord_clicked();
  77. void on_delRecord_clicked();
  78. #if 0
  79. void on_startCapture_clicked();
  80. void on_stopCapture_clicked();
  81. #endif
  82. void on_startRealtimeReport_clicked();
  83. void on_stopRealtimeReport_clicked();
  84. void on_clearPreview_clicked();
  85. void on_TestCmd_readSubIcRegs_clicked();
  86. void on_TestCmd_writeSubICReg_clicked();
  87. void on_TestCmd_startCapture_clicked();
  88. void on_TestCmd_stopCapture_clicked();
  89. void on_TestCmd_writeSubICRegMask_clicked();
  90. void on_TestCmd_changeECGSrcToSquareWave_clicked();
  91. void on_resetDevice_clicked();
  92. signals:
  93. void doinui_signal(QFunction);
  94. private:
  95. static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg);
  96. void ishow(const char *fmt, ...);
  97. void instructionPreviewClear();
  98. void reportPreviewShow(const char *fmt, ...);
  99. void blockDataUploadPreviewShow(const char *fmt, ...);
  100. void rawDataPreviewShow(const char *fmt, ...);
  101. void displayWave(int16_t wave1, int16_t wave2, int16_t wave3);
  102. void displayInfo(bool suc, QString info);
  103. private:
  104. void processException(std::zexception &e);
  105. };
  106. #endif // MAINWINDOW_H