2025-04-17 14:06:21 +08:00
|
|
|
#include "setpoint.h"
|
|
|
|
#include "ui_setpoint.h"
|
|
|
|
#include "config_mgr.h"
|
|
|
|
#include <QDebug>
|
2025-04-22 20:55:40 +08:00
|
|
|
#include "displacement_ds.h"
|
|
|
|
#include "acceleration_ds.h"
|
|
|
|
#include "velocity_ds.h"
|
2025-04-25 14:28:27 +08:00
|
|
|
#include <QListView>
|
2025-05-15 18:09:43 +08:00
|
|
|
#include <QMessageBox>
|
2025-04-17 14:06:21 +08:00
|
|
|
|
|
|
|
Setpoint::Setpoint(int slot_no_,int cardtype,QWidget *parent) :
|
|
|
|
QWidget(parent),
|
|
|
|
ui(new Ui::Setpoint)
|
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
|
|
|
slot_no = slot_no_;
|
|
|
|
car_type = static_cast<CardType>(cardtype);
|
|
|
|
ui->label_slot->setText(QString::number(slot_no));
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->comboBox_chan->setView(new QListView());
|
|
|
|
ui->comboBox_danger->setView(new QListView());
|
2025-04-17 14:06:21 +08:00
|
|
|
Init();
|
2025-04-19 16:25:33 +08:00
|
|
|
connect(ui->comboBox_chan, QOverload<int>::of(&QComboBox::currentIndexChanged),
|
|
|
|
this, &Setpoint::onComboBoxIndexChanged);
|
|
|
|
current_index = ui->comboBox_chan->currentIndex();
|
2025-04-17 14:06:21 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
Setpoint::~Setpoint()
|
|
|
|
{
|
2025-07-09 20:24:50 +08:00
|
|
|
if(slider_1st != nullptr)
|
|
|
|
delete slider_1st;
|
|
|
|
if(slider_2nd != nullptr)
|
|
|
|
delete slider_2nd;
|
|
|
|
if(slider_3rd != nullptr)
|
|
|
|
delete slider_3rd;
|
2025-04-17 14:06:21 +08:00
|
|
|
if(slider_danger != nullptr)
|
|
|
|
delete slider_danger;
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
void Setpoint::Init(){
|
|
|
|
|
|
|
|
QVBoxLayout *layout_direct = new QVBoxLayout(ui->widget_direct);
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st = new RangeSlider;
|
|
|
|
layout_direct->addWidget(slider_1st);
|
2025-04-17 14:06:21 +08:00
|
|
|
|
|
|
|
QVBoxLayout *layout_1x_ampl = new QVBoxLayout(ui->widget_1x_ampl);
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_2nd = new RangeSlider;
|
|
|
|
layout_1x_ampl->addWidget(slider_2nd);
|
2025-04-17 14:06:21 +08:00
|
|
|
|
|
|
|
QVBoxLayout *layout_2x_ampl = new QVBoxLayout(ui->widget_2x_ampl);
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_3rd = new RangeSlider;
|
|
|
|
layout_2x_ampl->addWidget(slider_3rd);
|
2025-04-17 14:06:21 +08:00
|
|
|
|
|
|
|
QVBoxLayout *layout_danger = new QVBoxLayout(ui->widget_danger);
|
2025-04-19 16:25:33 +08:00
|
|
|
slider_danger = new RangeSlider(1);
|
2025-04-17 14:06:21 +08:00
|
|
|
layout_danger->addWidget(slider_danger);
|
|
|
|
|
|
|
|
std::shared_ptr<CardBase> base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot_no);
|
2025-04-25 14:28:27 +08:00
|
|
|
|
2025-04-17 14:06:21 +08:00
|
|
|
switch (car_type) {
|
|
|
|
case kCardVibSingle:{
|
2025-07-09 20:24:50 +08:00
|
|
|
update();
|
2025-04-17 14:06:21 +08:00
|
|
|
}break;
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(ui->lineEdit_1st_upper, &QLineEdit::editingFinished, [&]() {
|
|
|
|
slider_1st->setUpperValue(ui->lineEdit_1st_upper->text().toFloat());
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(slider_1st, &RangeSlider::rangeChanged, [&](float low,float high) {
|
|
|
|
ui->lineEdit_1st_upper->setText(QString::number(high));
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
|
|
|
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(slider_2nd, &RangeSlider::rangeChanged, [&](float low, float high) {
|
|
|
|
ui->lineEdit_2nd_upper->setText(QString::number(high));
|
|
|
|
ui->lineEdit_2nd_lower->setText(QString::number(low));
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(ui->lineEdit_2nd_upper, &QLineEdit::editingFinished, [&]() {
|
|
|
|
slider_2nd->setUpperValue(ui->lineEdit_2nd_upper->text().toFloat());
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(ui->lineEdit_2nd_lower, &QLineEdit::editingFinished, [&]() {
|
|
|
|
slider_2nd->setLowerValue(ui->lineEdit_2nd_lower->text().toFloat());
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
|
|
|
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(slider_3rd, &RangeSlider::rangeChanged, [&](float low, float high) {
|
|
|
|
ui->lineEdit_3rd_upper->setText(QString::number(high));
|
|
|
|
ui->lineEdit_3rd_lower->setText(QString::number(low));
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(ui->lineEdit_3rd_upper, &QLineEdit::editingFinished, [&]() {
|
|
|
|
slider_2nd->setUpperValue(ui->lineEdit_3rd_upper->text().toFloat());
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
2025-07-09 20:24:50 +08:00
|
|
|
QObject::connect(ui->lineEdit_3rd_lower, &QLineEdit::editingFinished, [&]() {
|
|
|
|
slider_2nd->setLowerValue(ui->lineEdit_3rd_lower->text().toFloat());
|
2025-04-17 14:06:21 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
QObject::connect(slider_danger, &RangeSlider::rangeChanged, [&](float low,float 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().toFloat());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
void Setpoint::on_pushButton_confirm_clicked()
|
|
|
|
{
|
2025-04-19 16:25:33 +08:00
|
|
|
|
2025-07-09 20:24:50 +08:00
|
|
|
std::shared_ptr<CardBase> base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot_no);
|
|
|
|
std::shared_ptr<VibrationData> setpoint_data = std::dynamic_pointer_cast<VibrationData>(base_ptr);
|
|
|
|
if(setpoint_data->base_config_[current_index].channel_type == kVibPressurePulsation){
|
|
|
|
setpoint_data->alert_danger_press[current_index].low_upper = ui->lineEdit_1st_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].low_enable = ui->checkBox_1st->checkState();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid1_upper = ui->lineEdit_2nd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid1_enable = ui->checkBox_2nd->checkState();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid2_upper = ui->lineEdit_3rd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid2_enable = ui->checkBox_3rd->checkState();
|
|
|
|
setpoint_data->alert_danger_press[current_index].danger_param = ui->comboBox_danger->currentIndex();
|
|
|
|
setpoint_data->alert_danger_press[current_index].danger_upper = ui->lineEdit_danger_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].danger_enable = ui->checkBox_danger->checkState();
|
|
|
|
}else{
|
|
|
|
setpoint_data->alert_danger[current_index].direct_upper = ui->lineEdit_1st_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].direct_enable = ui->checkBox_1st->checkState();
|
|
|
|
setpoint_data->alert_danger[current_index].x1_ampl_upper = ui->lineEdit_2nd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x1_ampl_lower = ui->lineEdit_2nd_lower->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x1_ampl_enable = ui->checkBox_2nd->checkState();
|
|
|
|
setpoint_data->alert_danger[current_index].x2_ampl_upper = ui->lineEdit_3rd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x2_ampl_lower = ui->lineEdit_3rd_lower->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x2_ampl_enable = ui->checkBox_3rd->checkState();
|
|
|
|
setpoint_data->alert_danger[current_index].danger_param = ui->comboBox_danger->currentIndex();
|
|
|
|
setpoint_data->alert_danger[current_index].danger_upper = ui->lineEdit_danger_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].danger_enable = ui->checkBox_danger->checkState();
|
|
|
|
}
|
2025-04-17 14:06:21 +08:00
|
|
|
this->close();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Setpoint::on_pushButton_cancel_clicked()
|
|
|
|
{
|
|
|
|
this->close();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Setpoint::on_pushButton_set_default_clicked()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
2025-04-19 16:25:33 +08:00
|
|
|
void Setpoint::onComboBoxIndexChanged(int index){
|
|
|
|
|
2025-07-09 20:24:50 +08:00
|
|
|
std::shared_ptr<CardBase> base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot_no);
|
|
|
|
std::shared_ptr<VibrationData> setpoint_data = std::dynamic_pointer_cast<VibrationData>(base_ptr);
|
|
|
|
if(setpoint_data->base_config_[current_index].channel_type == kVibPressurePulsation){
|
|
|
|
setpoint_data->alert_danger_press[current_index].low_upper = ui->lineEdit_1st_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].low_enable = ui->checkBox_1st->checkState();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid1_upper = ui->lineEdit_2nd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid1_enable = ui->checkBox_2nd->checkState();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid2_upper = ui->lineEdit_3rd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].mid2_enable = ui->checkBox_3rd->checkState();
|
|
|
|
setpoint_data->alert_danger_press[current_index].danger_param = ui->comboBox_danger->currentIndex();
|
|
|
|
setpoint_data->alert_danger_press[current_index].danger_upper = ui->lineEdit_danger_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger_press[current_index].danger_enable = ui->checkBox_danger->checkState();
|
|
|
|
}else{
|
|
|
|
setpoint_data->alert_danger[current_index].direct_upper = ui->lineEdit_1st_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].direct_enable = ui->checkBox_1st->checkState();
|
|
|
|
setpoint_data->alert_danger[current_index].x1_ampl_upper = ui->lineEdit_2nd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x1_ampl_lower = ui->lineEdit_2nd_lower->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x1_ampl_enable = ui->checkBox_2nd->checkState();
|
|
|
|
setpoint_data->alert_danger[current_index].x2_ampl_upper = ui->lineEdit_3rd_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x2_ampl_lower = ui->lineEdit_3rd_lower->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].x2_ampl_enable = ui->checkBox_3rd->checkState();
|
|
|
|
setpoint_data->alert_danger[current_index].danger_param = ui->comboBox_danger->currentIndex();
|
|
|
|
setpoint_data->alert_danger[current_index].danger_upper = ui->lineEdit_danger_upper->text().toFloat();
|
|
|
|
setpoint_data->alert_danger[current_index].danger_enable = ui->checkBox_danger->checkState();
|
|
|
|
}
|
2025-04-19 16:25:33 +08:00
|
|
|
current_index = index;
|
2025-04-23 14:44:58 +08:00
|
|
|
update();
|
2025-07-09 20:24:50 +08:00
|
|
|
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
|
|
|
void Setpoint::update()
|
|
|
|
{
|
|
|
|
int chan = ui->comboBox_chan->currentIndex();
|
|
|
|
std::shared_ptr<CardBase> base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot_no);
|
|
|
|
std::shared_ptr<VibrationData> setpoint_data = std::dynamic_pointer_cast<VibrationData>(base_ptr);
|
|
|
|
std::vector<std::shared_ptr<VariableBase>> variable_ = setpoint_data->variables_;
|
2025-05-15 18:09:43 +08:00
|
|
|
if(variable_.size() <= 0 )
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, QStringLiteral("提示"), "请先配置完通道参数!");
|
|
|
|
return;
|
|
|
|
}
|
2025-04-25 14:28:27 +08:00
|
|
|
if(!variable_[chan]->x1_.checked){
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->checkBox_1st->setEnabled(false);
|
|
|
|
ui->lineEdit_2nd_lower->setEnabled(false);
|
|
|
|
ui->lineEdit_2nd_upper->setEnabled(false);
|
2025-04-25 14:28:27 +08:00
|
|
|
}
|
|
|
|
if(!variable_[chan]->x2_.checked){
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->checkBox_2nd->setEnabled(false);
|
|
|
|
ui->lineEdit_3rd_upper->setEnabled(false);
|
|
|
|
ui->lineEdit_3rd_lower->setEnabled(false);
|
2025-04-25 14:28:27 +08:00
|
|
|
}
|
2025-04-23 14:44:58 +08:00
|
|
|
if(setpoint_data->base_config_[chan].channel_type == kVibRadial){
|
2025-07-09 20:24:50 +08:00
|
|
|
EnableNormal();
|
|
|
|
ShowSlider();
|
2025-04-25 14:28:27 +08:00
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,100);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,100);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,150);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,150);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,200);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,200);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 3){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,400);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,400);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 4){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,500);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,500);
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("um");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("um");
|
|
|
|
|
2025-07-06 16:31:13 +08:00
|
|
|
}
|
|
|
|
if(setpoint_data->base_config_[chan].channel_type == kVibThrust){
|
2025-07-09 20:24:50 +08:00
|
|
|
EnableNormal();
|
|
|
|
ui->label_2nd->hide();
|
|
|
|
ui->label_unit_2nd->hide();
|
|
|
|
ui->lineEdit_2nd_upper->hide();
|
2025-07-06 16:31:13 +08:00
|
|
|
ui->widget_1x_ampl->hide();
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->lineEdit_2nd_lower->hide();
|
|
|
|
ui->checkBox_2nd->hide();
|
|
|
|
ui->label_3rd->hide();
|
|
|
|
ui->label_unit_3rd->hide();
|
|
|
|
ui->lineEdit_3rd_upper->hide();
|
2025-07-06 16:31:13 +08:00
|
|
|
ui->widget_2x_ampl->hide();
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->lineEdit_3rd_lower->hide();
|
|
|
|
ui->checkBox_3rd->hide();
|
|
|
|
ui->label_unit_1st->setText("mil");
|
2025-07-06 16:31:13 +08:00
|
|
|
ui->label_danger->setText("mil");
|
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(-25,25);
|
2025-07-06 16:31:13 +08:00
|
|
|
slider_danger->setRange(-25,25);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(-30,30);
|
2025-07-06 16:31:13 +08:00
|
|
|
slider_danger->setRange(-30,30);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(-40,40);
|
2025-07-06 16:31:13 +08:00
|
|
|
slider_danger->setRange(-40,40);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 3){
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("mm");
|
2025-07-06 16:31:13 +08:00
|
|
|
ui->label_danger->setText("mm");
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(-0.5,0.5);
|
2025-07-06 16:31:13 +08:00
|
|
|
slider_danger->setRange(-0.5,0.5);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 4){
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("mm");
|
2025-07-06 16:31:13 +08:00
|
|
|
ui->label_danger->setText("mm");
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(-1,1);
|
2025-07-06 16:31:13 +08:00
|
|
|
slider_danger->setRange(-1,1);
|
|
|
|
}
|
2025-04-19 16:25:33 +08:00
|
|
|
}
|
2025-04-23 14:44:58 +08:00
|
|
|
if(setpoint_data->base_config_[chan].channel_type == kVibAcc){
|
2025-07-09 20:24:50 +08:00
|
|
|
EnableNormal();
|
|
|
|
ShowSlider();
|
2025-04-23 14:44:58 +08:00
|
|
|
std::shared_ptr<VariableBase> base_channel_ptr = setpoint_data->GetChannelPtr(chan + 1);
|
|
|
|
std::shared_ptr<AccVelVariable> av_ptr = std::dynamic_pointer_cast<AccVelVariable>(base_channel_ptr);
|
2025-04-25 14:28:27 +08:00
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,20);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,20);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,50);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,50);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,100);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,100);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 3){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,200);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,200);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 4){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,250);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,250);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 5){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,400);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,400);
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("m/s^2 pk");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("m/s^2 pk");
|
|
|
|
|
|
|
|
if(av_ptr->rms_active_){
|
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,20);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,20);
|
2025-04-25 14:28:27 +08:00
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,50);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,50);
|
2025-04-25 14:28:27 +08:00
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,100);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,100);
|
2025-04-25 14:28:27 +08:00
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 3){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,200);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,200);
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("m/s^2 rms");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("m/s^2 rms");
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-04-25 14:28:27 +08:00
|
|
|
|
2025-04-23 14:44:58 +08:00
|
|
|
if(av_ptr->integrate_active_){
|
2025-04-25 14:28:27 +08:00
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,25);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,25);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,50);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,50);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,100);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,100);
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("mm/s pk");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("mm/s pk");
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-04-25 14:28:27 +08:00
|
|
|
|
2025-04-23 14:44:58 +08:00
|
|
|
if(av_ptr->rms_active_ && av_ptr->integrate_active_){
|
2025-04-25 14:28:27 +08:00
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,25);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,25);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,50);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,50);
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("mm/s rms");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("mm/s rms");
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-04-25 14:28:27 +08:00
|
|
|
|
2025-04-19 16:25:33 +08:00
|
|
|
}
|
2025-04-23 14:44:58 +08:00
|
|
|
if(setpoint_data->base_config_[chan].channel_type == kVibVelocity){
|
2025-07-09 20:24:50 +08:00
|
|
|
EnableNormal();
|
|
|
|
ShowSlider();
|
2025-04-23 14:44:58 +08:00
|
|
|
std::shared_ptr<VariableBase> base_channel_ptr = setpoint_data->GetChannelPtr(chan + 1);
|
|
|
|
std::shared_ptr<AccVelVariable> av_ptr = std::dynamic_pointer_cast<AccVelVariable>(base_channel_ptr);
|
2025-04-25 14:28:27 +08:00
|
|
|
|
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,10);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,10);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,20);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,20);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,50);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,50);
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("mm/s pk");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("mm/s pk");
|
|
|
|
|
|
|
|
if(av_ptr->rms_active_){
|
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,10);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,10);
|
2025-04-25 14:28:27 +08:00
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,20);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,20);
|
2025-04-25 14:28:27 +08:00
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,50);
|
2025-04-23 14:44:58 +08:00
|
|
|
slider_danger->setRange(0,50);
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("mm/s rms");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("mm/s rms");
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-04-25 14:28:27 +08:00
|
|
|
|
2025-04-23 14:44:58 +08:00
|
|
|
if(av_ptr->integrate_active_){
|
2025-04-25 14:28:27 +08:00
|
|
|
if(variable_[chan]->direct_.full_scale_range == 0){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,100);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,100);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 1){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,200);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,200);
|
|
|
|
}else if(variable_[chan]->direct_.full_scale_range == 2){
|
2025-07-09 20:24:50 +08:00
|
|
|
slider_1st->setRange(0,500);
|
2025-04-25 14:28:27 +08:00
|
|
|
slider_danger->setRange(0,500);
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
ui->label_unit_1st->setText("um pp");
|
2025-04-25 14:28:27 +08:00
|
|
|
ui->label_danger->setText("um pp");
|
2025-04-23 14:44:58 +08:00
|
|
|
}
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
if(setpoint_data->base_config_[chan].channel_type == kVibPressurePulsation){
|
|
|
|
ShowSlider();
|
|
|
|
ui->label_1st->setText("低频段");
|
|
|
|
ui->label_2nd->setText("中1频段");
|
|
|
|
ui->label_3rd->setText("中2频段");
|
|
|
|
ui->comboBox_danger->clear();
|
|
|
|
ui->comboBox_danger->addItem("全频段");
|
|
|
|
ui->checkBox_1st->setEnabled(true);
|
|
|
|
ui->checkBox_2nd->setEnabled(true);
|
|
|
|
ui->checkBox_3rd->setEnabled(true);
|
|
|
|
ui->lineEdit_2nd_lower->hide();
|
|
|
|
ui->lineEdit_2nd_upper->setEnabled(true);
|
|
|
|
ui->lineEdit_3rd_lower->hide();
|
|
|
|
ui->lineEdit_3rd_upper->setEnabled(true);
|
|
|
|
ui->label_unit_1st->setText("kPa");
|
|
|
|
ui->label_unit_2nd->setText("kPa");
|
|
|
|
ui->label_unit_3rd->setText("kPa");
|
|
|
|
ui->label_danger->setText("kPa");
|
|
|
|
slider_1st->setRange(0,10);
|
|
|
|
slider_2nd->setRange(0,10);
|
|
|
|
slider_3rd->setRange(0,10);
|
|
|
|
slider_danger->setRange(0,40);
|
|
|
|
ui->lineEdit_1st_upper->setText(QString::number(setpoint_data->alert_danger_press[chan].low_upper));
|
|
|
|
ui->checkBox_1st->setChecked(setpoint_data->alert_danger_press[chan].low_enable);
|
|
|
|
if(setpoint_data->alert_danger_press[chan].low_upper > 0){
|
|
|
|
slider_1st->m_upper = setpoint_data->alert_danger_press[chan].low_upper;
|
|
|
|
slider_1st->m_lower = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
ui->lineEdit_2nd_upper->setText(QString::number(setpoint_data->alert_danger_press[chan].mid1_upper));
|
|
|
|
ui->checkBox_2nd->setChecked(setpoint_data->alert_danger_press[chan].mid1_enable);
|
|
|
|
if(setpoint_data->alert_danger_press[chan].mid1_upper > 0){
|
|
|
|
slider_2nd->m_upper = setpoint_data->alert_danger_press[chan].mid1_upper;
|
|
|
|
slider_2nd->m_lower = 0;
|
|
|
|
}
|
|
|
|
ui->lineEdit_3rd_upper->setText(QString::number(setpoint_data->alert_danger_press[chan].mid2_upper));
|
|
|
|
ui->checkBox_3rd->setChecked(setpoint_data->alert_danger_press[chan].mid2_enable);
|
|
|
|
if(setpoint_data->alert_danger_press[chan].mid2_upper > 0){
|
|
|
|
slider_3rd->m_upper = setpoint_data->alert_danger_press[chan].mid2_upper;
|
|
|
|
slider_3rd->m_lower = 0;
|
|
|
|
}
|
|
|
|
ui->lineEdit_danger_upper->setText(QString::number(setpoint_data->alert_danger_press[chan].danger_upper));
|
|
|
|
ui->checkBox_danger->setChecked(setpoint_data->alert_danger_press[chan].danger_enable);
|
|
|
|
if(setpoint_data->alert_danger_press[chan].danger_upper > 0){
|
|
|
|
slider_danger->m_upper = setpoint_data->alert_danger_press[chan].danger_upper;
|
|
|
|
slider_danger->m_lower = 0;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
ui->lineEdit_1st_upper->setText(QString::number(setpoint_data->alert_danger[chan].direct_upper));
|
|
|
|
ui->checkBox_1st->setChecked(setpoint_data->alert_danger[chan].direct_enable);
|
|
|
|
if(setpoint_data->alert_danger[chan].direct_upper > 0){
|
|
|
|
slider_1st->m_upper = setpoint_data->alert_danger[chan].direct_upper;
|
|
|
|
slider_1st->m_lower = 0;
|
|
|
|
}
|
|
|
|
ui->lineEdit_2nd_upper->setText(QString::number(setpoint_data->alert_danger[chan].x1_ampl_upper));
|
|
|
|
ui->lineEdit_2nd_lower->setText(QString::number(setpoint_data->alert_danger[chan].x1_ampl_lower));
|
|
|
|
ui->checkBox_2nd->setChecked(setpoint_data->alert_danger[chan].x1_ampl_enable);
|
|
|
|
if(setpoint_data->alert_danger[chan].x1_ampl_upper > 0 && setpoint_data->alert_danger[chan].x1_ampl_lower > 0){
|
|
|
|
slider_2nd->m_upper = setpoint_data->alert_danger[chan].x1_ampl_upper;
|
|
|
|
slider_2nd->m_lower = setpoint_data->alert_danger[chan].x1_ampl_lower;
|
|
|
|
}
|
|
|
|
ui->lineEdit_3rd_upper->setText(QString::number(setpoint_data->alert_danger[chan].x2_ampl_upper));
|
|
|
|
ui->lineEdit_3rd_lower->setText(QString::number(setpoint_data->alert_danger[chan].x2_ampl_lower));
|
|
|
|
ui->checkBox_3rd->setChecked(setpoint_data->alert_danger[chan].x2_ampl_enable);
|
|
|
|
if(setpoint_data->alert_danger[chan].x2_ampl_upper > 0 && setpoint_data->alert_danger[chan].x2_ampl_lower > 0){
|
|
|
|
slider_3rd->m_upper = setpoint_data->alert_danger[chan].x2_ampl_upper;
|
|
|
|
slider_3rd->m_lower = setpoint_data->alert_danger[chan].x2_ampl_lower;
|
|
|
|
}
|
|
|
|
ui->lineEdit_danger_upper->setText(QString::number(setpoint_data->alert_danger[chan].danger_upper));
|
|
|
|
ui->checkBox_danger->setChecked(setpoint_data->alert_danger[chan].danger_enable);
|
|
|
|
if(setpoint_data->alert_danger[chan].danger_upper > 0){
|
|
|
|
slider_danger->m_upper = setpoint_data->alert_danger[chan].danger_upper;
|
|
|
|
slider_danger->m_lower = 0;
|
|
|
|
}
|
2025-04-19 16:25:33 +08:00
|
|
|
}
|
|
|
|
}
|
2025-07-09 20:24:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
void Setpoint::EnableNormal(){
|
|
|
|
ui->label_1st->setText("直接值");
|
|
|
|
ui->label_2nd->setText("1倍频幅值");
|
|
|
|
ui->label_3rd->setText("2倍频幅值");
|
|
|
|
ui->comboBox_danger->clear();
|
|
|
|
QStringList items = {"直接值", "1倍频幅值", "2倍频幅值"};
|
|
|
|
ui->comboBox_danger->addItems(items);
|
|
|
|
ui->checkBox_2nd->setChecked(false);
|
|
|
|
ui->checkBox_3rd->setChecked(false);
|
|
|
|
ui->label_unit_2nd->setText("- -");
|
|
|
|
ui->label_unit_3rd->setText("- -");
|
|
|
|
}
|
|
|
|
|
|
|
|
void Setpoint::ShowSlider(){
|
|
|
|
ui->label_2nd->show();
|
|
|
|
ui->label_unit_2nd->show();
|
|
|
|
ui->lineEdit_2nd_upper->show();
|
|
|
|
ui->widget_1x_ampl->show();
|
|
|
|
ui->lineEdit_2nd_lower->show();
|
|
|
|
ui->checkBox_1st->show();
|
|
|
|
|
|
|
|
ui->label_3rd->show();
|
|
|
|
ui->label_unit_3rd->show();
|
|
|
|
ui->lineEdit_3rd_upper->show();
|
|
|
|
ui->widget_2x_ampl->show();
|
|
|
|
ui->lineEdit_3rd_lower->show();
|
|
|
|
ui->checkBox_2nd->show();
|
|
|
|
}
|