diff --git a/config_mgr.cpp b/config_mgr.cpp index 63bf5c0..2324bad 100644 --- a/config_mgr.cpp +++ b/config_mgr.cpp @@ -64,6 +64,19 @@ void ConfigMgr::Save() { voltage_range.append(ptr->base_config_[cid].normal_voltage_low); voltage_range.append(ptr->base_config_[cid].normal_voltage_high); channel_item["normal_voltage_range"] = voltage_range; + QJsonObject setpoint_data; + setpoint_data["direct_upper"] = ptr->vib_alert_danger[cid].direct_upper; + setpoint_data["direct_enable"] = ptr->vib_alert_danger[cid].direct_enable; + setpoint_data["1x_ampl_upper"] = ptr->vib_alert_danger[cid].x1_ampl_upper; + setpoint_data["1x_ampl_lower"] = ptr->vib_alert_danger[cid].x1_ampl_lower; + setpoint_data["1x_ampl_enable"] = ptr->vib_alert_danger[cid].x1_ampl_enable; + setpoint_data["2x_ampl_upper"] = ptr->vib_alert_danger[cid].x2_ampl_upper; + setpoint_data["2x_ampl_lower"] = ptr->vib_alert_danger[cid].x2_ampl_lower; + setpoint_data["2x_ampl_enable"] = ptr->vib_alert_danger[cid].x2_ampl_enable; + setpoint_data["danger_param"] = ptr->vib_alert_danger[cid].danger_param; + setpoint_data["danger_upper"] = ptr->vib_alert_danger[cid].danger_upper; + setpoint_data["danger_enable"] = ptr->vib_alert_danger[cid].danger_enable; + channel_item["setpoint"] = setpoint_data; // variables QJsonObject variables; std::shared_ptr base_channel_ptr = ptr->GetChannelPtr(cid + 1); @@ -226,6 +239,7 @@ void ConfigMgr::Save() { channel_item.insert("normal_latching", ptr->variables_[cid].normal_latching); channel_item.insert("speed_peak", ptr->variables_[cid].speed_peek); channel_item.insert("default_speed", ptr->variables_[cid].default_speed); + } else if (card_type_[i] == kCardKeyphaseSingle) { std::shared_ptr base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot); if (base_ptr == nullptr) { @@ -324,6 +338,19 @@ void ConfigMgr::Load(QString filename) { vib_data->base_config_[j].normal_voltage_low = voltage_range_array[0].toDouble(); vib_data->base_config_[j].normal_voltage_high = voltage_range_array[1].toDouble(); vib_data->base_config_[j].power = channel["power"].toBool(); + //setpoint + QJsonObject setpoint_data = channel["setpoint"].toObject(); + vib_data->vib_alert_danger[j].direct_upper = setpoint_data["direct_upper"].toDouble(); + vib_data->vib_alert_danger[j].direct_enable = setpoint_data["direct_enable"].toBool(); + vib_data->vib_alert_danger[j].x1_ampl_upper = setpoint_data["1x_ampl_upper"].toDouble(); + vib_data->vib_alert_danger[j].x1_ampl_lower = setpoint_data["1x_ampl_lower"].toDouble(); + vib_data->vib_alert_danger[j].x1_ampl_enable = setpoint_data["1x_ampl_enable"].toBool(); + vib_data->vib_alert_danger[j].x2_ampl_upper = setpoint_data["2x_ampl_upper"].toDouble(); + vib_data->vib_alert_danger[j].x2_ampl_lower = setpoint_data["2x_ampl_lower"].toDouble(); + vib_data->vib_alert_danger[j].x2_ampl_enable = setpoint_data["2x_ampl_enable"].toBool(); + vib_data->vib_alert_danger[j].danger_param = setpoint_data["danger_param"].toInt(); + vib_data->vib_alert_danger[j].danger_upper = setpoint_data["danger_upper"].toDouble(); + vib_data->vib_alert_danger[j].danger_enable = setpoint_data["danger_enable"].toBool(); // variables QJsonObject tmp_variable = channel["variable"].toObject(); switch (vib_data->base_config_[j].channel_type) { diff --git a/data_config.h b/data_config.h index de6a540..2a0b630 100644 --- a/data_config.h +++ b/data_config.h @@ -217,6 +217,39 @@ typedef struct { double scale_factor; } Transducer; +typedef struct VibAlertDanger_{ + float direct_upper; + bool direct_enable; + float x1_ampl_upper; + float x1_ampl_lower; + bool x1_ampl_enable; + float x2_ampl_upper; + float x2_ampl_lower; + bool x2_ampl_enable; + int danger_param; //0: 直接值,1: 1倍频幅值,2: 2倍频幅值 + float danger_upper; + bool danger_enable; + VibAlertDanger_(){ + direct_enable = false; + x1_ampl_enable = false; + x2_ampl_enable = false; + danger_enable = false; + } +} VibAlertDanger; + +typedef struct{ + float speed_upper; + float speed_lower; + bool speed_upper_enable; + bool speed_lower_enable; + float speed_bnd_upper; + float speed_bnd_lower; + bool speed_bnd_enable; + float danger_speed_upper; + float danger_speed_lower; + bool danger_speed_upper_enable; + bool danger_speed_lower_enable; +} SpeedAlert; #pragma pack(1) typedef struct { diff --git a/mainwindow.cpp b/mainwindow.cpp index 0b9e205..0a284de 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -434,8 +434,8 @@ void MainWindow::OnButtonGroup(QAbstractButton *slot_btn) { } if (slot_btn != NULL && ui->pushButton_alarm->isChecked()) { QString object_name = slot_btn->objectName(); - qDebug() << object_name ; - Setpoint *setpoint = new Setpoint(); + int button_id = object_name.right(object_name.length() - 15).toInt(); + Setpoint *setpoint = new Setpoint(button_id,ConfigMgr::Instance()->card_type_[button_id]); setpoint->setWindowModality(Qt::ApplicationModal); setpoint->show(); } diff --git a/mainwindow.ui b/mainwindow.ui index a0cbf12..1e5dcef 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -1128,10 +1128,11 @@ 文件 - - - - + + + + + @@ -1150,12 +1151,12 @@ - + 新建 - + 打开 @@ -1170,16 +1171,21 @@ 校时功能 - + 保存 - + 连接 + + + 断开 + + diff --git a/setpoint.cpp b/setpoint.cpp deleted file mode 100644 index 87a4cba..0000000 --- a/setpoint.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "Setpoint.h" -#include "ui_Setpoint.h" -#include "rangeslider.h" - -Setpoint::Setpoint(QWidget *parent) : - QWidget(parent), - ui(new Ui::Setpoint) -{ - ui->setupUi(this); - - QVBoxLayout *layout_direct = new QVBoxLayout(ui->widget_direct); - RangeSlider *slider_direct = new RangeSlider; - layout_direct->addWidget(slider_direct); - - QVBoxLayout *layout_1x_ampl = new QVBoxLayout(ui->widget_1x_ampl); - RangeSlider *slider_1x_ampl = new RangeSlider; - layout_1x_ampl->addWidget(slider_1x_ampl); - - QVBoxLayout *layout_2x_ampl = new QVBoxLayout(ui->widget_2x_ampl); - RangeSlider *slider_2x_ampl = new RangeSlider; - layout_2x_ampl->addWidget(slider_2x_ampl); - - QVBoxLayout *layout_danger = new QVBoxLayout(ui->widget_danger); - RangeSlider *slider_danger = new RangeSlider; - layout_danger->addWidget(slider_danger); - - - QObject::connect(ui->lineEdit_direct_upper, &QLineEdit::editingFinished, [&]() { - slider_direct->setUpperValue(ui->lineEdit_direct_upper->text().toInt()); - }); - QObject::connect(slider_direct, &RangeSlider::rangeChanged, [&](int low, int high) { - ui->lineEdit_direct_upper->setText(QString::number(high)); - }); - - QObject::connect(slider_1x_ampl, &RangeSlider::rangeChanged, [&](int low, int high) { - ui->lineEdit_1x_ampl_upper->setText(QString::number(high)); - ui->lineEdit_1x_ampl_lower->setText(QString::number(low)); - }); - QObject::connect(ui->lineEdit_1x_ampl_upper, &QLineEdit::editingFinished, [&]() { - slider_1x_ampl->setUpperValue(ui->lineEdit_1x_ampl_upper->text().toInt()); - }); - QObject::connect(ui->lineEdit_1x_ampl_lower, &QLineEdit::editingFinished, [&]() { - slider_1x_ampl->setLowerValue(ui->lineEdit_1x_ampl_lower->text().toInt()); - }); - - QObject::connect(slider_2x_ampl, &RangeSlider::rangeChanged, [&](int low, int high) { - ui->lineEdit_2x_ampl_upper->setText(QString::number(high)); - ui->lineEdit_2x_ampl_lower->setText(QString::number(low)); - }); - QObject::connect(ui->lineEdit_2x_ampl_upper, &QLineEdit::editingFinished, [&]() { - slider_1x_ampl->setUpperValue(ui->lineEdit_2x_ampl_upper->text().toInt()); - }); - QObject::connect(ui->lineEdit_2x_ampl_lower, &QLineEdit::editingFinished, [&]() { - slider_1x_ampl->setLowerValue(ui->lineEdit_2x_ampl_lower->text().toInt()); - }); - - QObject::connect(slider_danger, &RangeSlider::rangeChanged, [&](int low, int high) { - ui->lineEdit_danger_upper->setText(QString::number(high)); - }); - QObject::connect(ui->lineEdit_danger_upper, &QLineEdit::editingFinished, [&]() { - slider_danger->setUpperValue(ui->lineEdit_danger_upper->text().toInt()); - }); - - -} - -Setpoint::~Setpoint() -{ - delete ui; -} diff --git a/setpoint.h b/setpoint.h deleted file mode 100644 index ccc9212..0000000 --- a/setpoint.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef setpoint_H -#define setpoint_H - -#include - -namespace Ui { -class Setpoint; -} - -class Setpoint : public QWidget -{ - Q_OBJECT - -public: - explicit Setpoint(QWidget *parent = nullptr); - ~Setpoint(); - -private: - Ui::Setpoint *ui; -}; - -#endif // setpoint_H diff --git a/setpoint.ui b/setpoint.ui deleted file mode 100644 index c8f4da5..0000000 --- a/setpoint.ui +++ /dev/null @@ -1,530 +0,0 @@ - - - Setpoint - - - - 0 - 0 - 722 - 560 - - - - 触发配置 - - - - - 540 - 10 - 161 - 451 - - - - 危险 / 警报 2 - - - - - 10 - 30 - 69 - 22 - - - - - - - 80 - 30 - 69 - 22 - - - - - - - 20 - 72 - 36 - 16 - - - - mil pp - - - - - - 20 - 415 - 47 - 16 - - - - 启用 - - - - - - 12 - 90 - 50 - 20 - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - - - - 0 - 116 - 80 - 260 - - - - - 80 - 260 - - - - - 80 - 260 - - - - - - - - 20 - 520 - 119 - 22 - - - - - - - 槽位号2 - - - - - - - - 通道 1 - - - - - - - - - - 500 - 520 - 61 - 21 - - - - 帮助 - - - - - - 420 - 520 - 61 - 21 - - - - 打印 - - - - - - 260 - 520 - 61 - 21 - - - - 确定 - - - - - - 10 - 10 - 521 - 451 - - - - 告警 / 警报 1 - - - - - 100 - 110 - 80 - 260 - - - - - 80 - 260 - - - - - 80 - 260 - - - - - - - 121 - 41 - 54 - 16 - - - - 1倍频幅值 - - - - - - 121 - 77 - 50 - 20 - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - - - - 130 - 59 - 36 - 16 - - - - mil pp - - - - - - 120 - 380 - 50 - 20 - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - - - - 121 - 420 - 47 - 16 - - - - 启用 - - - - - - 221 - 420 - 47 - 16 - - - - 启用 - - - - - - 221 - 41 - 54 - 16 - - - - 2倍频幅值 - - - - - - 230 - 59 - 36 - 16 - - - - mil pp - - - - - - 221 - 77 - 50 - 20 - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - - - - 200 - 110 - 80 - 260 - - - - - 80 - 260 - - - - - 80 - 260 - - - - - - - 220 - 380 - 50 - 20 - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - - - - 30 - 80 - 50 - 20 - - - - - 50 - 0 - - - - - 50 - 16777215 - - - - Qt::AlignCenter - - - - - - 10 - 107 - 80 - 260 - - - - - 80 - 260 - - - - - 80 - 260 - - - - - - - 40 - 40 - 36 - 16 - - - - 直接值 - - - Qt::AlignCenter - - - - - - 40 - 60 - 36 - 16 - - - - mil pp - - - Qt::AlignCenter - - - - - - 30 - 420 - 65 - 16 - - - - 启用 - - - - - - - 340 - 520 - 61 - 21 - - - - 取消 - - - - - - 180 - 520 - 61 - 21 - - - - 复制 - - - - - - diff --git a/tachometer_data.h b/tachometer_data.h index 3ce955f..8b768bc 100644 --- a/tachometer_data.h +++ b/tachometer_data.h @@ -8,6 +8,7 @@ class TachometerData : public CardBase { TachometerData(); TachometerVariables variables_[4]; + SpeedAlert speed_alert; }; #endif // TACHOMETERDATA_H diff --git a/vibrationdata.h b/vibrationdata.h index 7a82713..da29cf4 100644 --- a/vibrationdata.h +++ b/vibrationdata.h @@ -12,6 +12,7 @@ class VibrationData : public CardBase { void RemoveChannel(int cid); SeismicMonitor base_config_[CHANNEL_COUNT]; std::vector> variables_; + VibAlertDanger vib_alert_danger[CHANNEL_COUNT]; }; #endif // VIBRATIONDATA_H