添加代码

This commit is contained in:
zhangsheng 2025-04-22 20:55:40 +08:00
parent 9f3b468afc
commit 0da25401ac
8 changed files with 207 additions and 21 deletions

View File

@ -15,8 +15,10 @@ SOURCES += \
common.cpp \ common.cpp \
config_mgr.cpp \ config_mgr.cpp \
connect.cpp \ connect.cpp \
ethconfig.cpp \
keyphase.cpp \ keyphase.cpp \
keyphase_data.cpp \ keyphase_data.cpp \
macconfig.cpp \
main.cpp \ main.cpp \
mainwindow.cpp \ mainwindow.cpp \
pointname.cpp \ pointname.cpp \
@ -45,8 +47,10 @@ HEADERS += \
connect.h \ connect.h \
data_config.h \ data_config.h \
displacement_ds.h \ displacement_ds.h \
ethconfig.h \
keyphase.h \ keyphase.h \
keyphase_data.h \ keyphase_data.h \
macconfig.h \
mainwindow.h \ mainwindow.h \
pointname.h \ pointname.h \
radial_vibration.h \ radial_vibration.h \
@ -68,7 +72,9 @@ HEADERS += \
FORMS += \ FORMS += \
acceleration.ui \ acceleration.ui \
connect.ui \ connect.ui \
ethconfig.ui \
keyphase.ui \ keyphase.ui \
macconfig.ui \
mainwindow.ui \ mainwindow.ui \
pointname.ui \ pointname.ui \
radial_vibration.ui \ radial_vibration.ui \

View File

@ -65,6 +65,7 @@ void ConfigMgr::Save(QString & file_path) {
channel_item["scale_factor"] = ptr->base_config_[cid].scale_factor; channel_item["scale_factor"] = ptr->base_config_[cid].scale_factor;
channel_item["sampling_rate"] = ptr->base_config_[cid].sampling_rate; channel_item["sampling_rate"] = ptr->base_config_[cid].sampling_rate;
channel_item["power"] = ptr->base_config_[cid].power; channel_item["power"] = ptr->base_config_[cid].power;
channel_item["point_name"] = ptr->base_config_[cid].point_name;
QJsonArray voltage_range; QJsonArray voltage_range;
voltage_range.append(ptr->base_config_[cid].normal_voltage_low); voltage_range.append(ptr->base_config_[cid].normal_voltage_low);
voltage_range.append(ptr->base_config_[cid].normal_voltage_high); voltage_range.append(ptr->base_config_[cid].normal_voltage_high);
@ -393,6 +394,7 @@ 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_low = voltage_range_array[0].toDouble();
vib_data->base_config_[j].normal_voltage_high = voltage_range_array[1].toDouble(); vib_data->base_config_[j].normal_voltage_high = voltage_range_array[1].toDouble();
vib_data->base_config_[j].power = channel["power"].toBool(); vib_data->base_config_[j].power = channel["power"].toBool();
vib_data->base_config_[j].point_name = channel["point_name"].toString();
//setpoint //setpoint
QJsonObject setpoint_data = channel["setpoint"].toObject(); QJsonObject setpoint_data = channel["setpoint"].toObject();
vib_data->alert_danger[j].direct_upper = setpoint_data["direct_upper"].toDouble(); vib_data->alert_danger[j].direct_upper = setpoint_data["direct_upper"].toDouble();

View File

@ -1,6 +1,7 @@
#include "connect.h" #include "connect.h"
#include "ui_connect.h" #include "ui_connect.h"
#include <QRegExpValidator> #include <QRegularExpression>
#include <QRegularExpressionValidator>
#include "data_config.h" #include "data_config.h"
Connect::Connect(QWidget *parent) : Connect::Connect(QWidget *parent) :
@ -9,11 +10,9 @@ Connect::Connect(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
QString exp = "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.)" QRegularExpression ipRegex(R"(^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$)");
"{3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"; QRegularExpressionValidator *ipValidator = new QRegularExpressionValidator(ipRegex, this);
QRegExp rege(exp); ui->lineEdit_IP->setValidator(ipValidator);
QValidator *Validator = new QRegExpValidator(rege);
ui->lineEdit_IP->setValidator(Validator);
} }
Connect::~Connect() Connect::~Connect()

View File

@ -23,6 +23,9 @@
#include "connect.h" #include "connect.h"
#include "tmrrelayassociation.h" #include "tmrrelayassociation.h"
#include "setpoint_tachometer.h" #include "setpoint_tachometer.h"
#include "pointname.h"
#include "ethconfig.h"
#include "macconfig.h"
QString g_strServerIp; QString g_strServerIp;
@ -90,7 +93,9 @@ MainWindow::MainWindow(QWidget *parent)
createMenu(); createMenu();
connect(btnGroup_slot, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(OnButtonGroup(QAbstractButton *))); connect(btnGroup_slot, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(OnButtonGroup(QAbstractButton *)));
QObject::connect(ui->action_connect, &QAction::triggered, this, &MainWindow::onConnect); QObject::connect(ui->action_connect, &QAction::triggered, this, &MainWindow::onConnect);
QObject::connect(ui->action_disconnect, &QAction::triggered, this, &MainWindow::onConnect); QObject::connect(ui->action_disconnect, &QAction::triggered, this, &MainWindow::onDisconnect);
QObject::connect(ui->action_eth, &QAction::triggered, this, &MainWindow::onEthConfig);
QObject::connect(ui->action_mac, &QAction::triggered, this, &MainWindow::onMACConfig);
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat); QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat);
g_strServerIp = settingsread.value("Server/IP").toString(); g_strServerIp = settingsread.value("Server/IP").toString();
@ -484,6 +489,13 @@ void MainWindow::OnButtonGroup(QAbstractButton *slot_btn) {
} }
} }
} }
if(slot_btn != NULL && ui->pushButton_point_name->isChecked()){
QString object_name = slot_btn->objectName();
int button_id = object_name.right(object_name.length() - 15).toInt();
PointName *point_name = new PointName(button_id,ConfigMgr::Instance()->card_type_[button_id - 1]);
point_name->setWindowModality(Qt::ApplicationModal);
point_name->show();
}
} }
void MainWindow::on_pushButton_slot_clicked() { void MainWindow::on_pushButton_slot_clicked() {
@ -824,3 +836,14 @@ void MainWindow::onConnect(){
void MainWindow::onDisconnect(){ void MainWindow::onDisconnect(){
m_tcpClient->disconnectFromServer(); m_tcpClient->disconnectFromServer();
} }
void MainWindow::onEthConfig(){
EthConfig *eth_config = new EthConfig();
eth_config->setWindowModality(Qt::ApplicationModal);
eth_config->show();
}
void MainWindow::onMACConfig(){
MacConfig *mac_config = new MacConfig();
mac_config->setWindowModality(Qt::ApplicationModal);
mac_config->show();
}

View File

@ -68,6 +68,8 @@ private slots:
void OnButtonGroup(QAbstractButton *); void OnButtonGroup(QAbstractButton *);
void onConnect(); void onConnect();
void onDisconnect(); void onDisconnect();
void onEthConfig();
void onMACConfig();
void onMenuActionTriggered(); void onMenuActionTriggered();
void on_pushButton_slot_clicked(); void on_pushButton_slot_clicked();

View File

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>MainWindow</string> <string>TSI_Config</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
@ -1146,6 +1146,7 @@
<addaction name="action_realy"/> <addaction name="action_realy"/>
<addaction name="action_time"/> <addaction name="action_time"/>
<addaction name="action_eth"/> <addaction name="action_eth"/>
<addaction name="action_mac"/>
</widget> </widget>
<addaction name="menu_start"/> <addaction name="menu_start"/>
<addaction name="menu_tool"/> <addaction name="menu_tool"/>
@ -1192,6 +1193,11 @@
<string>网络配置</string> <string>网络配置</string>
</property> </property>
</action> </action>
<action name="action_mac">
<property name="text">
<string>MAC配置</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -2,6 +2,9 @@
#include "ui_setpoint.h" #include "ui_setpoint.h"
#include "config_mgr.h" #include "config_mgr.h"
#include <QDebug> #include <QDebug>
#include "displacement_ds.h"
#include "acceleration_ds.h"
#include "velocity_ds.h"
Setpoint::Setpoint(int slot_no_,int cardtype,QWidget *parent) : Setpoint::Setpoint(int slot_no_,int cardtype,QWidget *parent) :
QWidget(parent), QWidget(parent),
@ -56,9 +59,157 @@ void Setpoint::Init(){
slider_direct->setRange(0,20); slider_direct->setRange(0,20);
slider_1x_ampl->setRange(0,20); slider_1x_ampl->setRange(0,20);
slider_2x_ampl->setRange(0,20); slider_2x_ampl->setRange(0,20);
slider_danger->setRange(0,20);
int chan = ui->comboBox_chan->currentIndex(); int chan = ui->comboBox_chan->currentIndex();
std::shared_ptr<VibrationData> setpoint_data = std::dynamic_pointer_cast<VibrationData>(base_ptr); std::shared_ptr<VibrationData> setpoint_data = std::dynamic_pointer_cast<VibrationData>(base_ptr);
std::vector<std::shared_ptr<VariableBase>> variable_ = setpoint_data->variables_;
if(setpoint_data->base_config_[chan].channel_type == kVibRadial){
for (int var = 0; var < variable_.size(); ++var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,100);
slider_danger->setRange(0,100);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,150);
slider_danger->setRange(0,150);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,200);
slider_danger->setRange(0,200);
}else if(variable_[var]->direct_.full_scale_range == 3){
slider_direct->setRange(0,400);
slider_danger->setRange(0,400);
}else if(variable_[var]->direct_.full_scale_range == 4){
slider_direct->setRange(0,500);
slider_danger->setRange(0,500);
}
ui->label_direct->setText("um");
ui->label_danger->setText("um");
}
}
if(setpoint_data->base_config_[chan].channel_type == kVibAcc){
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);
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,20);
slider_danger->setRange(0,20);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,50);
slider_danger->setRange(0,50);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,100);
slider_danger->setRange(0,100);
}else if(variable_[var]->direct_.full_scale_range == 3){
slider_direct->setRange(0,200);
slider_danger->setRange(0,200);
}else if(variable_[var]->direct_.full_scale_range == 4){
slider_direct->setRange(0,250);
slider_danger->setRange(0,250);
}else if(variable_[var]->direct_.full_scale_range == 5){
slider_direct->setRange(0,400);
slider_danger->setRange(0,400);
}
ui->label_direct->setText("m/s^2 pk");
ui->label_danger->setText("m/s^2 pk");
}
if(av_ptr->rms_active_){
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,20);
slider_danger->setRange(0,20);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,50);
slider_danger->setRange(0,50);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,100);
slider_danger->setRange(0,100);
}else if(variable_[var]->direct_.full_scale_range == 3){
slider_direct->setRange(0,200);
slider_danger->setRange(0,200);
}
ui->label_direct->setText("m/s^2 rms");
ui->label_danger->setText("m/s^2 rms");
}
}
if(av_ptr->integrate_active_){
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,25);
slider_danger->setRange(0,25);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,50);
slider_danger->setRange(0,50);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,100);
slider_danger->setRange(0,100);
}
ui->label_direct->setText("mm/s pk");
ui->label_danger->setText("mm/s pk");
}
}
if(av_ptr->rms_active_ && av_ptr->integrate_active_){
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,25);
slider_danger->setRange(0,25);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,50);
slider_danger->setRange(0,50);
}
ui->label_direct->setText("mm/s rms");
ui->label_danger->setText("mm/s rms");
}
}
}
if(setpoint_data->base_config_[chan].channel_type == kVibVelocity){
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);
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,10);
slider_danger->setRange(0,10);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,20);
slider_danger->setRange(0,20);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,50);
slider_danger->setRange(0,50);
}
ui->label_direct->setText("mm/s pk");
ui->label_danger->setText("mm/s pk");
}
if(av_ptr->rms_active_){
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,10);
slider_danger->setRange(0,10);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,20);
slider_danger->setRange(0,20);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,50);
slider_danger->setRange(0,50);
}
ui->label_direct->setText("mm/s rms");
ui->label_danger->setText("mm/s rms");
}
}
if(av_ptr->integrate_active_){
for (int var = 0; var < variable_.size(); ++ var) {
if(variable_[var]->direct_.full_scale_range == 0){
slider_direct->setRange(0,100);
slider_danger->setRange(0,100);
}else if(variable_[var]->direct_.full_scale_range == 1){
slider_direct->setRange(0,200);
slider_danger->setRange(0,200);
}else if(variable_[var]->direct_.full_scale_range == 2){
slider_direct->setRange(0,500);
slider_danger->setRange(0,500);
}
ui->label_direct->setText("um pp");
ui->label_danger->setText("um pp");
}
}
}
ui->lineEdit_direct_upper->setText(QString::number(setpoint_data->alert_danger[chan].direct_upper)); ui->lineEdit_direct_upper->setText(QString::number(setpoint_data->alert_danger[chan].direct_upper));
ui->checkBox_direct->setChecked(setpoint_data->alert_danger[chan].direct_enable); ui->checkBox_direct->setChecked(setpoint_data->alert_danger[chan].direct_enable);
if(setpoint_data->alert_danger[chan].direct_upper > 0){ if(setpoint_data->alert_danger[chan].direct_upper > 0){
@ -85,10 +236,6 @@ void Setpoint::Init(){
slider_danger->m_lower = 0; slider_danger->m_lower = 0;
} }
}break; }break;
case kCardSpeedSingle:{
slider_direct->setRange(0,5000);
}break;
} }
QObject::connect(ui->lineEdit_direct_upper, &QLineEdit::editingFinished, [&]() { QObject::connect(ui->lineEdit_direct_upper, &QLineEdit::editingFinished, [&]() {
slider_direct->setUpperValue(ui->lineEdit_direct_upper->text().toFloat()); slider_direct->setUpperValue(ui->lineEdit_direct_upper->text().toFloat());
@ -199,3 +346,4 @@ void Setpoint::onComboBoxIndexChanged(int index){
slider_danger->m_upper = vib_alert_ptr->alert_danger[index].danger_upper; slider_danger->m_upper = vib_alert_ptr->alert_danger[index].danger_upper;
} }
} }

View File

@ -50,7 +50,7 @@
</property> </property>
</item> </item>
</widget> </widget>
<widget class="QLabel" name="label_19"> <widget class="QLabel" name="label_danger">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>20</x>
@ -60,7 +60,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>mil pp</string> <string>- -</string>
</property> </property>
</widget> </widget>
<widget class="QCheckBox" name="checkBox_danger"> <widget class="QCheckBox" name="checkBox_danger">
@ -314,7 +314,7 @@
</size> </size>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_25"> <widget class="QLabel" name="label_1x">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>130</x> <x>130</x>
@ -324,7 +324,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>mil pp</string> <string>- -</string>
</property> </property>
</widget> </widget>
<widget class="QLineEdit" name="lineEdit_1x_ampl_lower"> <widget class="QLineEdit" name="lineEdit_1x_ampl_lower">
@ -388,7 +388,7 @@
<string>2倍频幅值</string> <string>2倍频幅值</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_31"> <widget class="QLabel" name="label_2x">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>230</x> <x>230</x>
@ -398,7 +398,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>mil pp</string> <string>- -</string>
</property> </property>
</widget> </widget>
<widget class="QLineEdit" name="lineEdit_2x_ampl_upper"> <widget class="QLineEdit" name="lineEdit_2x_ampl_upper">
@ -530,7 +530,7 @@
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_22"> <widget class="QLabel" name="label_direct">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>40</x> <x>40</x>
@ -540,7 +540,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>mil pp</string> <string>- -</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>