2024-02-29 06:20:06 +00:00
|
|
|
|
|
2024-03-14 13:14:36 +00:00
|
|
|
|
#include <QFileDialog>
|
2024-02-29 06:20:06 +00:00
|
|
|
|
#include "MainWindow.h"
|
|
|
|
|
|
#include "ui_MainWindow.h"
|
2024-03-14 13:14:36 +00:00
|
|
|
|
#include "TcpClient.h"
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
|
|
|
|
|
#define DEBUG_HTTP 1
|
|
|
|
|
|
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
|
|
|
|
: QWidget(parent)
|
|
|
|
|
|
, ui(new Ui::MainWindow)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
ui->setupUi(this);
|
2024-03-14 13:14:36 +00:00
|
|
|
|
this->statusBar = new QStatusBar();
|
|
|
|
|
|
this->statusInfo = new QLabel("初始化完成",this);
|
|
|
|
|
|
this->statusBar->addPermanentWidget(this->statusInfo);//显示正常信息
|
2024-03-17 10:30:35 +00:00
|
|
|
|
QLabel* statusVersion = new QLabel("开启时间:" + QDateTime::currentDateTime().toString("yy.MM.dd.hh.mm"),this);
|
2024-03-14 13:14:36 +00:00
|
|
|
|
this->statusBar->addWidget(statusVersion);
|
|
|
|
|
|
|
|
|
|
|
|
layout()->addWidget(this->statusBar);
|
|
|
|
|
|
|
2024-03-17 10:30:35 +00:00
|
|
|
|
this->setWindowTitle("Matrix_RFID 车号识别程序(勿关!!)");
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
|
|
|
|
|
if (!this->mkLogDir())
|
|
|
|
|
|
{
|
|
|
|
|
|
this->logError("创建Log目录失败!");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 配置文件读取
|
|
|
|
|
|
QString errorMessage = "";
|
2024-04-24 08:14:33 +00:00
|
|
|
|
if (!ConfigUtil::readBaseConfig(g_config_path, errorMessage, this->baseConfig_))
|
2024-03-14 13:14:36 +00:00
|
|
|
|
{
|
|
|
|
|
|
this->logError(errorMessage);
|
|
|
|
|
|
}
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
|
|
|
|
|
// 获取本机串口列表
|
|
|
|
|
|
this->getComList();
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化界面上的串口打开参数
|
|
|
|
|
|
this->initComboBox();
|
|
|
|
|
|
|
|
|
|
|
|
m_pSystemTray=new QSystemTrayIcon(this);
|
|
|
|
|
|
|
|
|
|
|
|
connect(this->ui->openComButton, &QPushButton::clicked, this, &MainWindow::openComClicked);
|
2024-03-14 13:14:36 +00:00
|
|
|
|
connect(this->ui->testButton, &QPushButton::clicked, this, &MainWindow::readTestInfo);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
// 最小化信号槽
|
|
|
|
|
|
connect(m_pSystemTray,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(on_activatedSysTrayIcon(QSystemTrayIcon::ActivationReason)));
|
2024-02-29 06:20:06 +00:00
|
|
|
|
//初始最小化
|
|
|
|
|
|
//this->showMinimized();//最小化
|
|
|
|
|
|
// 设置最大展示数据行数
|
|
|
|
|
|
this->ui->textBrowser->document()->setMaximumBlockCount(1000);
|
|
|
|
|
|
|
|
|
|
|
|
getStandardItemModel();
|
|
|
|
|
|
this->ui->resultTable->setModel(this->resultTableModel_);
|
|
|
|
|
|
this->ui->resultTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
|
|
|
|
|
this->ui->resultTable->verticalHeader()->setMinimumWidth(50);
|
|
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
// if (!this->baseConfig_.upResult)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// QIcon icon("./Fail.ico");
|
|
|
|
|
|
// QPixmap m_pic = icon.pixmap(icon.actualSize(QSize(32, 32)));//size自行调整
|
|
|
|
|
|
// this->ui->upflagLabel->setPixmap(m_pic);
|
|
|
|
|
|
// }else{
|
|
|
|
|
|
// QIcon icon("./Succ.ico");
|
|
|
|
|
|
// QPixmap m_pic = icon.pixmap(icon.actualSize(QSize(32, 32)));//size自行调整
|
|
|
|
|
|
// this->ui->upflagLabel->setPixmap(m_pic);
|
|
|
|
|
|
// }
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
// 初始化LED指示灯
|
|
|
|
|
|
this->upResultType(this->baseConfig_.upResult);
|
2024-03-14 13:14:36 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->readComThread = new ReadComThread(&this->queueTrainInfo_, this);
|
|
|
|
|
|
this->readComThread->start();
|
2024-03-14 13:14:36 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->upResultThread = new UpResultThread(&this->queueTrainInfo_, this);
|
|
|
|
|
|
this->upResultThread->start();
|
2024-03-21 06:10:39 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
connect(this, &MainWindow::openCom_signals, this->readComThread, &ReadComThread::openCom);
|
|
|
|
|
|
connect(this, &MainWindow::readTestRfid_signals, this->readComThread, &ReadComThread::readTestInfo);
|
2024-04-03 17:51:29 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
connect(this->readComThread, &ReadComThread::openComSuccess, this, &MainWindow::openComResult);
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::closeComSuccess, this, &MainWindow::closeComResult);
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::comeTrain, this, &MainWindow::comeTrain);
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::upResultType, this, &MainWindow::upResultType);
|
|
|
|
|
|
// 状态栏信息变化
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::statusInfoUpdate, this, &MainWindow::statusInfoUpdate);
|
|
|
|
|
|
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::DebugSignals, this, &MainWindow::DebugSlots);
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::InfoSignals, this, &MainWindow::InfoSlots);
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::WarnSignals, this, &MainWindow::WarnSlots);
|
|
|
|
|
|
connect(this->readComThread, &ReadComThread::ErrorSignals, this, &MainWindow::ErrorSlots);
|
2024-04-08 02:05:36 +00:00
|
|
|
|
|
|
|
|
|
|
connect(this->upResultThread, &UpResultThread::DebugSignals, this, &MainWindow::DebugSlots);
|
|
|
|
|
|
connect(this->upResultThread, &UpResultThread::InfoSignals, this, &MainWindow::InfoSlots);
|
|
|
|
|
|
connect(this->upResultThread, &UpResultThread::WarnSignals, this, &MainWindow::WarnSlots);
|
|
|
|
|
|
connect(this->upResultThread, &UpResultThread::ErrorSignals, this, &MainWindow::ErrorSlots);
|
2024-04-24 08:14:33 +00:00
|
|
|
|
|
|
|
|
|
|
ui->openComButton->click();
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MainWindow::~MainWindow()
|
|
|
|
|
|
{
|
|
|
|
|
|
this->logInfo("-- 程序退出 --");
|
|
|
|
|
|
delete ui;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::logDebug(const QString& message) {
|
|
|
|
|
|
LogDebug << message.toStdString();
|
2024-02-29 11:35:22 +00:00
|
|
|
|
ui->textBrowser->append(QString("[Debug] [") + this->getSystemTime() + QString::fromStdString("] ") + message);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
void MainWindow::logInfo(const QString& message) {
|
|
|
|
|
|
LogInfo << message.toStdString();
|
2024-02-29 11:35:22 +00:00
|
|
|
|
ui->textBrowser->append(QString("[Info] [") + this->getSystemTime() + QString::fromStdString("] ") + message);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
void MainWindow::logWarn(const QString& message) {
|
|
|
|
|
|
LogWarn << message.toStdString();
|
2024-02-29 11:35:22 +00:00
|
|
|
|
ui->textBrowser->append(QString("[Warn] [") + this->getSystemTime() + QString::fromStdString("] ") + message);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
void MainWindow::logError(const QString& message) {
|
|
|
|
|
|
LogError << message.toStdString();
|
2024-02-29 11:35:22 +00:00
|
|
|
|
ui->textBrowser->append(QString("[Error] [") + this->getSystemTime() + QString::fromStdString("] ") + message);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
2024-04-24 08:14:33 +00:00
|
|
|
|
void MainWindow::statusInfoUpdate(const QString &info) {
|
|
|
|
|
|
this->statusInfo->setText(info);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 创建日志目录
|
|
|
|
|
|
* @return bool
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool MainWindow::mkLogDir()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_access("Logs", 0) == -1) { //判断是否存在日志的文件夹,没有则创建
|
|
|
|
|
|
std::string folderPath = "Logs";
|
|
|
|
|
|
if (0 != _mkdir(folderPath.c_str()))
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取本地所有串口
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
QList<QString> MainWindow::getComList() {
|
|
|
|
|
|
// 获取系统所有串口信息
|
|
|
|
|
|
QList<QSerialPortInfo> availablePorts = QSerialPortInfo::availablePorts();
|
|
|
|
|
|
for (const auto & availablePort : availablePorts) {
|
|
|
|
|
|
this->comList.append(availablePort.portName());
|
|
|
|
|
|
}
|
|
|
|
|
|
return this->comList;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 初始化 comboxBox 组件的值
|
|
|
|
|
|
*/
|
2024-04-24 08:14:33 +00:00
|
|
|
|
void MainWindow::initComboBox()
|
|
|
|
|
|
{
|
2024-02-29 06:20:06 +00:00
|
|
|
|
// ui->BTBox->setEditable(true);
|
2024-04-24 08:14:33 +00:00
|
|
|
|
ui->BTBox->setStyleSheet("QComboBox {background-color: rgb(255, 255, 255);} QComboBox QAbstractItemView::item {min-height: 30px; background-color: rgb(255, 255, 255); color: rgb(225, 225, 225);}");
|
2024-02-29 06:20:06 +00:00
|
|
|
|
ui->BTBox->setView(new QListView());
|
|
|
|
|
|
ui->comBox->setEditable(true);
|
2024-04-24 08:14:33 +00:00
|
|
|
|
ui->comBox->setStyleSheet("QComboBox {background-color: rgb(255, 255, 255);} QComboBox QAbstractItemView::item {min-height: 30px; background-color: rgb(255, 255, 255); color: rgb(225, 225, 225);}");
|
2024-02-29 06:20:06 +00:00
|
|
|
|
ui->comBox->setMaxVisibleItems(5);
|
|
|
|
|
|
ui->comBox->setView(new QListView());
|
|
|
|
|
|
ui->comBox->addItems(this->comList);
|
|
|
|
|
|
if (this->baseConfig_.comName != "") {
|
|
|
|
|
|
if (ui->comBox->findText(this->baseConfig_.comName) == -1)
|
|
|
|
|
|
{
|
|
|
|
|
|
ui->comBox->addItem(this->baseConfig_.comName);
|
|
|
|
|
|
}
|
|
|
|
|
|
ui->comBox->setCurrentText(this->baseConfig_.comName);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (ui->BTBox->findText(QString::number(this->baseConfig_.baud)) == -1)
|
|
|
|
|
|
{
|
|
|
|
|
|
ui->BTBox->addItem(QString::number(this->baseConfig_.baud));
|
|
|
|
|
|
}
|
|
|
|
|
|
ui->BTBox->setCurrentText(QString::number(this->baseConfig_.baud));
|
|
|
|
|
|
|
|
|
|
|
|
ui->truckEdit->setText(QString::number(this->baseConfig_.trackName));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief:获取系统时间
|
|
|
|
|
|
* @param:
|
|
|
|
|
|
* @return:空
|
|
|
|
|
|
*/
|
|
|
|
|
|
QString MainWindow::getSystemTime()
|
|
|
|
|
|
{
|
|
|
|
|
|
return QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取结果框的ItemModel
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
QStandardItemModel* MainWindow::getStandardItemModel()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this->resultTableModel_== nullptr) this->resultTableModel_ = new QStandardItemModel();
|
|
|
|
|
|
this->resultTableModel_->setColumnCount(1);
|
|
|
|
|
|
this->resultTableModel_->setHeaderData(0,Qt::Horizontal, "车号");
|
|
|
|
|
|
return this->resultTableModel_;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QStandardItem* MainWindow::getStandardItem(const QString &value)
|
|
|
|
|
|
{
|
|
|
|
|
|
QStandardItem *resultTableItem = new QStandardItem();
|
|
|
|
|
|
resultTableItem->setTextAlignment(Qt::AlignCenter);
|
|
|
|
|
|
resultTableItem->setText(value);
|
|
|
|
|
|
return resultTableItem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/***************************最小化相关****************************************/
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief:接收最小化信号
|
|
|
|
|
|
* @param:
|
|
|
|
|
|
* @return:空
|
|
|
|
|
|
*/
|
|
|
|
|
|
void MainWindow::changeEvent(QEvent *event)
|
|
|
|
|
|
{
|
|
|
|
|
|
if((event->type()==QEvent::WindowStateChange)&&isMinimized())
|
|
|
|
|
|
{
|
2024-03-14 13:14:36 +00:00
|
|
|
|
this->hide();
|
2024-02-29 06:20:06 +00:00
|
|
|
|
m_pSystemTray->setIcon(QIcon("./logo.ico")); // 托盘时显示的图片
|
|
|
|
|
|
m_pSystemTray->setToolTip("Rfid车号识别-股道号:" + QString::number(this->baseConfig_.trackName)); // 鼠标在托盘图片时的提示
|
|
|
|
|
|
m_pSystemTray->showMessage("Rfid车号识别","已隐藏至托盘",QSystemTrayIcon::Information,10000);
|
|
|
|
|
|
event->ignore();
|
|
|
|
|
|
//建立托盘操作的菜单
|
|
|
|
|
|
creat_action();
|
|
|
|
|
|
creat_menu();
|
|
|
|
|
|
m_pSystemTray->show(); // 显示图片图标
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::closeEvent(QCloseEvent *event)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 弹出对话框要求用户输入账号和密码
|
|
|
|
|
|
QString password = QInputDialog::getText(this, "密码验证", "请输入密码:", QLineEdit::Password);
|
|
|
|
|
|
|
|
|
|
|
|
// 验证账号和密码是否正确
|
|
|
|
|
|
if (password == "matrix") {
|
|
|
|
|
|
event->accept(); // 关闭窗口
|
|
|
|
|
|
exit(0);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
QMessageBox::warning(this, "验证失败", "密码不正确!");
|
|
|
|
|
|
event->ignore(); // 阻止关闭窗口
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::creat_action()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pActionShow = new QAction("主界面", this);
|
|
|
|
|
|
connect(m_pActionShow, &QAction::triggered, this,&MainWindow::on_ShowMainAction);
|
2024-03-17 10:30:35 +00:00
|
|
|
|
// m_pActionQuit = new QAction("退出", this);
|
|
|
|
|
|
// connect(m_pActionQuit, &QAction::triggered, this, &MainWindow::on_ExitAppAction);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::creat_menu()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pTrayMennu = new QMenu(this);
|
|
|
|
|
|
//新增菜单项---显示主界面
|
|
|
|
|
|
m_pTrayMennu->addAction(m_pActionShow);
|
|
|
|
|
|
//增加分隔符
|
2024-03-17 10:30:35 +00:00
|
|
|
|
// m_pTrayMennu->addSeparator();
|
|
|
|
|
|
// //新增菜单项---退出程序
|
|
|
|
|
|
// m_pTrayMennu->addAction(m_pActionQuit);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
//把QMenu赋给QSystemTrayIcon对象
|
|
|
|
|
|
m_pSystemTray->setContextMenu(m_pTrayMennu);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief:显示
|
|
|
|
|
|
* @param:
|
|
|
|
|
|
* @return:空
|
|
|
|
|
|
*/
|
|
|
|
|
|
void MainWindow::on_ShowMainAction()
|
|
|
|
|
|
{
|
|
|
|
|
|
this->show();
|
2024-03-14 13:14:36 +00:00
|
|
|
|
this->showNormal();
|
|
|
|
|
|
this->activateWindow();
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::on_activatedSysTrayIcon(QSystemTrayIcon::ActivationReason reason)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch(reason){
|
|
|
|
|
|
case QSystemTrayIcon::Trigger:
|
|
|
|
|
|
//单击托盘图标
|
|
|
|
|
|
this->showNormal();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case QSystemTrayIcon::DoubleClick:
|
|
|
|
|
|
//双击托盘图标
|
|
|
|
|
|
//双击后显示主程序窗口
|
|
|
|
|
|
this->showNormal();
|
2024-03-14 13:14:36 +00:00
|
|
|
|
this->activateWindow();
|
2024-02-29 06:20:06 +00:00
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/********************************串口操作*************************************/
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 打开串口
|
|
|
|
|
|
*/
|
|
|
|
|
|
void MainWindow::openComClicked()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ui->openComButton->text() == "打开串口")
|
|
|
|
|
|
{
|
2024-04-15 08:28:56 +00:00
|
|
|
|
this->auto_reconnect_serial_ = true;
|
2024-04-24 08:14:33 +00:00
|
|
|
|
emit openCom_signals(true);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
// 弹出对话框要求用户输入密码
|
|
|
|
|
|
QString password = QInputDialog::getText(this, "密码验证", "请输入密码:", QLineEdit::Password);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
// 验证账号和密码是否正确
|
|
|
|
|
|
if (password == "matrix") {
|
|
|
|
|
|
this->auto_reconnect_serial_ = false;
|
2024-02-29 06:20:06 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
if (this->comDetect_.closeCom())
|
2024-03-20 05:50:02 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
emit openCom_signals(false);
|
2024-03-20 05:50:02 +00:00
|
|
|
|
}
|
2024-04-24 08:14:33 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
QMessageBox::warning(this, "验证失败", "密码不正确!");
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
void MainWindow::openComResult(const bool &success)
|
2024-02-29 06:20:06 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->ui->openComButton->setText("关闭串口");
|
|
|
|
|
|
if (success)
|
2024-02-29 06:20:06 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->ui->LEDlabel->setStyleSheet("border-radius: 16px;\ "
|
|
|
|
|
|
"background-color: rgba(74, 221, 108, 225);\ "
|
|
|
|
|
|
"border:1px solid rgba(168, 168, 168, 105);");
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
2024-04-24 08:14:33 +00:00
|
|
|
|
else
|
2024-02-29 06:20:06 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->ui->LEDlabel->setStyleSheet("border-radius: 16px;\ "
|
|
|
|
|
|
"background-color: red;\ "
|
|
|
|
|
|
"border:1px solid rgba(168, 168, 168, 105);");
|
2024-03-27 12:09:46 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->logInfo("10秒钟后自动尝试重连串口...");
|
|
|
|
|
|
// if (auto_reconnect_serial_) emit openCom_signals(true, 10 * 1000);
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
void MainWindow::closeComResult(const bool &success)
|
2024-02-29 06:20:06 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
if (success)
|
2024-02-29 06:20:06 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->ui->openComButton->setText("打开串口");
|
|
|
|
|
|
this->ui->LEDlabel->setStyleSheet("border-radius: 16px;\ "
|
|
|
|
|
|
"background-color: red;\ "
|
|
|
|
|
|
"border:1px solid rgba(168, 168, 168, 105);");
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
2024-04-24 08:14:33 +00:00
|
|
|
|
else
|
2024-04-15 08:28:56 +00:00
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
this->ui->LEDlabel->setStyleSheet("border-radius: 16px;\ "
|
|
|
|
|
|
"background-color: rgba(74, 221, 108, 225);\ "
|
|
|
|
|
|
"border:1px solid rgba(168, 168, 168, 105);");
|
2024-04-15 08:28:56 +00:00
|
|
|
|
}
|
2024-04-24 08:14:33 +00:00
|
|
|
|
}
|
2024-04-15 08:28:56 +00:00
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
void MainWindow::comeTrain(const bool &success) {
|
|
|
|
|
|
this->resultTableModel_->clear();
|
|
|
|
|
|
this->resultTableModel_ = this->getStandardItemModel();
|
2024-02-29 06:20:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-24 08:14:33 +00:00
|
|
|
|
void MainWindow::upResultType(const bool &type) {
|
|
|
|
|
|
if (type) {
|
|
|
|
|
|
QIcon icon("./Succ.ico");
|
|
|
|
|
|
QPixmap m_pic = icon.pixmap(icon.actualSize(QSize(32, 32)));//size自行调整
|
|
|
|
|
|
this->ui->upflagLabel->setPixmap(m_pic);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
QIcon icon("./Fail.ico");
|
|
|
|
|
|
QPixmap m_pic = icon.pixmap(icon.actualSize(QSize(32, 32)));//size自行调整
|
|
|
|
|
|
this->ui->upflagLabel->setPixmap(m_pic);
|
2024-03-14 13:14:36 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-08 02:05:36 +00:00
|
|
|
|
void MainWindow::DebugSlots(const QString &info) {
|
|
|
|
|
|
this->logDebug(info);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::InfoSlots(const QString &info) {
|
|
|
|
|
|
this->logInfo(info);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::WarnSlots(const QString &info) {
|
|
|
|
|
|
this->logWarn(info);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::ErrorSlots(const QString &info) {
|
|
|
|
|
|
this->logError(info);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-03-14 13:14:36 +00:00
|
|
|
|
// ============================= 测试 ====================================
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::readTestInfo()
|
|
|
|
|
|
{
|
2024-04-24 08:14:33 +00:00
|
|
|
|
if (this->ui->openComButton->text() == "关闭串口")
|
2024-03-14 13:14:36 +00:00
|
|
|
|
{
|
|
|
|
|
|
logWarn("请先关闭串口后进行测试操作!");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
QString filePath = QFileDialog::getOpenFileName(this, "选择一个文件", QDir::currentPath(), "(*.*)");
|
|
|
|
|
|
if(filePath.isEmpty()){
|
2024-04-24 08:14:33 +00:00
|
|
|
|
// QMessageBox::warning(this, "打开文件", "选择文件不能为空");
|
2024-03-14 13:14:36 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-04-24 08:14:33 +00:00
|
|
|
|
|
|
|
|
|
|
emit this->readTestRfid_signals(filePath);
|
2024-03-14 13:14:36 +00:00
|
|
|
|
}
|