123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #include "aicomparewidget.h"
- #include "ui_aicomparewidget.h"
- #include <QIntValidator>
- #include "UIStyleManager.h"
- #include "SystemConfig.h"
- #include "FromWebAPI.h"
- #include "commonFunc.h"
- AICompareWidget::AICompareWidget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::AICompareWidget)
- {
- ui->setupUi(this);
- m_logger = spdlog::get("ACASetting");
- if(m_logger == nullptr)
- {
- fmt::print("AICompareWidget: Logger ACAServer not found\n");
- return;
- }
- /* 设置 lineEdit_length 只能输入数字 */
- ui->lineEdit_length->setValidator(new QIntValidator(1, 120, this));
- /* 设置输入栏的弱提示符 */
- ui->lineEdit_length->setPlaceholderText("请输入, 限制1-120秒");
- /* ai对比持续次数 */
- ui->lineEdit_compareCount->setValidator(new QIntValidator(1, 10, this));
- ui->lineEdit_compareCount->setPlaceholderText("请输入, 持续对比次数限制1-10次");
- /* 不相似度阈值 */
- ui->lineEdit_notSimilarThrehold->setValidator(new StrictDoubleValidator(0.0, 1.0, 3, this));
- ui->lineEdit_notSimilarThrehold->setPlaceholderText("请输入, 阈值限制0.0-1.0");
- /* 相似度阈值 */
- ui->lineEdit_similarThrehold->setValidator(new StrictDoubleValidator(0.0, 1.0, 3, this));
- ui->lineEdit_similarThrehold->setPlaceholderText("请输入, 阈值限制0.0-1.0");
- /* 设置初始化的参数 */
- do_pBtn_restore_clicked();
- /* 连接信号和槽 */
- connect(ui->pBtn_restore, &QPushButton::clicked, this, &AICompareWidget::do_pBtn_restore_clicked);
- /* 设置样式 */
- UIStyle.registerWidget(this);
- }
- AICompareWidget::~AICompareWidget()
- {
- UIStyle.unregisterWidget(this);
- delete ui;
- }
- /* 保存配置项 */
- bool AICompareWidget::saveConfig()
- {
- AICompareConfig_t aiConfig;
- aiConfig.nAiComputeDuration = ui->lineEdit_length->text().toInt();
- aiConfig.nAiCompareCount = ui->lineEdit_compareCount->text().toInt();
- aiConfig.fSimilarThrehold = ui->lineEdit_similarThrehold->text().toFloat();
- aiConfig.fNotSimilarThrehold = ui->lineEdit_notSimilarThrehold->text().toFloat();
- aiConfig.bNoConsistencyAlarmOtherAlarm = ui->checkBox_noConsistencyOtherAlarm->isChecked();
- /* 和历史数据进行对比 */
- const AICompareConfig_t &oldConfig = SysConfig.getAICompareConfig();
- if(aiConfig == oldConfig)
- {
- SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置没有变化,不需要更新");
- return true;
- }
- /* 将AI对比配置转换成json */
- std::string strJson;
- if(!SysConfig.setAICompareConfigToJson(aiConfig, strJson))
- {
- SPDLOG_LOGGER_ERROR(m_logger, "设置AI对比配置转换成JSON失败");
- return false;
- }
- /* 更新数据库信息 */
- if(!m_fromWebAPI->updateSystemConfig(Config_CompareAI, strJson, SysConfig.mapSysConfigDesc[eSystemConfigType::eSCT_CompareAI]))
- {
- SPDLOG_LOGGER_ERROR(m_logger, "更新AI对比配置失败");
- return false;
- }
- /* 更新系统设置 */
- SysConfig.setAICompareConfig(aiConfig);
- SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置更新成功");
- return true;
- }
- /* 恢复配置项 */
- void AICompareWidget::do_pBtn_restore_clicked()
- {
- const AICompareConfig_t &aiConfig = SysConfig.getAICompareConfig();
- ui->lineEdit_length->setText(QString::number(aiConfig.nAiComputeDuration));
- ui->lineEdit_compareCount->setText(QString::number(aiConfig.nAiCompareCount));
- ui->lineEdit_similarThrehold->setText(QString::number(aiConfig.fSimilarThrehold, 'f', 3));
- ui->lineEdit_notSimilarThrehold->setText(QString::number(aiConfig.fNotSimilarThrehold, 'f', 3));
- ui->checkBox_noConsistencyOtherAlarm->setChecked(aiConfig.bNoConsistencyAlarmOtherAlarm);
- }
|