2025-09-18 23:49:32 +08:00
|
|
|
#include "dialogalgoarg.h"
|
|
|
|
|
#include "ui_dialogalgoarg.h"
|
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
#include <QPushButton>
|
|
|
|
|
#include <QtCore/QCoreApplication>
|
|
|
|
|
#include <QtCore/QFileInfo>
|
|
|
|
|
#include <QtCore/QDir>
|
|
|
|
|
#include <QtCore/QStandardPaths>
|
|
|
|
|
#include <QtCore/QFile>
|
|
|
|
|
#include "PathManager.h"
|
|
|
|
|
|
2025-11-26 22:44:38 +08:00
|
|
|
DialogAlgoarg::DialogAlgoarg(ConfigManager* configManager, QWidget *parent)
|
2025-09-18 23:49:32 +08:00
|
|
|
: QDialog(parent)
|
|
|
|
|
, ui(new Ui::DialogAlgoarg)
|
2025-11-26 22:44:38 +08:00
|
|
|
, m_pConfigManager(configManager)
|
2025-09-18 23:49:32 +08:00
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
|
|
// 隐藏标题栏
|
|
|
|
|
setWindowFlags(Qt::FramelessWindowHint);
|
|
|
|
|
|
|
|
|
|
// 获取配置文件路径
|
2025-11-19 00:23:09 +08:00
|
|
|
m_configFilePath = PathManager::GetInstance().GetConfigFilePath();
|
2025-09-18 23:49:32 +08:00
|
|
|
|
|
|
|
|
// 从配置文件加载数据到界面
|
|
|
|
|
LoadConfigToUI();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DialogAlgoarg::~DialogAlgoarg()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DialogAlgoarg::LoadConfigToUI()
|
|
|
|
|
{
|
2025-11-26 22:44:38 +08:00
|
|
|
if (!m_pConfigManager) {
|
2025-09-18 23:49:32 +08:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
2025-11-26 22:44:38 +08:00
|
|
|
// 从ConfigManager获取配置数据
|
|
|
|
|
ConfigResult configData = m_pConfigManager->GetConfigResult();
|
2025-09-18 23:49:32 +08:00
|
|
|
|
|
|
|
|
// 将激光焊接参数加载到界面控件
|
2025-11-26 22:44:38 +08:00
|
|
|
const VrLapWeldParam& lapWeldParam = configData.algorithmParams.lapWeldParam;
|
2025-09-18 23:49:32 +08:00
|
|
|
|
|
|
|
|
// 设置参数到界面
|
|
|
|
|
ui->lineEdit_lapHeight->setText(QString::number(lapWeldParam.lapHeight));
|
|
|
|
|
ui->lineEdit_weldMinLen->setText(QString::number(lapWeldParam.weldMinLen));
|
|
|
|
|
ui->lineEdit_weldRefPoints->setText(QString::number(lapWeldParam.weldRefPoints));
|
|
|
|
|
|
|
|
|
|
// 设置扫描模式下拉框
|
|
|
|
|
ui->comboBox_scanMode->setCurrentIndex(static_cast<int>(lapWeldParam.scanMode));
|
|
|
|
|
|
|
|
|
|
} catch (const std::exception& e) {
|
|
|
|
|
QMessageBox::critical(this, "错误", "加载配置文件失败!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool DialogAlgoarg::SaveConfigFromUI()
|
|
|
|
|
{
|
2025-11-26 22:44:38 +08:00
|
|
|
if (!m_pConfigManager) {
|
2025-09-18 23:49:32 +08:00
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
2025-11-26 22:44:38 +08:00
|
|
|
// 获取当前配置
|
|
|
|
|
SystemConfig systemConfig = m_pConfigManager->GetConfig();
|
|
|
|
|
VrLapWeldParam& lapWeldParam = systemConfig.configResult.algorithmParams.lapWeldParam;
|
2025-09-18 23:49:32 +08:00
|
|
|
|
|
|
|
|
// 读取参数
|
|
|
|
|
lapWeldParam.lapHeight = ui->lineEdit_lapHeight->text().toDouble();
|
|
|
|
|
lapWeldParam.weldMinLen = ui->lineEdit_weldMinLen->text().toDouble();
|
|
|
|
|
lapWeldParam.weldRefPoints = ui->lineEdit_weldRefPoints->text().toInt();
|
|
|
|
|
|
|
|
|
|
// 读取扫描模式
|
|
|
|
|
lapWeldParam.scanMode = static_cast<WeldScanMode>(ui->comboBox_scanMode->currentIndex());
|
|
|
|
|
|
2025-11-26 22:44:38 +08:00
|
|
|
// 更新并保存配置到文件
|
|
|
|
|
if (!m_pConfigManager->UpdateFullConfig(systemConfig)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2025-09-18 23:49:32 +08:00
|
|
|
|
2025-11-26 22:44:38 +08:00
|
|
|
return m_pConfigManager->SaveConfigToFile(m_configFilePath.toStdString());
|
2025-09-18 23:49:32 +08:00
|
|
|
|
|
|
|
|
} catch (const std::exception& e) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DialogAlgoarg::on_btn_camer_ok_clicked()
|
|
|
|
|
{
|
|
|
|
|
if (SaveConfigFromUI()) {
|
|
|
|
|
QMessageBox::information(this, "成功", "配置保存成功!");
|
|
|
|
|
accept();
|
|
|
|
|
} else {
|
|
|
|
|
QMessageBox::warning(this, "失败", "配置保存失败,请检查文件权限!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DialogAlgoarg::on_btn_camer_cancel_clicked()
|
|
|
|
|
{
|
|
|
|
|
// 直接关闭窗口,不保存任何更改
|
|
|
|
|
reject();
|
|
|
|
|
}
|