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.

109 lines
3.2 KiB

2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year 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
1 year ago
  1. #include "mainwindow.h"
  2. #include <QDateTime>
  3. #include <QMessageBox>
  4. #include <QtConcurrent>
  5. #include <QtSerialPort/QSerialPort>
  6. #include <QtSerialPort/QSerialPortInfo>
  7. #include "./ui_mainwindow.h"
  8. #include "camera_light_src_timing_controller/qt_serial_datachannel.hpp"
  9. #include "logger.hpp"
  10. using namespace iflytop;
  11. using namespace clst;
  12. using namespace std;
  13. static MainWindow *m_mainWindow;
  14. static CLSTControler *m_clstc;
  15. ZQThread *m_zqthread;
  16. #define TAG "MainWindow"
  17. static const char *fmt(const char *fmt, ...) {
  18. va_list args;
  19. va_start(args, fmt);
  20. static char buf[1024] = {0};
  21. vsnprintf(buf, sizeof(buf), fmt, args);
  22. va_end(args);
  23. return buf;
  24. }
  25. void MainWindow::log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg) {}
  26. void MainWindow::doinui_slot(QFunction func) {
  27. if (func.get()) func.get()();
  28. }
  29. void MainWindow::dumpLog(const char *fmt, ...) {
  30. va_list args;
  31. va_start(args, fmt);
  32. char buf[1024] = {0};
  33. vsnprintf(buf, sizeof(buf), fmt, args);
  34. // qDebug() << buf;
  35. va_end(args);
  36. QString text(buf);
  37. QString info;
  38. // zos_get_ticket
  39. info.append(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz"));
  40. info.append(" [Info]:");
  41. info.append(text);
  42. static int id;
  43. // informationBrowser
  44. emit doinui_signal(QFunction([this, info]() {
  45. if (ui->instructionPreview->document()->lineCount() > 100) {
  46. ui->instructionPreview->document()->clear();
  47. }
  48. ui->instructionPreview->append(info);
  49. }));
  50. }
  51. void MainWindow::displayInfo(bool suc, QString info) {
  52. emit doinui_signal(QFunction([this, info, suc]() {
  53. static int cnt = 0;
  54. cnt++;
  55. QString _info;
  56. _info.append("[");
  57. _info.append(QString::number(cnt));
  58. _info.append("] ");
  59. _info.append(info);
  60. if (suc) {
  61. ui->informationBrowser->setStyleSheet("color: green");
  62. } else {
  63. ui->informationBrowser->setStyleSheet("color: red");
  64. }
  65. ui->informationBrowser->setText(_info);
  66. }));
  67. }
  68. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
  69. /*******************************************************************************
  70. * QT初始化 *
  71. *******************************************************************************/
  72. ui->setupUi(this);
  73. m_mainWindow = this;
  74. qRegisterMetaType<int32_t>("int32_t");
  75. qRegisterMetaType<uint32_t>("uint32_t");
  76. qRegisterMetaType<float>("float");
  77. qRegisterMetaType<function<void()>>("function<void()>");
  78. qRegisterMetaType<QFunction>("QFunction");
  79. connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction)));
  80. /*******************************************************************************
  81. * *
  82. *******************************************************************************/
  83. constructUI();
  84. }
  85. MainWindow::~MainWindow() { delete ui; }
  86. /*******************************************************************************
  87. * UI相关构造 *
  88. *******************************************************************************/
  89. void MainWindow::constructUI() {}