156 lines
3.9 KiB
C++
156 lines
3.9 KiB
C++
#include "mainwindow.h"
|
||
#include "ui_mainwindow.h"
|
||
|
||
|
||
/**
|
||
* @brief 切换到设置页面
|
||
* 点击工具栏的“设置”触发。
|
||
* @param void
|
||
* @return void
|
||
* @author 柯劲帆
|
||
* @date 2024-07-27
|
||
*/
|
||
void MainWindow::on_settingAction_triggered()
|
||
{
|
||
ui->stackedWidget->setCurrentWidget(ui->settingPage);
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 更新状态栏的COM口号相关内容
|
||
* @param void
|
||
* @return void
|
||
* @author 柯劲帆
|
||
* @date 2024-07-27
|
||
*/
|
||
void MainWindow::updateStatusBarComNumber()
|
||
{
|
||
if (reader.is_connected())
|
||
{
|
||
readerConnectStatusCheckBox->setChecked(true);
|
||
QString s = "已连接读卡器COM:" + QString::number(reader.getComNumber());
|
||
comNumberLabel->setText(s);
|
||
}
|
||
else
|
||
{
|
||
readerConnectStatusCheckBox->setChecked(false);
|
||
QString s = "当前无连接";
|
||
comNumberLabel->setText(s);
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 连接读卡器
|
||
* 在连接读卡器部分点击“连接”按钮触发。
|
||
* @param void
|
||
* @return void
|
||
* @author 柯劲帆
|
||
* @date 2024-07-27
|
||
*/
|
||
void MainWindow::on_connectReaderButton_clicked()
|
||
{
|
||
int comNumber = ui->comNumberBox->value();
|
||
reader.setComNumber(comNumber);
|
||
bool connectSuccess = reader.connect();
|
||
|
||
if (!connectSuccess) {
|
||
QString warningMessage = QString("COM") + QString::number(comNumber);
|
||
warningMessage += QString("上未识别到读卡器。\n请输入正确的COM口号。");
|
||
QMessageBox::warning(this, "读卡器状态提示", warningMessage);
|
||
}
|
||
|
||
updateStatusBarComNumber();
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 连接数据库并检查设备名
|
||
* 在连接数据库部分点击“连接”按钮触发。
|
||
* @param void
|
||
* @return void
|
||
* @author 柯劲帆
|
||
* @date 2024-07-27
|
||
*/
|
||
void MainWindow::on_connectDatabaseButton_clicked()
|
||
{
|
||
if (db == nullptr)
|
||
{
|
||
db = new Database(QSqlDatabase::addDatabase("QMYSQL"), ui->ipAddrEdit->text(), ui->portBox->value(), ui->passwordEdit->text());
|
||
}
|
||
else
|
||
{
|
||
db->setHostName(ui->ipAddrEdit->text());
|
||
db->setPort(ui->portBox->value());
|
||
db->setPassword(ui->passwordEdit->text());
|
||
}
|
||
|
||
if (!db->open())
|
||
{
|
||
QMessageBox::warning(this, QString("数据库状态提示"), QString("数据库连接失败,请重试。"));
|
||
databaseConnectStatusCheckBox->setChecked(false);
|
||
databaseLabel->setText(QString("数据库未连接"));
|
||
return;
|
||
}
|
||
databaseConnectStatusCheckBox->setChecked(true);
|
||
databaseLabel->setText(QString("数据库已连接:") + db->getHostName() + QString(":") + QString::number(db->getPort()));
|
||
|
||
device.setDevice(ui->deviceEdit->text(), db);
|
||
if (!device.is_verified())
|
||
{
|
||
QMessageBox::warning(this, QString("设备名提示"), QString("该设备名无效,请重试。"));
|
||
}
|
||
deviceLabel->setText(device.getNameAndDepositAllowed());
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 检查读卡器和数据库是否准备好
|
||
* @param void
|
||
* @return 读卡器和数据库状态
|
||
* - true 已准备好
|
||
* - false 未准备好
|
||
* @author 柯劲帆
|
||
* @date 2024-07-27
|
||
*/
|
||
bool MainWindow::allReady()
|
||
{
|
||
if (!reader.is_connected()) return false;
|
||
if (db == nullptr || !db->is_connected()) return false;
|
||
if (!device.is_verified()) return false;
|
||
return true;
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 检查数据库和设备名是否准备好
|
||
* @param void
|
||
* @return 数据库状态和设备名设置状态
|
||
* - true 已准备好
|
||
* - false 未准备好
|
||
* @author 柯劲帆
|
||
* @date 2024-07-30
|
||
*/
|
||
bool MainWindow::softwareReady()
|
||
{
|
||
if (db == nullptr || !db->is_connected()) return false;
|
||
if (!device.is_verified()) return false;
|
||
return true;
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 检查数据库是否准备好
|
||
* @param void
|
||
* @return 数据库状态
|
||
* - true 已准备好
|
||
* - false 未准备好
|
||
* @author 柯劲帆
|
||
* @date 2024-07-31
|
||
*/
|
||
bool MainWindow::databaseReady()
|
||
{
|
||
if (db == nullptr || !db->is_connected()) return false;
|
||
return true;
|
||
}
|