diff --git a/TSI_Config.pro b/TSI_Config.pro index ced837b..209e965 100644 --- a/TSI_Config.pro +++ b/TSI_Config.pro @@ -16,16 +16,19 @@ SOURCES += \ radial_vibration.cpp \ seismic_monitor.cpp \ setpoint.cpp \ + singlerelay.cpp \ tachometer.cpp \ velocity.cpp HEADERS += \ acceleration.h \ + data_config.h \ keyphase.h \ mainwindow.h \ radial_vibration.h \ seismic_monitor.h \ setpoint.h \ + singlerelay.h \ tachometer.h \ velocity.h diff --git a/acceleration.ui b/acceleration.ui index 5f0d9ab..c90cc19 100644 --- a/acceleration.ui +++ b/acceleration.ui @@ -13,1006 +13,1075 @@ Form - - - - 40 - 100 - 621 - 391 - - - - 1 - - - - 滤波配置 - - - - - 10 - 20 - 591 - 141 - + + + + + + 0 + 50 + - - 滤波 - - - - - 310 - 70 - 72 - 16 - - - - 30 - 30000Hz - - - - - - 225 - 70 - 69 - 20 - - + - - 30000 - + + + + + + + 通道: + + + + + + + true + + + + + + + (启用) + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 槽位号: + + + + + + + true + + + + + + - - - - - 195 - 70 - 21 - 16 - - - - - - - - - - - 56 - 71 - 36 - 16 - - - - 低通: - - - - - - 105 - 71 - 61 - 20 - - + + + + + + + + 0 + 400 + + + - - 30 - + + + 0 + + + + 滤波配置 + + + + + + 滤波 + + + + + + + + + + + + + + + 高通: + + + + + + + + 60 + 0 + + + + + 60 + 16777215 + + + + 3 + + + 3000 + + + + + + + - + + + + + + + + 60 + 0 + + + + + 60 + 16777215 + + + + 3 + + + 3000 + + + 3000 + + + + + + + + 60 + 0 + + + + 3 - 3000Hz + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + 低通: + + + + + + + + 60 + 0 + + + + + 30 + + + + + + + + - + + + + + + + + 60 + 0 + + + + + 30000 + + + + + + + + 30 - 30000Hz + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + 带通: + + + + + + + + 60 + 0 + + + + 3 + + + 3000 + + + + + + + - + + + + + + + + 60 + 0 + + + + 3 + + + 3000 + + + 3000 + + + + + + + 3 - 3000Hz + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 248 + + + + + + + + + + + + 特征值和警报配置 + + + + + 20 + 10 + 431 + 351 + + + + 特征值 + + + + + 20 + 50 + 54 + 12 + + + + 直接值 + + + + + + 10 + 80 + 81 + 16 + + + + 偏置电压 + + + + + + 20 + 110 + 71 + 16 + + + + 1倍频幅值 + + + + + + 20 + 180 + 71 + 16 + + + + 2倍频幅值 + + + + + + 141 + 31 + 48 + 16 + + + + 取值范围 + + + + + + 269 + 31 + 48 + 16 + + + + 默认值 + + + + + + 130 + 50 + 69 + 22 + + + + + + + 260 + 50 + 62 + 22 + + + + + + + 130 + 80 + 54 + 12 + + + + -24Vdc + + + + + + 260 + 80 + 62 + 22 + + + + 1 + + + + + + 130 + 110 + 69 + 22 + + + + + + + 260 + 110 + 62 + 22 + + + + + + + 20 + 150 + 91 + 16 + + + + 1倍频相位 + + + + + + 20 + 210 + 91 + 16 + + + + 2倍频相位 + + + + + + 260 + 150 + 62 + 22 + + + + 0 + + + 100.000000000000000 + + + + + + 260 + 180 + 62 + 22 + + + + + + + 260 + 210 + 62 + 22 + + + + 0 + + + + + + 130 + 180 + 69 + 22 + + + + + + + 20 + 250 + 71 + 16 + + + + 有效值 + + + + + + 130 + 250 + 71 + 16 + + + + 积分 + + + + + + 200 + 240 + 221 + 101 + + + + 延时 + + + + + 20 + 20 + 54 + 12 + + + + 告警 + + + + + + 20 + 50 + 54 + 12 + + + + 危险 + + + + + + 60 + 50 + 62 + 16 + + + + 1 + + + 1.000000000000000 + + + + + + 60 + 80 + 71 + 16 + + + + 100 ms + + + + + + 130 + 20 + 54 + 12 + + + + 1 - 60s + + + + + + 130 + 50 + 71 + 16 + + + + 1.0 - 60.0s + + + + + + 60 + 20 + 61 + 16 + + + + 1 + + + + + + + + 460 + 20 + 131 + 16 + + + + 告警锁定 + + + + + + 460 + 40 + 131 + 16 + + + + 危险锁定 + + + + + + 460 + 170 + 121 + 16 + + + + 倍增 + + + + + + 460 + 190 + 62 + 16 + + + + 1.000000000000000 + + + + + + 460 + 210 + 141 + 16 + + + + 1.00 - 3.00 (步进0.25) + + + + + + 460 + 90 + 54 + 12 + + + + 记录输出 + + + + + + 460 + 110 + 141 + 22 + + + + + None + + + + + 直接值 + + + + + 偏置电压 + + + + + 1倍频幅值 + + + + + 1倍频相位 + + + + + 2倍频幅值 + + + + + 2倍频相位 + + + + + + + 460 + 140 + 91 + 16 + + + + 2 mA 默认值 + + + + + + 460 + 60 + 141 + 16 + + + + Timed OK channel Defeat + + + + + + 460 + 250 + 121 + 16 + + + + 比较 + + + + + + 460 + 310 + 61 + 22 + + + + + + + 460 + 270 + 141 + 22 + + + + + None + + + + + 直接值 + + + + + 偏置电压 + + + + + 1倍频幅值 + + + + + 1倍频相位 + + + + + 2倍频幅值 + + + + + 2倍频相位 + + + + + + + 530 + 320 + 54 + 12 + + + + % + + + + - - - - - 56 - 31 - 36 - 16 - - - - 高通: - - - - - - 310 - 30 - 60 - 16 - - - - 3 - 3000Hz - - - - - - 195 - 30 - 21 - 16 - - - - - - - - - - - 105 - 30 - 61 - 22 - - - - 3 - - - 3000 - - - - - - 225 - 30 - 61 - 22 - - - - 3 - - - 3000 - - - 3000 - - - - - - 56 - 101 - 36 - 16 - - - - 带通: - - - - - - 105 - 100 - 61 - 22 - - - - 3 - - - 3000 - - - - - - 195 - 100 - 21 - 16 - - - - - - - - - - - 225 - 100 - 61 - 22 - - - - 3 - - - 3000 - - - 3000 - - - - - - 310 - 100 - 60 - 16 - - - - 3 - 3000Hz - - - - - - 20 - 30 - 21 - 16 - - - - - - - - - - 20 - 70 - 21 - 16 - - - - - - - - - - 20 - 100 - 21 - 16 - - - - - - + - - - - 特征值和警报配置 - - - - - 20 - 10 - 431 - 351 - + + + + + + 0 + 50 + - - 特征值 - - - - - 20 - 50 - 54 - 12 - - - - 直接值 - - - - - - 10 - 80 - 81 - 16 - - - - 偏置电压 - - - - - - 20 - 110 - 71 - 16 - - - - 1倍频幅值 - - - - - - 20 - 180 - 71 - 16 - - - - 2倍频幅值 - - - - - - 141 - 31 - 48 - 16 - - - - 取值范围 - - - - - - 269 - 31 - 48 - 16 - - - - 默认值 - - - - - - 130 - 50 - 69 - 22 - - - - - - - 260 - 50 - 62 - 22 - - - - - - - 130 - 80 - 54 - 12 - - - - -24Vdc - - - - - - 260 - 80 - 62 - 22 - - - - 1 - - - - - - 130 - 110 - 69 - 22 - - - - - - - 260 - 110 - 62 - 22 - - - - - - - 20 - 150 - 91 - 16 - - - - 1倍频相位 - - - - - - 20 - 210 - 91 - 16 - - - - 2倍频相位 - - - - - - 260 - 150 - 62 - 22 - - - - 0 - - - 100.000000000000000 - - - - - - 260 - 180 - 62 - 22 - - - - - - - 260 - 210 - 62 - 22 - - - - 0 - - - - - - 130 - 180 - 69 - 22 - - - - - - - 20 - 250 - 71 - 16 - - - - 有效值 - - - - - - 130 - 250 - 71 - 16 - - - - 积分 - - - - - - 200 - 240 - 221 - 101 - - - - 延时 - - - - - 20 - 20 - 54 - 12 - - - - 告警 - - - - - - 20 - 50 - 54 - 12 - - - - 危险 - - - - - - 60 - 50 - 62 - 16 - - - - 1 - - - 1.000000000000000 - - - - - - 60 - 80 - 71 - 16 - - - - 100 ms - - - - - - 130 - 20 - 54 - 12 - - - - 1 - 60s - - - - - - 130 - 50 - 71 - 16 - - - - 1.0 - 60.0s - - - - - - 60 - 20 - 61 - 16 - - - - 1 - - - + + + + + + + + 100 + 35 + + + + 确定 + + + + + + + + 100 + 35 + + + + 设置为默认值 + + + + + + + + 100 + 35 + + + + 测点名称 + + + + + + + + 100 + 35 + + + + 取消 + + + + + + + + 100 + 35 + + + + 打印 + + + + + + + + 100 + 35 + + + + 帮助 + + + + + + - - - - 460 - 20 - 131 - 16 - - - - 告警锁定 - - - - - - 460 - 40 - 131 - 16 - - - - 危险锁定 - - - - - - 460 - 170 - 121 - 16 - - - - 倍增 - - - - - - 460 - 190 - 62 - 16 - - - - 1.000000000000000 - - - - - - 460 - 210 - 141 - 16 - - - - 1.00 - 3.00 (步进0.25) - - - - - - 460 - 90 - 54 - 12 - - - - 记录输出 - - - - - - 460 - 110 - 141 - 22 - - - - - None - - - - - 直接值 - - - - - 偏置电压 - - - - - 1倍频幅值 - - - - - 1倍频相位 - - - - - 2倍频幅值 - - - - - 2倍频相位 - - - - - - - 460 - 140 - 91 - 16 - - - - 2 mA 默认值 - - - - - - 460 - 60 - 141 - 16 - - - - Timed OK channel Defeat - - - - - - 460 - 250 - 121 - 16 - - - - 比较 - - - - - - 460 - 310 - 61 - 22 - - - - - - - 460 - 270 - 141 - 22 - - - - - None - - - - - 直接值 - - - - - 偏置电压 - - - - - 1倍频幅值 - - - - - 1倍频相位 - - - - - 2倍频幅值 - - - - - 2倍频相位 - - - - - - - 530 - 320 - 54 - 12 - - - - % - - - - - - - - 20 - 510 - 651 - 29 - - - - - - - 确定 - - - - - - - 设置为默认值 - - - - - - - 测点名称 - - - - - - - 取消 - - - - - - - 打印 - - - - - - - 帮助 - - - - - - - - - 30 - 10 - 231 - 22 - - - - - - - 通道: - - - - - - - true - - - - - - - (启用) - - - - - - - - - 350 - 10 - 189 - 22 - - - - - - - 槽位号: - - - - - - - true - - - - - + + diff --git a/acceleration.ui.autosave b/acceleration.ui.autosave deleted file mode 100644 index 5f0d9ab..0000000 --- a/acceleration.ui.autosave +++ /dev/null @@ -1,1019 +0,0 @@ - - - Acceleration - - - - 0 - 0 - 703 - 563 - - - - Form - - - - - 40 - 100 - 621 - 391 - - - - 1 - - - - 滤波配置 - - - - - 10 - 20 - 591 - 141 - - - - 滤波 - - - - - 310 - 70 - 72 - 16 - - - - 30 - 30000Hz - - - - - - 225 - 70 - 69 - 20 - - - - - 30000 - - - - - - - 195 - 70 - 21 - 16 - - - - - - - - - - - 56 - 71 - 36 - 16 - - - - 低通: - - - - - - 105 - 71 - 61 - 20 - - - - - 30 - - - - - - - 56 - 31 - 36 - 16 - - - - 高通: - - - - - - 310 - 30 - 60 - 16 - - - - 3 - 3000Hz - - - - - - 195 - 30 - 21 - 16 - - - - - - - - - - - 105 - 30 - 61 - 22 - - - - 3 - - - 3000 - - - - - - 225 - 30 - 61 - 22 - - - - 3 - - - 3000 - - - 3000 - - - - - - 56 - 101 - 36 - 16 - - - - 带通: - - - - - - 105 - 100 - 61 - 22 - - - - 3 - - - 3000 - - - - - - 195 - 100 - 21 - 16 - - - - - - - - - - - 225 - 100 - 61 - 22 - - - - 3 - - - 3000 - - - 3000 - - - - - - 310 - 100 - 60 - 16 - - - - 3 - 3000Hz - - - - - - 20 - 30 - 21 - 16 - - - - - - - - - - 20 - 70 - 21 - 16 - - - - - - - - - - 20 - 100 - 21 - 16 - - - - - - - - - - - 特征值和警报配置 - - - - - 20 - 10 - 431 - 351 - - - - 特征值 - - - - - 20 - 50 - 54 - 12 - - - - 直接值 - - - - - - 10 - 80 - 81 - 16 - - - - 偏置电压 - - - - - - 20 - 110 - 71 - 16 - - - - 1倍频幅值 - - - - - - 20 - 180 - 71 - 16 - - - - 2倍频幅值 - - - - - - 141 - 31 - 48 - 16 - - - - 取值范围 - - - - - - 269 - 31 - 48 - 16 - - - - 默认值 - - - - - - 130 - 50 - 69 - 22 - - - - - - - 260 - 50 - 62 - 22 - - - - - - - 130 - 80 - 54 - 12 - - - - -24Vdc - - - - - - 260 - 80 - 62 - 22 - - - - 1 - - - - - - 130 - 110 - 69 - 22 - - - - - - - 260 - 110 - 62 - 22 - - - - - - - 20 - 150 - 91 - 16 - - - - 1倍频相位 - - - - - - 20 - 210 - 91 - 16 - - - - 2倍频相位 - - - - - - 260 - 150 - 62 - 22 - - - - 0 - - - 100.000000000000000 - - - - - - 260 - 180 - 62 - 22 - - - - - - - 260 - 210 - 62 - 22 - - - - 0 - - - - - - 130 - 180 - 69 - 22 - - - - - - - 20 - 250 - 71 - 16 - - - - 有效值 - - - - - - 130 - 250 - 71 - 16 - - - - 积分 - - - - - - 200 - 240 - 221 - 101 - - - - 延时 - - - - - 20 - 20 - 54 - 12 - - - - 告警 - - - - - - 20 - 50 - 54 - 12 - - - - 危险 - - - - - - 60 - 50 - 62 - 16 - - - - 1 - - - 1.000000000000000 - - - - - - 60 - 80 - 71 - 16 - - - - 100 ms - - - - - - 130 - 20 - 54 - 12 - - - - 1 - 60s - - - - - - 130 - 50 - 71 - 16 - - - - 1.0 - 60.0s - - - - - - 60 - 20 - 61 - 16 - - - - 1 - - - - - - - - 460 - 20 - 131 - 16 - - - - 告警锁定 - - - - - - 460 - 40 - 131 - 16 - - - - 危险锁定 - - - - - - 460 - 170 - 121 - 16 - - - - 倍增 - - - - - - 460 - 190 - 62 - 16 - - - - 1.000000000000000 - - - - - - 460 - 210 - 141 - 16 - - - - 1.00 - 3.00 (步进0.25) - - - - - - 460 - 90 - 54 - 12 - - - - 记录输出 - - - - - - 460 - 110 - 141 - 22 - - - - - None - - - - - 直接值 - - - - - 偏置电压 - - - - - 1倍频幅值 - - - - - 1倍频相位 - - - - - 2倍频幅值 - - - - - 2倍频相位 - - - - - - - 460 - 140 - 91 - 16 - - - - 2 mA 默认值 - - - - - - 460 - 60 - 141 - 16 - - - - Timed OK channel Defeat - - - - - - 460 - 250 - 121 - 16 - - - - 比较 - - - - - - 460 - 310 - 61 - 22 - - - - - - - 460 - 270 - 141 - 22 - - - - - None - - - - - 直接值 - - - - - 偏置电压 - - - - - 1倍频幅值 - - - - - 1倍频相位 - - - - - 2倍频幅值 - - - - - 2倍频相位 - - - - - - - 530 - 320 - 54 - 12 - - - - % - - - - - - - - 20 - 510 - 651 - 29 - - - - - - - 确定 - - - - - - - 设置为默认值 - - - - - - - 测点名称 - - - - - - - 取消 - - - - - - - 打印 - - - - - - - 帮助 - - - - - - - - - 30 - 10 - 231 - 22 - - - - - - - 通道: - - - - - - - true - - - - - - - (启用) - - - - - - - - - 350 - 10 - 189 - 22 - - - - - - - 槽位号: - - - - - - - true - - - - - - - - - diff --git a/mainwindow.cpp b/mainwindow.cpp index 2aafe01..f6d5bba 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2,6 +2,14 @@ #include "ui_mainwindow.h" #include #include +#include +#include +#include +#include "keyphase.h" +#include "singlerelay.h" +#include "tachometer.h" +#include "seismic_monitor.h" +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -26,24 +34,64 @@ MainWindow::MainWindow(QWidget *parent) btnGroup_slot->addButton(ui->pushButton_slot16); btnGroup_slot->addButton(ui->pushButton_slot17); + ui->pushButton_slot->setChecked(true); + readJsonFile(QCoreApplication::applicationDirPath() + "\\config\\main.json"); createMenu(); + + connect(btnGroup_slot, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(OnButtonGroup(QAbstractButton *))); + } MainWindow::~MainWindow() { delete ui; } + +void MainWindow::readJsonFile(const QString &filePath) +{ + // 创建文件对象 + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + qDebug() << "Cannot open file for reading:" << filePath; + return; + } + QString content = file.readAll(); + file.close(); + + QByteArray jsonData = content.toUtf8(); + + QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); + if (jsonDoc.isNull()) { + qDebug() << "Cannot parse JSON document"; + return; + } + if (!jsonDoc.isObject() && !jsonDoc.isArray()) { + qDebug() << "JSON document is not an object or an array"; + return; + } + int slot_id = 3; + QJsonArray jsonArray = jsonDoc.array(); + for (const QJsonValue &value : jsonArray) { + SlotConfig slot_config; + if (value.isObject()) { // 处理数组中的对象,例如每个对象代表一个记录或用户等。 + QJsonObject obj = value.toObject(); + slot_config.slot = obj["slot"].toInt(); + slot_config.slot_type = obj["slot_type"].toInt(); + slot_config.chan_type = obj["chan_type"].toString(); + slot_config.rack_type = obj["rack_type"].toString(); + map_slot_config.insert(slot_id,slot_config); + slot_id ++; + } + } +} void MainWindow::createMenu() { QList buttonList = btnGroup_slot->buttons(); for (int i = 0; i < buttonList.count(); i++){ - slot_type.insert(buttonList[i]->objectName(),""); - } - for (int i = 0; i < buttonList.count(); i++){ - if(slot_type[buttonList[i]->objectName()] == "") - createMenu(QString("%1").arg(i + 1), (QPushButton*)buttonList[i]); - else - createMenuSet(QString("%1").arg(i + 1), (QPushButton*)buttonList[i]); + //buttonList[i]->setText(map_slot_config[i + 3].chan_type); + createMenu(QString("%1").arg(i + 1), (QPushButton*)buttonList[i]); +// else +// createMenuSet(QString("%1").arg(i + 1), (QPushButton*)buttonList[i]); } } void MainWindow::createMenu(const QString& rootTitle, QPushButton* parent ) @@ -99,7 +147,9 @@ void MainWindow::createMenu(const QString& rootTitle, QPushButton* parent ) QObject::connect(keyphasor_1, &QAction::triggered,this, &MainWindow::onMenuActionTriggered); QObject::connect(keyphasor_2, &QAction::triggered,this, &MainWindow::onMenuActionTriggered); QObject::connect(reset, &QAction::triggered,this, &MainWindow::onMenuActionTriggered); + } + void MainWindow::createMenuSet(const QString& rootTitle, QPushButton* parent ) { // 创建主菜单 @@ -146,14 +196,35 @@ void MainWindow::onMenuActionTriggered() while (menu) { QPushButton *button = qobject_cast(menu->parent()); if (button) { - qDebug() << "子菜单项被点击,所属按钮:" << button->objectName(); + qDebug() << "子菜单项被点击,所属按钮:" << button->objectName() << action->text(); + int slot_type = action->text().mid(1,2).toInt(); + QString rack_type = action->text().right(action->text().length()-4); + int button_id = button->objectName().right(button->objectName().length()-15).toInt(); + qDebug() << slot_type << rack_type << button_id << map_slot_config[button_id + 1].slot_type << map_slot_config[button_id + 2].slot_type << endl; + if(rack_type == "三冗余板卡" && (map_slot_config[button_id + 1].slot_type != 0 \ + || map_slot_config[button_id + 2].slot_type != 0)){ + QMessageBox::information(this, QStringLiteral("提示"), "不要重叠三冗余板卡配置,请在创建新配置之前移除现有的配置!"); + return; + }else if(rack_type == "三冗余板卡" && map_slot_config[button_id + 1].slot_type == 0 \ + && map_slot_config[button_id + 2].slot_type == 0){ + map_slot_config[button_id].slot_type = slot_type; + map_slot_config[button_id].rack_type = "TMR"; + } + if(rack_type == "两板卡" && map_slot_config[button_id + 1].slot_type != 0 ){ + QMessageBox::information(this, QStringLiteral("提示"), "不要重叠两板卡配置,请在创建新配置之前移除现有的配置!"); + return; + }else if(rack_type == "两板卡" && map_slot_config[button_id + 1].slot_type == 0){ + map_slot_config[button_id].slot_type = slot_type; + map_slot_config[button_id].rack_type = "Double"; + } + map_slot_config[button_id].slot_type = slot_type; + map_slot_config[button_id].rack_type = "Single"; button->setText(action->text()); - slot_type[button->objectName()] = action->text(); QMenu* menu = button->menu(); if (!menu) { - qWarning() << "菜单为空,无法清除属性!"; - return; - } + qWarning() << "菜单为空,无法清除属性!"; + return; + } clearMenuProperties(button->menu()); createMenu(); break; // 找到按钮后,跳出循环 @@ -164,40 +235,94 @@ void MainWindow::onMenuActionTriggered() } } -void MainWindow::OnButtonGroup(QAbstractButton * slot_btn, bool checked) +void MainWindow::OnButtonGroup(QAbstractButton * slot_btn) { - if(slot_btn != NULL) + if(slot_btn != NULL && ui->pushButton_chan->isChecked()) { - qDebug() << slot_btn->objectName(); - qDebug() << checked; - QString str; - QList buttonList = btnGroup_slot->buttons(); - for (int i = 0; i < buttonList.count(); i++){ - + QString object_name = slot_btn->objectName(); + qDebug() << object_name << endl; + int button_id = object_name.right(object_name.length()-15).toInt(); + SlotConfig slot_config = map_slot_config[button_id]; + if (slot_config.slot_type == KEYPHASOR){ + KeyPhase *key_phase = new KeyPhase(); + key_phase->setWindowModality(Qt::ApplicationModal); + key_phase->show(); + }else if (slot_config.slot_type == RELAY){ + SingleRelay *single_relay = new SingleRelay(); + single_relay->setWindowModality(Qt::ApplicationModal); + single_relay->show(); + }else if (slot_config.slot_type == VIBRATE){ + Seismic_monitor *seismic_monitor = new Seismic_monitor(); + seismic_monitor->setWindowModality(Qt::ApplicationModal); + seismic_monitor->show(); + }else if (slot_config.slot_type == RPM){ + Tachometer *tachometer = new Tachometer(); + tachometer->setWindowModality(Qt::ApplicationModal); + tachometer->show(); } } } void MainWindow::on_pushButton_slot_clicked() { - + if(ui->pushButton_chan->isChecked()) + ui->pushButton_chan->setChecked(false); + if(ui->pushButton_alarm->isChecked()) + ui->pushButton_alarm->setChecked(false); + if(ui->pushButton_point_name->isChecked()) + ui->pushButton_point_name->setChecked(false); } void MainWindow::on_pushButton_chan_clicked() { - + if(ui->pushButton_slot->isChecked()) + ui->pushButton_slot->setChecked(false); + if(ui->pushButton_alarm->isChecked()) + ui->pushButton_alarm->setChecked(false); + if(ui->pushButton_point_name->isChecked()) + ui->pushButton_point_name->setChecked(false); } void MainWindow::on_pushButton_alarm_clicked() { - + if(ui->pushButton_slot->isChecked()) + ui->pushButton_slot->setChecked(false); + if(ui->pushButton_chan->isChecked()) + ui->pushButton_chan->setChecked(false); + if(ui->pushButton_point_name->isChecked()) + ui->pushButton_point_name->setChecked(false); } void MainWindow::on_pushButton_point_name_clicked() { - + if(ui->pushButton_slot->isChecked()) + ui->pushButton_slot->setChecked(false); + if(ui->pushButton_chan->isChecked()) + ui->pushButton_chan->setChecked(false); + if(ui->pushButton_alarm->isChecked()) + ui->pushButton_alarm->setChecked(false); +} + + +void MainWindow::on_pushButton_save_clicked() +{ + QJsonObject itemObj; + QJsonArray slotArray; + for(int i = 0; i < map_slot_config.size();i++){ + itemObj["slot"] = map_slot_config[i+3].slot; + itemObj["slot_type"] = map_slot_config[i+3].slot_type; + itemObj["chan_type"] = map_slot_config[i+3].chan_type; + itemObj["rack_type"] = map_slot_config[i+3].rack_type; + slotArray.append(itemObj); + } + QJsonDocument jsonDoc; + jsonDoc.setArray(slotArray); + QFile file(QCoreApplication::applicationDirPath() + "\\config\\main.json"); + file.open(QIODevice::WriteOnly); + file.write(jsonDoc.toJson()); + file.close(); } diff --git a/mainwindow.h b/mainwindow.h index c7d9a70..1417244 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -5,6 +5,7 @@ #include #include #include +#include "data_config.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } @@ -29,7 +30,7 @@ private: //声明菜单 QMenu * button_menu; - QMap slot_type; + QMap map_slot_config; QButtonGroup * btnGroup_slot = nullptr; @@ -38,14 +39,17 @@ private: void createMenuSet(const QString& rootTitle, QPushButton* button = nullptr); void clearMenuProperties(QMenu* menu); + void readJsonFile(const QString &filePath); + private slots: - void OnButtonGroup(QAbstractButton *, bool); + void OnButtonGroup(QAbstractButton *); void onMenuActionTriggered(); void on_pushButton_slot_clicked(); void on_pushButton_chan_clicked(); void on_pushButton_alarm_clicked(); void on_pushButton_point_name_clicked(); + void on_pushButton_save_clicked(); }; #endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui index adf4f6c..650cd57 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -32,7 +32,7 @@ 100 - + 20 @@ -54,7 +54,7 @@ - + 保存 @@ -269,6 +269,9 @@ 板卡配置 + + true + @@ -282,6 +285,9 @@ 通道配置 + + true + @@ -295,6 +301,9 @@ 触发配置 + + true + @@ -308,6 +317,9 @@ 测点名称 + + true + diff --git a/seismic_monitor.ui b/seismic_monitor.ui index 6e0534b..ae79ced 100644 --- a/seismic_monitor.ui +++ b/seismic_monitor.ui @@ -16,7 +16,7 @@ - 390 + 400 80 331 381 @@ -53,13 +53,13 @@ true - + 30 50 - 37 - 18 + 51 + 21 @@ -95,13 +95,13 @@ true - + 30 50 - 37 - 18 + 51 + 21 @@ -112,7 +112,7 @@ - 150 + 140 300 45 62 @@ -150,8 +150,8 @@ 10 50 - 281 - 231 + 311 + 236 @@ -161,399 +161,615 @@ 通道3 - - - - 21 - 11 - 54 - 16 - - - - 通道3类型 - - - - - - 100 - 10 - 120 - 20 - - - - - 120 - 0 - - + - - 加速度 - + + + + + + 90 + 0 + + + + 通道3类型: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 加速度 + + + + + 速度 + + + + + 径向位移 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 速度 - + + + + + + 90 + 0 + + + + 传感器名称: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 径向位移 - + + + + + + 90 + 0 + + + + 灵敏度: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + mv/g + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 110 - 100 - 111 - 22 - - - - 32 k - + + + + + + 90 + 0 + + + + 采样率: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 32 k + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 110 - 40 - 113 - 20 - - - - - - - 20 - 120 - 251 - 71 - - - - 正常电压 - - - - - 10 - 30 - 91 - 22 - - - - 下限 - - - -30.000000000000000 - - - 30.000000000000000 - - - -21.000000000000000 - - - - - - 110 - 30 - 81 - 22 - - - - 上限 - - - -30.000000000000000 - - - 30.000000000000000 - - - 21.000000000000000 - - - - - - 200 - 32 - 58 - 16 - - - - Volts - - - - - - - 30 - 70 - 101 - 16 - - - - 灵敏度: - - - - - - 30 - 40 - 101 - 16 - - - - 传感器名称: - - - - - - 20 - 100 - 101 - 16 - - - - 采样率: - - - - - - 110 - 70 - 111 - 22 - - - - - - - mv/g - - + + + + + 220 + 80 + + + + 正常电压 + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 下限 + + + -30.000000000000000 + + + 30.000000000000000 + + + -21.000000000000000 + + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 上限 + + + -30.000000000000000 + + + 30.000000000000000 + + + 21.000000000000000 + + + + + + + Volts + + + + + + + 通道4 - - - - 21 - 11 - 54 - 16 - - - - 通道4类型 - - - - - - 90 - 10 - 120 - 20 - - - - - 120 - 0 - - + - - 加速度 - + + + + + + 90 + 0 + + + + 通道4类型: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 加速度 + + + + + 速度 + + + + + 径向位移 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 速度 - + + + + + + 90 + 0 + + + + 传感器名称: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 径向位移 - + + + + + + 90 + 0 + + + + 灵敏度: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + mv/g + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 100 - 100 - 111 - 22 - - - - 32 k - + + + + + + 90 + 0 + + + + 采样率: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 32 k + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 100 - 40 - 113 - 20 - - - - - - - 10 - 120 - 251 - 71 - - - - 正常电压 - - - - - 10 - 30 - 91 - 22 - - - - 下限 - - - -30.000000000000000 - - - 30.000000000000000 - - - -21.000000000000000 - - - - - - 110 - 30 - 81 - 22 - - - - 上限 - - - -30.000000000000000 - - - 30.000000000000000 - - - 21.000000000000000 - - - - - - 200 - 32 - 58 - 16 - - - - Volts - - - - - - - 20 - 40 - 101 - 16 - - - - 传感器名称: - - - - - - 20 - 70 - 101 - 16 - - - - 灵敏度: - - - - - - 10 - 100 - 101 - 16 - - - - 采样率: - - - - - - 100 - 70 - 111 - 22 - - - - - - - mv/g - - + + + + + 220 + 80 + + + + 正常电压 + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 下限 + + + -30.000000000000000 + + + 30.000000000000000 + + + -21.000000000000000 + + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 上限 + + + -30.000000000000000 + + + 30.000000000000000 + + + 21.000000000000000 + + + + + + + Volts + + + + + + + @@ -636,13 +852,13 @@ true - + 30 50 - 37 - 18 + 51 + 21 @@ -678,13 +894,13 @@ true - + 30 50 - 37 - 18 + 51 + 21 @@ -695,10 +911,10 @@ - 150 + 140 300 45 - 62 + 67 @@ -733,10 +949,16 @@ 10 50 - 281 - 221 + 311 + 236 + + + 16777215 + 16777215 + + 0 @@ -744,399 +966,615 @@ 通道1 - - - - 21 - 11 - 54 - 16 - - - - 通道1类型 - - - - - - 90 - 10 - 120 - 20 - - - - - 120 - 0 - - + - - 加速度 - + + + + + + 90 + 0 + + + + 通道1类型: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 加速度 + + + + + 速度 + + + + + 径向位移 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 速度 - + + + + + + 90 + 0 + + + + 传感器名称: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 径向位移 - + + + + + + 90 + 0 + + + + 灵敏度: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + mv/g + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 20 - 40 - 101 - 16 - - - - 传感器名称: - - - - - - 100 - 70 - 111 - 22 - - - - - - - mv/g - - - - - - 100 - 40 - 113 - 20 - - - - - - - 10 - 100 - 101 - 16 - - - - 采样率: - - - - - - 20 - 70 - 101 - 16 - - - - 灵敏度: - - - - - - 100 - 100 - 111 - 22 - - - - 32 k - + + + + + + 90 + 0 + + + + 采样率: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 32 k + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 10 - 120 - 251 - 71 - - - - 正常电压 - - - - - 10 - 30 - 91 - 22 - - - - 下限 - - - -30.000000000000000 - - - 30.000000000000000 - - - -21.000000000000000 - - - - - - 110 - 30 - 81 - 22 - - - - 上限 - - - -30.000000000000000 - - - 30.000000000000000 - - - 21.000000000000000 - - - - - - 200 - 32 - 58 - 16 - - - - Volts - - - + + + + + 220 + 80 + + + + 正常电压 + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 下限 + + + -30.000000000000000 + + + 30.000000000000000 + + + -21.000000000000000 + + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 上限 + + + -30.000000000000000 + + + 30.000000000000000 + + + 21.000000000000000 + + + + + + + Volts + + + + + + + 通道2 - - - - 90 - 10 - 120 - 20 - - - - - 120 - 0 - - + - - 加速度 - + + + + + + 90 + 0 + + + + 通道2类型: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 加速度 + + + + + 速度 + + + + + 径向位移 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 速度 - + + + + + + 90 + 0 + + + + 传感器名称: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - 径向位移 - + + + + + + 90 + 0 + + + + 灵敏度: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + + + mv/g + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 21 - 11 - 54 - 16 - - - - 通道2类型 - - - - - - 100 - 100 - 111 - 22 - - - - 32 k - + + + + + + 90 + 0 + + + + 采样率: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 120 + 0 + + + + + 120 + 16777215 + + + + + 32 k + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - - - 100 - 40 - 113 - 20 - - - - - - - 10 - 120 - 251 - 71 - - - - 正常电压 - - - - - 10 - 30 - 91 - 22 - - - - 下限 - - - -30.000000000000000 - - - 30.000000000000000 - - - -21.000000000000000 - - - - - - 110 - 30 - 81 - 22 - - - - 上限 - - - -30.000000000000000 - - - 30.000000000000000 - - - 21.000000000000000 - - - - - - 200 - 32 - 58 - 16 - - - - Volts - - - - - - - 20 - 40 - 101 - 16 - - - - 传感器名称: - - - - - - 20 - 70 - 101 - 16 - - - - 灵敏度: - - - - - - 10 - 100 - 101 - 16 - - - - 采样率: - - - - - - 100 - 70 - 111 - 22 - - - - - - - mv/g - - + + + + + 220 + 80 + + + + 正常电压 + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 下限 + + + -30.000000000000000 + + + 30.000000000000000 + + + -21.000000000000000 + + + + + + + + 90 + 0 + + + + + 90 + 16777215 + + + + 上限 + + + -30.000000000000000 + + + 30.000000000000000 + + + 21.000000000000000 + + + + + + + Volts + + + + + + + @@ -1158,71 +1596,10 @@ tabWidget checkBox - - - - 40 - 480 - 651 - 29 - - - - - - - 确定 - - - - - - - 设置为默认值 - - - - - - - 加载预定义模板 - - - - - - - 测点名称 - - - - - - - 取消 - - - - - - - 打印 - - - - - - - 帮助 - - - - - - 340 + 350 210 45 62 @@ -1255,6 +1632,109 @@ + + + + 10 + 480 + 738 + 37 + + + + + + + + 100 + 35 + + + + 确定 + + + + + + + + 100 + 35 + + + + 设置为默认值 + + + + + + + + 100 + 35 + + + + 加载预定义模板 + + + + + + + + 100 + 35 + + + + 测点名称 + + + + + + + + 100 + 35 + + + + 取消 + + + + + + + + 100 + 35 + + + + 打印 + + + + + + + + 100 + 35 + + + + 帮助 + + + + +