添加文件
This commit is contained in:
parent
7d2e4714f0
commit
82d84a75e4
43
common.cpp
Normal file
43
common.cpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QTextStream>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QDateTime>
|
||||||
|
|
||||||
|
Common::Common() {}
|
||||||
|
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
||||||
|
{
|
||||||
|
// 获取当前日期,并以 "yyyy-MM-dd" 格式创建文件名
|
||||||
|
QString date = QDateTime::currentDateTime().toString("yyyy-MM-dd");
|
||||||
|
QString logFileName = QCoreApplication::applicationDirPath() + "\\log\\" + date + ".log"; // 日志文件名为当前日期的日志文件
|
||||||
|
|
||||||
|
QFile logFile(logFileName); // 使用日期命名的日志文件
|
||||||
|
if (logFile.size() > 1024 * 1024 * 10) { // 文件超过 10MB
|
||||||
|
logFile.rename("app_old.log"); // 重命名日志文件
|
||||||
|
logFile.setFileName(logFileName); // 创建新文件
|
||||||
|
}
|
||||||
|
if (logFile.open(QIODevice::Append | QIODevice::Text)) {
|
||||||
|
QTextStream out(&logFile);
|
||||||
|
|
||||||
|
// 根据日志类型格式化日志
|
||||||
|
QString logMessage;
|
||||||
|
switch (type) {
|
||||||
|
case QtDebugMsg:
|
||||||
|
logMessage = QString("DEBUG: %1").arg(msg);
|
||||||
|
break;
|
||||||
|
case QtWarningMsg:
|
||||||
|
logMessage = QString("WARNING: %1").arg(msg);
|
||||||
|
break;
|
||||||
|
case QtCriticalMsg:
|
||||||
|
logMessage = QString("CRITICAL: %1").arg(msg);
|
||||||
|
break;
|
||||||
|
case QtFatalMsg:
|
||||||
|
logMessage = QString("FATAL: %1").arg(msg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加时间戳和日志消息
|
||||||
|
out << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << " " << logMessage << "\n";
|
||||||
|
}
|
||||||
|
}
|
13
common.h
Normal file
13
common.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef COMMON_H
|
||||||
|
#define COMMON_H
|
||||||
|
#include <QByteArray>
|
||||||
|
#include "data_config.h"
|
||||||
|
class Common
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Common();
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
||||||
|
#endif // COMMON_H
|
222
relaysetting.cpp
Normal file
222
relaysetting.cpp
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
#include "relaysetting.h"
|
||||||
|
#include "ui_relaysetting.h"
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QList>
|
||||||
|
#include <QJsonDocument>
|
||||||
|
#include <QJsonArray>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QTcpSocket>
|
||||||
|
|
||||||
|
|
||||||
|
RelaySetting::RelaySetting(QWidget *parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
, ui(new Ui::RelaySetting)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
readJsonFile(QCoreApplication::applicationDirPath() + "\\config\\main.json");
|
||||||
|
|
||||||
|
for (int var = 0; var < map_slot_config.size(); ++var) {
|
||||||
|
if(map_slot_config[var].slot_type == 30){
|
||||||
|
ui->comboBox_slot->addItem(QString::number(map_slot_config[var].slot));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
connect(ui->buttonGroup_OK, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_TX_RX, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_1, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_2, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_3, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_4, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_5, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_6, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_7, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_8, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_9, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_10, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_11, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_12, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_13, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_14, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_15, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_16, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_TEST, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
connect(ui->buttonGroup_STATUS, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
|
||||||
|
this, &RelaySetting::onRadioButtonClicked);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
RelaySetting::~RelaySetting()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
void RelaySetting::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 = 0;
|
||||||
|
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_display = obj["chan_display"].toString();
|
||||||
|
slot_config.rack_type = obj["rack_type"].toString();
|
||||||
|
map_slot_config.insert(slot_id,slot_config);
|
||||||
|
slot_id ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RelaySetting::onRadioButtonClicked(QAbstractButton *button)
|
||||||
|
{
|
||||||
|
QButtonGroup *group = qobject_cast<QButtonGroup *>(sender());
|
||||||
|
if (!group || !button) return;
|
||||||
|
|
||||||
|
qDebug() << "Group:" << group << ", Selected button text:" << button->text();
|
||||||
|
QTcpSocket socket;
|
||||||
|
// 连接到服务器
|
||||||
|
socket.connectToHost(g_strServerIp, 10000);
|
||||||
|
if (!socket.waitForConnected()) {
|
||||||
|
qDebug() << "Connection failed!";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PackageHead header = { {0xAA, 0x55, 0xAA}, kRelaySetting, sizeof(RelaySettingReq),0,{} };
|
||||||
|
|
||||||
|
int slot = ui->comboBox_slot->currentText().toInt();
|
||||||
|
qDebug() << "slot" << slot <<endl;
|
||||||
|
RelaySettingReq relay_setting_req;
|
||||||
|
if(slot == 0)
|
||||||
|
relay_setting_req.card_id = 0xFF;
|
||||||
|
else
|
||||||
|
relay_setting_req.card_id = slot & 0xFF;
|
||||||
|
QString led_id = group->objectName().mid(12);
|
||||||
|
qDebug() << "led_id" << led_id <<endl;
|
||||||
|
if(led_id == "OK")
|
||||||
|
relay_setting_req.led_id = 0xff;
|
||||||
|
else if(led_id == "TX_RX")
|
||||||
|
relay_setting_req.led_id = 0xf1;
|
||||||
|
else if(led_id == "TEST")
|
||||||
|
relay_setting_req.led_id = 0xee;
|
||||||
|
else if(led_id == "STATUS")
|
||||||
|
relay_setting_req.led_id = 0xe1;
|
||||||
|
else
|
||||||
|
relay_setting_req.led_id = led_id.toInt() & 0xFF;
|
||||||
|
|
||||||
|
if(button->text() == "OFF")
|
||||||
|
relay_setting_req.led_operate = 0;
|
||||||
|
else if(button->text() == "ON")
|
||||||
|
relay_setting_req.led_operate = 1;
|
||||||
|
else if(button->text() == "红色")
|
||||||
|
relay_setting_req.led_operate = 2;
|
||||||
|
else if(button->text() == "绿色")
|
||||||
|
relay_setting_req.led_operate = 3;
|
||||||
|
else if(button->text() == "红色1Hz闪烁" || button->text() == "红色闪烁")
|
||||||
|
relay_setting_req.led_operate = 4;
|
||||||
|
else if(button->text() == "红色2Hz闪烁")
|
||||||
|
relay_setting_req.led_operate = 5;
|
||||||
|
else if(button->text() == "绿色闪烁")
|
||||||
|
relay_setting_req.led_operate = 6;
|
||||||
|
else if(button->text() == "测试")
|
||||||
|
relay_setting_req.led_operate = 7;
|
||||||
|
else if(button->text() == "手动")
|
||||||
|
relay_setting_req.led_operate = 8;
|
||||||
|
else if(button->text() == "工作")
|
||||||
|
relay_setting_req.led_operate = 9;
|
||||||
|
qDebug() << "relay_setting_req.led_operate " << relay_setting_req.led_operate;
|
||||||
|
char send_buf[20] ={0};
|
||||||
|
memcpy(send_buf, (char*)&header, sizeof(PackageHead));
|
||||||
|
memcpy(send_buf + sizeof(PackageHead), (char*)&relay_setting_req, sizeof(RelaySettingReq));
|
||||||
|
int length = sizeof(PackageHead) + sizeof(RelaySettingReq);
|
||||||
|
qint64 bytesWritten = socket.write(send_buf, length);
|
||||||
|
qDebug() << "Server response: " << bytesWritten;
|
||||||
|
if (socket.waitForReadyRead()) {
|
||||||
|
QByteArray response = socket.readAll();
|
||||||
|
PackageHead header;
|
||||||
|
RelaySettingRsp relay_setting_rsp;
|
||||||
|
memcpy(&header,response.data(),sizeof(PackageHead));
|
||||||
|
qDebug() << "header len" << header.len << endl;
|
||||||
|
memcpy(&relay_setting_rsp,response.data() + sizeof(PackageHead),sizeof(RelaySettingRsp));
|
||||||
|
qDebug() << "relay_setting_rsp code" << relay_setting_rsp.code << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RelaySetting::on_pushButton_status_clicked()
|
||||||
|
{
|
||||||
|
QTcpSocket socket;
|
||||||
|
// 连接到服务器
|
||||||
|
socket.connectToHost(g_strServerIp, 10000);
|
||||||
|
if (!socket.waitForConnected()) {
|
||||||
|
qDebug() << "Connection failed!";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PackageHead header = { {0xAA, 0x55, 0xAA}, kRelayStatus, sizeof(RelaySettingReq),0,{} };
|
||||||
|
|
||||||
|
int slot = ui->comboBox_slot->currentText().toInt();
|
||||||
|
qDebug() << "slot" << slot <<endl;
|
||||||
|
RelayStatusReq relay_status_req;
|
||||||
|
if(slot == 0)
|
||||||
|
relay_status_req.card_id = 0xFF;
|
||||||
|
else
|
||||||
|
relay_status_req.card_id = slot & 0xFF;
|
||||||
|
char send_buf[20] ={0};
|
||||||
|
memcpy(send_buf, (char*)&header, sizeof(PackageHead));
|
||||||
|
memcpy(send_buf + sizeof(PackageHead), (char*)&relay_status_req, sizeof(RelayStatusReq));
|
||||||
|
int length = sizeof(PackageHead) + sizeof(RelayStatusReq);
|
||||||
|
qint64 bytesWritten = socket.write(send_buf, length);
|
||||||
|
qDebug() << "Server response: " << bytesWritten;
|
||||||
|
if (socket.waitForReadyRead()) {
|
||||||
|
QByteArray response = socket.readAll();
|
||||||
|
PackageHead header;
|
||||||
|
RelayStatusRsp relay_status_rsp;
|
||||||
|
memcpy(&header,response.data(),sizeof(PackageHead));
|
||||||
|
qDebug() << "header len" << header.len << endl;
|
||||||
|
memcpy(&relay_status_rsp,response.data() + sizeof(PackageHead),sizeof(RelayStatusRsp));
|
||||||
|
qDebug() << "relay_setting_rsp status" << relay_status_rsp.status << endl;
|
||||||
|
if(relay_status_rsp.status == 7)
|
||||||
|
ui->label_status->setText("测试");
|
||||||
|
else if(relay_status_rsp.status == 8)
|
||||||
|
ui->label_status->setText("手动");
|
||||||
|
else if(relay_status_rsp.status == 9)
|
||||||
|
ui->label_status->setText("工作");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
31
relaysetting.h
Normal file
31
relaysetting.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef RELAYSETTING_H
|
||||||
|
#define RELAYSETTING_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include "data_config.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class RelaySetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RelaySetting : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit RelaySetting(QWidget *parent = nullptr);
|
||||||
|
~RelaySetting();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void onRadioButtonClicked(QAbstractButton *button);
|
||||||
|
|
||||||
|
void on_pushButton_status_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::RelaySetting *ui;
|
||||||
|
QMap<int,SlotConfig> map_slot_config;
|
||||||
|
|
||||||
|
void readJsonFile(const QString &filePath);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // RELAYSETTING_H
|
1336
relaysetting.ui
Normal file
1336
relaysetting.ui
Normal file
File diff suppressed because it is too large
Load Diff
230
seismic_monitor.cpp
Normal file
230
seismic_monitor.cpp
Normal file
@ -0,0 +1,230 @@
|
|||||||
|
#include "seismic_monitor.h"
|
||||||
|
#include "ui_seismic_monitor.h"
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QJsonDocument>
|
||||||
|
#include <QJsonArray>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QFile>
|
||||||
|
#include "acceleration.h"
|
||||||
|
#include "velocity.h"
|
||||||
|
#include "radial_vibration.h"
|
||||||
|
|
||||||
|
Seismic_monitor::Seismic_monitor(int slot,QWidget *parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
ui(new Ui::Seismic_monitor)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
slot_no = slot;
|
||||||
|
QString slot_no_ = QString("%1").arg(slot_no);
|
||||||
|
ui->label_slot_no->setText(slot_no_);
|
||||||
|
|
||||||
|
QString filePath = QCoreApplication::applicationDirPath() + QString("\\config\\seismic_monitor_slot_%1.json").arg(slot_no);
|
||||||
|
readJsonFile(filePath);
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
Seismic_monitor::~Seismic_monitor()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
void Seismic_monitor::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;
|
||||||
|
}
|
||||||
|
QJsonObject json_obj = jsonDoc.object();
|
||||||
|
card_type = json_obj["card_type"].toInt();
|
||||||
|
QJsonArray chan_array = json_obj["chan"].toArray();
|
||||||
|
|
||||||
|
for(int i = 0; i < chan_array.size(); i++){
|
||||||
|
QJsonObject temp_obj = chan_array[i].toObject();
|
||||||
|
seismic_monitor[i].id = temp_obj["id"].toInt();
|
||||||
|
seismic_monitor[i].channel_name = temp_obj["channle_name"].toString();
|
||||||
|
seismic_monitor[i].standby = temp_obj["standby"].toBool();
|
||||||
|
seismic_monitor[i].active = temp_obj["active"].toBool();
|
||||||
|
seismic_monitor[i].rack_type = temp_obj["rack_type"].toString();
|
||||||
|
seismic_monitor[i].tmr_group = temp_obj["tmr_group"].toString();
|
||||||
|
seismic_monitor[i].channel_type = temp_obj["channel_type"].toString();
|
||||||
|
seismic_monitor[i].transducer_name = temp_obj["transducer_name"].toString();
|
||||||
|
seismic_monitor[i].scale_factor = temp_obj["scale_factor"].toString();
|
||||||
|
seismic_monitor[i].sample_rate = temp_obj["sample_rate"].toString();
|
||||||
|
QJsonArray voltage_range_array = temp_obj["normal_voltage_range"].toArray();
|
||||||
|
seismic_monitor[i].normal_voltage_low = voltage_range_array[0].toDouble();
|
||||||
|
seismic_monitor[i].normal_voltage_high = voltage_range_array[1].toDouble();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void Seismic_monitor::Init()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < CHANNLE_COUNT; i++) {
|
||||||
|
if(seismic_monitor[i].id == 1){
|
||||||
|
if(seismic_monitor[i].channel_type == "acceleration"){
|
||||||
|
ui->comboBox_chan_type_1->setCurrentText("加速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "velocity"){
|
||||||
|
ui->comboBox_chan_type_1->setCurrentText("速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "proximeter"){
|
||||||
|
ui->comboBox_chan_type_1->setCurrentText("径向位移");
|
||||||
|
}
|
||||||
|
ui->lineEdit_transducer_name_1->setText(seismic_monitor[i].transducer_name);
|
||||||
|
ui->doubleSpinBox_scale_factor_1->setValue(seismic_monitor[i].scale_factor.toDouble());
|
||||||
|
ui->checkBox_enable_1->setCheckable(seismic_monitor[i].active);
|
||||||
|
ui->doubleSpinBox_low_1->setValue(seismic_monitor[i].normal_voltage_low);
|
||||||
|
ui->doubleSpinBox_high_1->setValue(seismic_monitor[i].normal_voltage_high);
|
||||||
|
if(seismic_monitor[i].sample_rate == "32000"){
|
||||||
|
ui->comboBox_sample_rate_1->setCurrentText("32k");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(seismic_monitor[i].id == 2){
|
||||||
|
if(seismic_monitor[i].channel_type == "acceleration"){
|
||||||
|
ui->comboBox_chan_type_2->setCurrentText("加速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "velocity"){
|
||||||
|
ui->comboBox_chan_type_2->setCurrentText("速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "proximeter"){
|
||||||
|
ui->comboBox_chan_type_2->setCurrentText("径向位移");
|
||||||
|
}
|
||||||
|
ui->lineEdit_transducer_name_2->setText(seismic_monitor[i].transducer_name);
|
||||||
|
ui->doubleSpinBox_scale_factor_2->setValue(seismic_monitor[i].scale_factor.toDouble());
|
||||||
|
ui->checkBox_enable_2->setCheckable(seismic_monitor[i].active);
|
||||||
|
ui->doubleSpinBox_low_2->setValue(seismic_monitor[i].normal_voltage_low);
|
||||||
|
ui->doubleSpinBox_high_2->setValue(seismic_monitor[i].normal_voltage_high);
|
||||||
|
if(seismic_monitor[i].sample_rate == "32000"){
|
||||||
|
ui->comboBox_sample_rate_2->setCurrentText("32k");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(seismic_monitor[i].id == 3){
|
||||||
|
if(seismic_monitor[i].channel_type == "acceleration"){
|
||||||
|
ui->comboBox_chan_type_3->setCurrentText("加速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "velocity"){
|
||||||
|
ui->comboBox_chan_type_3->setCurrentText("速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "proximeter"){
|
||||||
|
ui->comboBox_chan_type_3->setCurrentText("径向位移");
|
||||||
|
}
|
||||||
|
ui->lineEdit_transducer_name_3->setText(seismic_monitor[i].transducer_name);
|
||||||
|
ui->doubleSpinBox_scale_factor_3->setValue(seismic_monitor[i].scale_factor.toDouble());
|
||||||
|
ui->checkBox_enable_3->setCheckable(seismic_monitor[i].active);
|
||||||
|
ui->doubleSpinBox_low_3->setValue(seismic_monitor[i].normal_voltage_low);
|
||||||
|
ui->doubleSpinBox_high_3->setValue(seismic_monitor[i].normal_voltage_high);
|
||||||
|
if(seismic_monitor[i].sample_rate == "32000"){
|
||||||
|
ui->comboBox_sample_rate_3->setCurrentText("32k");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(seismic_monitor[i].id == 4){
|
||||||
|
if(seismic_monitor[i].channel_type == "acceleration"){
|
||||||
|
ui->comboBox_chan_type_4->setCurrentText("加速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "velocity"){
|
||||||
|
ui->comboBox_chan_type_4->setCurrentText("速度");
|
||||||
|
}else if(seismic_monitor[i].channel_type == "proximeter"){
|
||||||
|
ui->comboBox_chan_type_4->setCurrentText("径向位移");
|
||||||
|
}
|
||||||
|
ui->lineEdit_transducer_name_4->setText(seismic_monitor[i].transducer_name);
|
||||||
|
ui->doubleSpinBox_scale_factor_4->setValue(seismic_monitor[i].scale_factor.toDouble());
|
||||||
|
ui->checkBox_enable_4->setCheckable(seismic_monitor[i].active);
|
||||||
|
ui->doubleSpinBox_low_4->setValue(seismic_monitor[i].normal_voltage_low);
|
||||||
|
ui->doubleSpinBox_high_4->setValue(seismic_monitor[i].normal_voltage_high);
|
||||||
|
if(seismic_monitor[i].sample_rate == "32000"){
|
||||||
|
ui->comboBox_sample_rate_4->setCurrentText("32k");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void Seismic_monitor::on_pushButton_confirm_clicked()
|
||||||
|
{
|
||||||
|
for (int var = 0; var < CHANNLE_COUNT; ++var){
|
||||||
|
if(seismic_monitor[var].id == 1){
|
||||||
|
seismic_monitor[var].transducer_name = ui->lineEdit_transducer_name_1->text();
|
||||||
|
seismic_monitor[var].scale_factor = QString::number(ui->doubleSpinBox_scale_factor_1->value());
|
||||||
|
seismic_monitor[var].active = ui->checkBox_enable_1->isChecked();
|
||||||
|
seismic_monitor[var].sample_rate = ui->comboBox_sample_rate_1->currentText();
|
||||||
|
seismic_monitor[var].normal_voltage_low = ui->doubleSpinBox_low_1->value();
|
||||||
|
seismic_monitor[var].normal_voltage_high = ui->doubleSpinBox_high_1->value();
|
||||||
|
}else if(seismic_monitor[var].id == 2){
|
||||||
|
seismic_monitor[var].transducer_name = ui->lineEdit_transducer_name_2->text();
|
||||||
|
seismic_monitor[var].scale_factor = QString::number(ui->doubleSpinBox_scale_factor_2->value());
|
||||||
|
seismic_monitor[var].active = ui->checkBox_enable_2->isChecked();
|
||||||
|
seismic_monitor[var].sample_rate = ui->comboBox_sample_rate_2->currentText();
|
||||||
|
seismic_monitor[var].normal_voltage_low = ui->doubleSpinBox_low_2->value();
|
||||||
|
seismic_monitor[var].normal_voltage_high = ui->doubleSpinBox_high_2->value();
|
||||||
|
}else if(seismic_monitor[var].id == 3){
|
||||||
|
seismic_monitor[var].transducer_name = ui->lineEdit_transducer_name_3->text();
|
||||||
|
seismic_monitor[var].scale_factor = QString::number(ui->doubleSpinBox_scale_factor_3->value());
|
||||||
|
seismic_monitor[var].active = ui->checkBox_enable_3->isChecked();
|
||||||
|
seismic_monitor[var].sample_rate = ui->comboBox_sample_rate_3->currentText();
|
||||||
|
seismic_monitor[var].normal_voltage_low = ui->doubleSpinBox_low_3->value();
|
||||||
|
seismic_monitor[var].normal_voltage_high = ui->doubleSpinBox_high_3->value();
|
||||||
|
}else if(seismic_monitor[var].id == 4){
|
||||||
|
seismic_monitor[var].transducer_name = ui->lineEdit_transducer_name_4->text();
|
||||||
|
seismic_monitor[var].scale_factor = QString::number(ui->doubleSpinBox_scale_factor_4->value());
|
||||||
|
seismic_monitor[var].active = ui->checkBox_enable_4->isChecked();
|
||||||
|
seismic_monitor[var].sample_rate = ui->comboBox_sample_rate_4->currentText();
|
||||||
|
seismic_monitor[var].normal_voltage_low = ui->doubleSpinBox_low_4->value();
|
||||||
|
seismic_monitor[var].normal_voltage_high = ui->doubleSpinBox_high_4->value();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
QJsonObject monitor_obj,item_obj;
|
||||||
|
QJsonArray chan_array;
|
||||||
|
for(int i = 0; i < CHANNLE_COUNT;i++){
|
||||||
|
item_obj["id"] = seismic_monitor[i].id;
|
||||||
|
item_obj["channel_name"] = seismic_monitor[i].channel_name;
|
||||||
|
item_obj["standby"] = seismic_monitor[i].standby;
|
||||||
|
item_obj["active"] = seismic_monitor[i].active;
|
||||||
|
item_obj["rack_type"] = seismic_monitor[i].rack_type;
|
||||||
|
item_obj["tmr_group"] = seismic_monitor[i].tmr_group;
|
||||||
|
item_obj["channel_type"] = seismic_monitor[i].channel_type;
|
||||||
|
item_obj["transducer_name"] = seismic_monitor[i].transducer_name;
|
||||||
|
item_obj["scale_factor"] = seismic_monitor[i].scale_factor;
|
||||||
|
item_obj["sample_rate"] = seismic_monitor[i].sample_rate;
|
||||||
|
QJsonArray normal_voltage_array;
|
||||||
|
normal_voltage_array.append(seismic_monitor[i].normal_voltage_low);
|
||||||
|
normal_voltage_array.append(seismic_monitor[i].normal_voltage_high);
|
||||||
|
item_obj["normal_voltage_range"] = normal_voltage_array;
|
||||||
|
chan_array.append(item_obj);
|
||||||
|
}
|
||||||
|
monitor_obj["chan"] = chan_array;
|
||||||
|
monitor_obj["slot"] = slot_no;
|
||||||
|
monitor_obj["version"] = 1;
|
||||||
|
monitor_obj["card_type"] = 1;
|
||||||
|
QJsonDocument jsonDoc;
|
||||||
|
jsonDoc.setObject(monitor_obj);
|
||||||
|
QString file_name = QString("\\config\\seismic_monitor_slot_%1.json").arg(slot_no);
|
||||||
|
QFile file(QCoreApplication::applicationDirPath() + file_name);
|
||||||
|
file.open(QIODevice::WriteOnly);
|
||||||
|
file.write(jsonDoc.toJson());
|
||||||
|
file.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Seismic_monitor::on_pushButton_set_default_clicked()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Seismic_monitor::on_pushButton_config_1_clicked()
|
||||||
|
{
|
||||||
|
for (int i = 0 ;i < CHANNLE_COUNT ; i++) {
|
||||||
|
if(seismic_monitor[i].id == 1){
|
||||||
|
if(seismic_monitor[i].channel_type == "acceleration"){
|
||||||
|
channel = 1;
|
||||||
|
Acceleration *acceleration = new Acceleration(slot_no,channel,seismic_monitor[i].active);
|
||||||
|
acceleration->setWindowModality(Qt::ApplicationModal);
|
||||||
|
acceleration->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
37
seismic_monitor.h
Normal file
37
seismic_monitor.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#ifndef SEISMIC_MONITOR_H
|
||||||
|
#define SEISMIC_MONITOR_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include "data_config.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class Seismic_monitor;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Seismic_monitor : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit Seismic_monitor(int slot,QWidget *parent = nullptr);
|
||||||
|
~Seismic_monitor();
|
||||||
|
int slot_no;
|
||||||
|
int channel;
|
||||||
|
private slots:
|
||||||
|
void on_pushButton_confirm_clicked();
|
||||||
|
|
||||||
|
void on_pushButton_set_default_clicked();
|
||||||
|
|
||||||
|
void on_pushButton_config_1_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::Seismic_monitor *ui;
|
||||||
|
|
||||||
|
int card_type;
|
||||||
|
void readJsonFile(const QString &filePath);
|
||||||
|
SeismicMonitor seismic_monitor[CHANNLE_COUNT];
|
||||||
|
|
||||||
|
void Init();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SEISMIC_MONITOR_H
|
1777
seismic_monitor.ui
Normal file
1777
seismic_monitor.ui
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user