|
|
#include "mainwindow.h"
#include <QDateTime>
#include <QMessageBox>
#include <QtConcurrent>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include "./ui_mainwindow.h"
#include "logger.hpp"
using namespace iflytop; using namespace std;
static MainWindow *m_mainWindow;
ZQThread *m_zqthread; #define TAG "MainWindow"
static const char *fmt(const char *fmt, ...) { va_list args; va_start(args, fmt); static char buf[1024] = {0}; vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); return buf; }
static const uint32_t str2int(QString str) { // 如果0x开头,??16进制转换
// 如果0b开头,??2进制转换
// 否则??10进制转换
// 去除掉str中_
str.remove("_");
if (str.startsWith("0x")) { return str.toUInt(nullptr, 16); } else if (str.startsWith("0b")) { // remove 0b
str.remove(0, 2); return str.toUInt(nullptr, 2); } else { return str.toUInt(nullptr, 10); } } void MainWindow::log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg) {} void MainWindow::doinui_slot(QFunction func) { if (func.get()) func.get()(); }
void MainWindow::constructUI() {}
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_mainWindow = this;
qRegisterMetaType<int32_t>("int32_t"); qRegisterMetaType<uint32_t>("uint32_t"); qRegisterMetaType<float>("float"); qRegisterMetaType<function<void()>>("function<void()>"); qRegisterMetaType<QFunction>("QFunction"); connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction))); constructUI(); }
void MainWindow::dumpLog(const char *fmt, ...) { va_list args; va_start(args, fmt); char buf[1024] = {0}; vsnprintf(buf, sizeof(buf), fmt, args); // qDebug() << buf;
va_end(args); QString text(buf);
QString info;
// zos_get_ticket
info.append(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")); info.append(" [Info]:"); info.append(text);
static int id;
// informationBrowser
emit doinui_signal(QFunction([this, info]() { if (ui->instructionPreview->document()->lineCount() > 100) { ui->instructionPreview->document()->clear(); } ui->instructionPreview->append(info); })); }
void MainWindow::displayInfo(bool suc, QString info) { emit doinui_signal(QFunction([this, info, suc]() { static int cnt = 0; cnt++;
QString _info; _info.append("["); _info.append(QString::number(cnt)); _info.append("] "); _info.append(info);
if (suc) { ui->informationBrowser->setStyleSheet("color: green"); } else { ui->informationBrowser->setStyleSheet("color: red"); } ui->informationBrowser->setText(_info); })); }
MainWindow::~MainWindow() { delete ui; }
|