Merge branch 'font'

# Conflicts:
#	BoardSetting.cpp
#	ChannelList.cpp
#	ChannelSetting.cpp
#	CustomFilter.cpp
#	CustomFilter.h
#	CustomFilter.ui
#	mainwindow.cpp
#	sqlitedb.cpp
This commit is contained in:
zhangsheng 2024-10-24 13:54:15 +08:00
commit 332756c8eb
87 changed files with 3369 additions and 858 deletions

130
Backup.cpp Normal file
View File

@ -0,0 +1,130 @@
#include "Backup.h"
#include "ui_Backup.h"
#include <QFileDialog>
#include <QProcess>
CBackup::CBackup(QWidget *parent) :
QWidget(parent),
ui(new Ui::CBackup)
{
ui->setupUi(this);
backup_path = "";
}
CBackup::~CBackup()
{
delete ui;
}
void CBackup::on_pushButton_path_clicked()
{
QString dirpath = QFileDialog::getExistingDirectory(this, QStringLiteral("选择目录"), "./", QFileDialog::ShowDirsOnly);
if(dirpath.isEmpty()) dirpath = QDir::currentPath();
ui->lineEdit_filepath->setText(dirpath + "/");
backup_path = dirpath;
}
void CBackup::on_pushButton_confirm_clicked()
{
if(ui->lineEdit_filepath->text() == ""){
QMessageBox::information(this,tr("提示"),tr("请选择导出文件路径!"));
return;
}
backup_path = backup_path + "\\config\\";
copyDirectory(QCoreApplication::applicationDirPath() + "\\config\\", backup_path);
QFile file(backup_path+"macbackup");
if (!file.open(QIODevice::ReadWrite)) {
qWarning("Couldn't open file for writing.");
return;
}
QTextStream out(&file);
out << MAC << endl;
file.close();
QMessageBox::information(this,tr("导出"),tr("导出成功!"));
}
int CBackup::ExeSqlData(QString& strSql)
{
QSqlQuery sql_query;
int iRet = -1;
qDebug() << "strSql" << strSql << endl;
if(!sql_query.exec(strSql))
{
qDebug() << sql_query.lastError();
}
else
{
while(sql_query.next())
{
iRet = sql_query.value(0).toInt();
}
}
return iRet;
}
bool CBackup::copyFile(const QString &sourceFile, const QString &destinationFile)
{
QFile srcFile(sourceFile);
QFile dstFile(destinationFile);
if (!srcFile.exists()) {
qDebug() << "Source file does not exist:" << sourceFile;
return false;
}
if (!srcFile.open(QIODevice::ReadOnly)) {
qDebug() << "Unable to open source file for reading:" << sourceFile;
return false;
}
if (!dstFile.open(QIODevice::WriteOnly)) {
srcFile.close();
qDebug() << "Unable to open destination file for writing:" << destinationFile;
return false;
}
dstFile.write(srcFile.readAll());
srcFile.close();
dstFile.close();
return true;
}
bool CBackup::copyDirectory(const QString &sourceDir, const QString &destinationDir) {
QDir srcDir(sourceDir);
QDir destDir(destinationDir);
// 如果目标文件夹已存在,则删除它
if (destDir.exists()) {
destDir.removeRecursively();
}
// 创建目标文件夹
if (!destDir.mkpath(".")) {
qDebug() << "无法创建目标文件夹";
return false;
}
// 复制文件
foreach (const QFileInfo &fileInfo, srcDir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot)) {
QString fileName = fileInfo.fileName();
QString srcFilePath = srcDir.absoluteFilePath(fileName);
QString destFilePath = destDir.absoluteFilePath(fileName);
if (fileInfo.isDir()) {
// 递归复制子文件夹
if (!copyDirectory(srcFilePath, destFilePath)) {
return false;
}
} else {
// 复制文件
if (!QFile::copy(srcFilePath, destFilePath)) {
qDebug() << "无法复制文件" << srcFilePath << "" << destFilePath;
return false;
}
}
}
return true;
}

36
Backup.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef BACKUP_H
#define BACKUP_H
#include <QWidget>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include "global.h"
namespace Ui {
class CBackup;
}
class CBackup : public QWidget
{
Q_OBJECT
public:
explicit CBackup(QWidget *parent = nullptr);
~CBackup();
private slots:
void on_pushButton_path_clicked();
void on_pushButton_confirm_clicked();
private:
Ui::CBackup *ui;
QString backup_path;
QSqlDatabase database;
int CreateDataBase();
int ExeSqlData(QString& strSql);
bool copyFile(const QString &sourceFile, const QString &destinationFile);
bool copyDirectory(const QString &sourceDir, const QString &destinationDir);
};
#endif // BACKUP_H

150
Backup.ui Normal file
View File

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CBackup</class>
<widget class="QWidget" name="CBackup">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>711</width>
<height>169</height>
</rect>
</property>
<property name="windowTitle">
<string>配置导出</string>
</property>
<property name="styleSheet">
<string notr="true">font: 10pt &quot;黑体&quot;;
color: rgb(27, 30, 35);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>请填写导出信息</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="lineEdit_filepath">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_path">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_path { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_path:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_path:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_path:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>导出路径</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_confirm">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_confirm { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_confirm:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_confirm:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_confirm:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>确认</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -33,7 +33,13 @@ CBoardSetting::~CBoardSetting()
void CBoardSetting::initReadConfig() void CBoardSetting::initReadConfig()
{ {
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json"; #ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitBoardsInfo.json";
#endif
QFile loadFile(name); QFile loadFile(name);
if(!loadFile.open(QIODevice::ReadOnly)) if(!loadFile.open(QIODevice::ReadOnly))
{ {
@ -292,7 +298,13 @@ void CBoardSetting::PushData()
qDebug() << UnitBoardsInfoObj << endl; qDebug() << UnitBoardsInfoObj << endl;
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(UnitBoardsInfoObj); jsonDoc.setObject(UnitBoardsInfoObj);
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json"; #ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitBoardsInfo.json";
#endif
QFile file(name); QFile file(name);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -447,7 +459,13 @@ void CBoardSetting::PushData()
QJsonDocument jsonDoc2; QJsonDocument jsonDoc2;
jsonDoc2.setObject(WorkConditionsInfoObj); jsonDoc2.setObject(WorkConditionsInfoObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitWorkConditionsInfo.json";
#endif
QFile file2(fileName); QFile file2(fileName);
file2.open(QIODevice::WriteOnly); file2.open(QIODevice::WriteOnly);
@ -463,36 +481,51 @@ void CBoardSetting::PushData()
g_SqliteDB->DeleteData(strTablename); g_SqliteDB->DeleteData(strTablename);
QString strURL = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitWorkConditionsInfo.json"); QString strURL = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitWorkConditionsInfo.json");
g_FtpClient->SetServerInfo(strURL); // g_FtpClient->SetServerInfo(strURL);
g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"UnitWorkConditionsInfo.json"); // g_FtpClient->UpLoadFile(fileName,"UnitWorkConditionsInfo.json");
g_FtpClient->uploadFile(strURL,fileName,"UnitWorkConditionsInfo.json");
QJsonDocument jsonDocUnit; QJsonDocument jsonDocUnit;
QJsonObject UnitObj; QJsonObject UnitObj;
UnitObj["NULL"] = ""; UnitObj["NULL"] = "";
jsonDocUnit.setObject(UnitObj); jsonDocUnit.setObject(UnitObj);
QString fileNameUnit = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#ifdef Q_OS_WIN32
QString fileNameUnit = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameUnit = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
QFile fileUnit(fileNameUnit); QFile fileUnit(fileNameUnit);
fileUnit.open(QIODevice::WriteOnly); fileUnit.open(QIODevice::WriteOnly);
fileUnit.write(jsonDocUnit.toJson()); fileUnit.write(jsonDocUnit.toJson());
fileUnit.close(); fileUnit.close();
QString str2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations.json"); QString str2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations.json");
g_FtpClient->SetServerInfo(str2); // g_FtpClient->SetServerInfo(str2);
g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileNameUnit,"UnitConfigurations.json"); // g_FtpClient->UpLoadFile(fileNameUnit,"UnitConfigurations.json");
g_FtpClient->uploadFile(str2,fileNameUnit,"UnitConfigurations.json");
#ifdef Q_OS_WIN32
QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations2.json";
#endif
QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
QFile fileUnit2(fileNameUnit2); QFile fileUnit2(fileNameUnit2);
fileUnit2.open(QIODevice::WriteOnly); fileUnit2.open(QIODevice::WriteOnly);
fileUnit2.write(jsonDocUnit.toJson()); fileUnit2.write(jsonDocUnit.toJson());
fileUnit2.close(); fileUnit2.close();
QString str22 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations2.json"); QString str22 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations2.json");
g_FtpClient->SetServerInfo(str22); // g_FtpClient->SetServerInfo(str22);
g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileNameUnit2,"UnitConfigurations2.json"); // g_FtpClient->UpLoadFile(fileNameUnit2,"UnitConfigurations2.json");
g_FtpClient->uploadFile(str22,fileNameUnit2,"UnitConfigurations2.json");
g_channelSetting = g_SqliteDB->GetDataMultiLine("t_ChannelSetting"); g_channelSetting = g_SqliteDB->GetDataMultiLine("t_ChannelSetting");
for (int i = 0; i < g_channelSetting.size(); i++) for (int i = 0; i < g_channelSetting.size(); i++)
@ -520,8 +553,13 @@ void CBoardSetting::PushData()
QJsonDocument jsonDocTri; QJsonDocument jsonDocTri;
QJsonArray triArray,m_channeltriggerArray; QJsonArray triArray,m_channeltriggerArray;
QJsonObject triggerConfigObj; QJsonObject triggerConfigObj;
#ifdef Q_OS_WIN32
QString fileNameTri = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameTri = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
QString fileNameTri = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
for (int ii = 0; ii < g_ChannelBaseInfo.size(); ii++) { for (int ii = 0; ii < g_ChannelBaseInfo.size(); ii++) {
@ -540,25 +578,34 @@ void CBoardSetting::PushData()
fileTri.write(jsonDocTri.toJson()); fileTri.write(jsonDocTri.toJson());
fileTri.close(); fileTri.close();
QString str1 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings.json"); QString str1 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings.json");
g_FtpClient->SetServerInfo(str1); // g_FtpClient->SetServerInfo(str1);
g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileNameTri,"TriggerSettings.json"); // g_FtpClient->UpLoadFile(fileNameTri,"TriggerSettings.json");
g_FtpClient->uploadFile(str1,fileNameTri,"TriggerSettings.json");
#ifdef Q_OS_WIN32
QString fileNameTri2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameTri2 = QCoreApplication::applicationDirPath() + "/config/TriggerSettings2.json";
#endif
QString fileNameTri2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json";
QFile fileTri2(fileNameTri2); QFile fileTri2(fileNameTri2);
fileTri2.open(QIODevice::WriteOnly); fileTri2.open(QIODevice::WriteOnly);
fileTri2.write(jsonDocTri.toJson()); fileTri2.write(jsonDocTri.toJson());
fileTri2.close(); fileTri2.close();
QString strTri2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings2.json"); QString strTri2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings2.json");
g_FtpClient->SetServerInfo(strTri2); // g_FtpClient->SetServerInfo(strTri2);
g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileNameTri2,"TriggerSettings2.json"); // g_FtpClient->UpLoadFile(fileNameTri2,"TriggerSettings2.json");
g_FtpClient->uploadFile(strTri2,fileNameTri2,"TriggerSettings2.json");
QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitBoardsInfo.json"); QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitBoardsInfo.json");
g_FtpClient->SetServerInfo(str); // g_FtpClient->SetServerInfo(str);
g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(name,"UnitBoardsInfo.json"); // g_FtpClient->UpLoadFile(name,"UnitBoardsInfo.json");
g_FtpClient->uploadFile(str,name,"UnitBoardsInfo.json");
disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&))); disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
} }
@ -736,7 +783,13 @@ void CBoardSetting::on_pushButton_Init_clicked()
qDebug() << UnitBoardsInfoObj << endl; qDebug() << UnitBoardsInfoObj << endl;
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(UnitBoardsInfoObj); jsonDoc.setObject(UnitBoardsInfoObj);
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json"; #ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitBoardsInfo.json";
#endif
QFile file(name); QFile file(name);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -855,7 +908,13 @@ void CBoardSetting::on_pushButton_Init_clicked()
QJsonDocument jsonDoc2; QJsonDocument jsonDoc2;
jsonDoc2.setObject(WorkConditionsInfoObj); jsonDoc2.setObject(WorkConditionsInfoObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitWorkConditionsInfo.json";
#endif
QFile file2(fileName); QFile file2(fileName);
file2.open(QIODevice::WriteOnly); file2.open(QIODevice::WriteOnly);
@ -879,8 +938,13 @@ void CBoardSetting::on_pushButton_Init_clicked()
QJsonObject UnitObj; QJsonObject UnitObj;
UnitObj["NULL"] = ""; UnitObj["NULL"] = "";
jsonDocUnit.setObject(UnitObj); jsonDocUnit.setObject(UnitObj);
QString fileNameUnit = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#ifdef Q_OS_WIN32
QString fileNameUnit = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameUnit = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
QFile fileUnit(fileNameUnit); QFile fileUnit(fileNameUnit);
fileUnit.open(QIODevice::WriteOnly); fileUnit.open(QIODevice::WriteOnly);
fileUnit.write(jsonDocUnit.toJson()); fileUnit.write(jsonDocUnit.toJson());
@ -919,8 +983,13 @@ void CBoardSetting::on_pushButton_Init_clicked()
QJsonArray triArray,m_channeltriggerArray; QJsonArray triArray,m_channeltriggerArray;
QJsonObject triggerConfigObj; QJsonObject triggerConfigObj;
QString fileNameTri = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#ifdef Q_OS_WIN32
QString fileNameTri = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameTri = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
for (int ii = 0; ii < g_ChannelBaseInfo.size(); ii++) { for (int ii = 0; ii < g_ChannelBaseInfo.size(); ii++) {
@ -947,14 +1016,22 @@ void CBoardSetting::on_pushButton_Init_clicked()
// g_FtpClient->SetUserInfo("root","@#cidw!@123456"); // g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(name,"UnitBoardsInfo.json"); // g_FtpClient->UpLoadFile(name,"UnitBoardsInfo.json");
customLogMessageHandler(QtDebugMsg,"初始化机组板卡配置信息推送完成!"); customLogMessageHandler(QtDebugMsg,"初始化机组板卡配置信息推送完成!");
<<<<<<< HEAD
=======
#ifndef NO_FILTER
>>>>>>> font
QJsonObject sendData; QJsonObject sendData;
sendData["cmd"] = "111"; sendData["cmd"] = "111";
QNetworkRequest req; QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP); QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl); req.setUrl(sUrl);
g_NetMgr->PostJson(req,sendData); g_NetMgr->PostJson(req,sendData);
<<<<<<< HEAD
=======
#endif
>>>>>>> font
putJson(); putJson();
} }
@ -1065,7 +1142,13 @@ void CBoardSetting::putJson()
} }
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setArray(channelArray); jsonDoc.setArray(channelArray);
QString name = QCoreApplication::applicationDirPath() + "\\config\\ChannelSettings.json";
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\ChannelSettings.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/ChannelSettings.json";
#endif
QFile file(name); QFile file(name);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());

View File

@ -65,12 +65,8 @@ CChannelList::CChannelList(QWidget *parent) :
ui->tableView->setColumnWidth(33, 256); ui->tableView->setColumnWidth(33, 256);
m_nCurRow = -1; m_nCurRow = -1;
SlowSpeeddialog = new CSlowSpeedChannelSetting(); ui->comboBox_operate->addItem("通道");
connect(SlowSpeeddialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting))); ui->comboBox_operate->addItem("带通滤波");
ChannelSettingdialog = new CChannelSetting();
connect(ChannelSettingdialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting)));
SlowSpeeddialog = new CSlowSpeedChannelSetting();
connect(SlowSpeeddialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting)));
ui->comboBox_operate->addItem("带通滤波"); ui->comboBox_operate->addItem("带通滤波");
@ -83,6 +79,12 @@ CChannelList::CChannelList(QWidget *parent) :
#ifdef QT_DEBUG #ifdef QT_DEBUG
initReadConfig(); initReadConfig();
#endif #endif
<<<<<<< HEAD
=======
#ifdef NO_FILTER
initReadConfig();
#endif
>>>>>>> font
} }
@ -178,6 +180,10 @@ void CChannelList::iniConnect()
connect(model, SIGNAL(itemChanged(QStandardItem*)), this, SLOT(itemChangedSlot(QStandardItem*))); connect(model, SIGNAL(itemChanged(QStandardItem*)), this, SLOT(itemChangedSlot(QStandardItem*)));
connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&))); connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
<<<<<<< HEAD
=======
#ifndef NO_FILTER
>>>>>>> font
QJsonObject sendData; QJsonObject sendData;
sendData["cmd"] = "97"; sendData["cmd"] = "97";
QJsonArray chan_list; QJsonArray chan_list;
@ -190,6 +196,10 @@ void CChannelList::iniConnect()
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP); QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl); req.setUrl(sUrl);
g_NetMgr->PostJson(req,sendData); g_NetMgr->PostJson(req,sendData);
<<<<<<< HEAD
=======
#endif
>>>>>>> font
} }
void CChannelList::createItem(QStringList filename) void CChannelList::createItem(QStringList filename)
@ -267,9 +277,13 @@ void CChannelList::itemChangedSlot(QStandardItem *item)
myHeader->onStateChanged(state); myHeader->onStateChanged(state);
} }
} }
void CChannelList::slotChannelSettingClose()
{
on_pushButton_refresh_clicked();
}
void CChannelList::slotSetChannelData(ChannelSetting channelSetting) void CChannelList::slotSetChannelData(ChannelSetting channelSetting)
{ {
qDebug() << "slotSetChannelData" << endl;
int i; int i;
for (i = 0;i <g_channelSetting.size() ; i++) { for (i = 0;i <g_channelSetting.size() ; i++) {
if(g_channelSetting[i].channelId == channelSetting.channelId){ if(g_channelSetting[i].channelId == channelSetting.channelId){
@ -365,6 +379,7 @@ void CChannelList::slotSetChannelData(ChannelSetting channelSetting)
g_SqliteDB->UpdateDataSql(tableName,strUpdateSql); g_SqliteDB->UpdateDataSql(tableName,strUpdateSql);
g_channelSetting = g_SqliteDB->GetDataMultiLine("t_ChannelSetting"); g_channelSetting = g_SqliteDB->GetDataMultiLine("t_ChannelSetting");
putJson(); putJson();
//disconnect(ChannelSettingdialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting))); //disconnect(ChannelSettingdialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting)));
@ -477,7 +492,13 @@ void CChannelList::putJson()
} }
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setArray(channelArray); jsonDoc.setArray(channelArray);
QString name = QCoreApplication::applicationDirPath() + "\\config\\ChannelSettings.json";
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\ChannelSettings.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/ChannelSettings.json";
#endif
QFile file(name); QFile file(name);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -540,20 +561,26 @@ void CChannelList::slotRowDoubleClicked(const QModelIndex &index)
if(g_channelSetting[m_nCurRow].boardType.toInt() == 1 && g_channelSetting[i].channelId == g_channelSetting[m_nCurRow].channelId){//开入开出板卡 if(g_channelSetting[m_nCurRow].boardType.toInt() == 1 && g_channelSetting[i].channelId == g_channelSetting[m_nCurRow].channelId){//开入开出板卡
SlowSpeeddialog->channelSetting = g_channelSetting[i]; SlowSpeeddialog = new CSlowSpeedChannelSetting();
SlowSpeeddialog->setWindowModality(Qt::ApplicationModal); connect(SlowSpeeddialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting)));
SlowSpeeddialog->displayChannelSetting(); SlowSpeeddialog->channelSetting = g_channelSetting[i];
SlowSpeeddialog->show(); SlowSpeeddialog->setWindowModality(Qt::ApplicationModal);
SlowSpeeddialog->displayChannelSetting();
SlowSpeeddialog->show();
} }
else if(g_channelSetting[m_nCurRow].boardType.toInt() > 1 && g_channelSetting[m_nCurRow].boardType.toInt() < 5 && g_channelSetting[i].channelId == g_channelSetting[m_nCurRow].channelId){//高速板卡 else if(g_channelSetting[m_nCurRow].boardType.toInt() > 1 && g_channelSetting[m_nCurRow].boardType.toInt() < 5 && g_channelSetting[i].channelId == g_channelSetting[m_nCurRow].channelId){//高速板卡
qDebug() << g_channelSetting[m_nCurRow].boardType << g_channelSetting[i].channelId << g_channelSetting[m_nCurRow].channelId<< endl; qDebug() << g_channelSetting[m_nCurRow].boardType << g_channelSetting[i].channelId << g_channelSetting[m_nCurRow].channelId<< endl;
ChannelSettingdialog = new CChannelSetting();
connect(ChannelSettingdialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting)));
connect(ChannelSettingdialog, SIGNAL(ChannelSettingClose_sg()), this, SLOT(slotChannelSettingClose()));
ChannelSettingdialog->channelSetting = g_channelSetting[i]; ChannelSettingdialog->channelSetting = g_channelSetting[i];
ChannelSettingdialog->setWindowModality(Qt::ApplicationModal); ChannelSettingdialog->setWindowModality(Qt::ApplicationModal);
ChannelSettingdialog->displayChannelSetting(); ChannelSettingdialog->displayChannelSetting();
ChannelSettingdialog->show(); ChannelSettingdialog->show();
}else if((g_channelSetting[m_nCurRow].boardType.toInt() == 5) && g_channelSetting[i].channelId == g_channelSetting[m_nCurRow].channelId){//低速板卡 }else if((g_channelSetting[m_nCurRow].boardType.toInt() == 5) && g_channelSetting[i].channelId == g_channelSetting[m_nCurRow].channelId){//低速板卡
SlowSpeeddialog = new CSlowSpeedChannelSetting();
connect(SlowSpeeddialog, SIGNAL(sgSetChannelData(ChannelSetting)), this, SLOT(slotSetChannelData(ChannelSetting)));
SlowSpeeddialog->channelSetting = g_channelSetting[i]; SlowSpeeddialog->channelSetting = g_channelSetting[i];
SlowSpeeddialog->setWindowModality(Qt::ApplicationModal); SlowSpeeddialog->setWindowModality(Qt::ApplicationModal);
SlowSpeeddialog->displayChannelSetting(); SlowSpeeddialog->displayChannelSetting();
@ -632,7 +659,12 @@ void CChannelList::on_pushButton_open_clicked()
} }
} }
putJson(); putJson();
<<<<<<< HEAD
}else if(ui->comboBox_operate->currentText() == "带通滤波"){ }else if(ui->comboBox_operate->currentText() == "带通滤波"){
=======
}else if(ui->comboBox_operate->currentText() == "带通滤波")
{
>>>>>>> font
QJsonArray channleList; QJsonArray channleList;
for (int i = 0; i < model->rowCount(); i++) { for (int i = 0; i < model->rowCount(); i++) {
QModelIndex indexCheck = model->index(i,0); QModelIndex indexCheck = model->index(i,0);
@ -696,6 +728,10 @@ void CChannelList::on_pushButton_refresh_clicked()
model->removeRows(0, model->rowCount()); model->removeRows(0, model->rowCount());
g_channelSetting = g_SqliteDB->GetDataMultiLine("t_ChannelSetting"); g_channelSetting = g_SqliteDB->GetDataMultiLine("t_ChannelSetting");
connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&))); connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
<<<<<<< HEAD
=======
#ifndef NO_FILTER
>>>>>>> font
QJsonObject sendData; QJsonObject sendData;
sendData["cmd"] = "97"; sendData["cmd"] = "97";
QJsonArray chan_list; QJsonArray chan_list;
@ -707,6 +743,15 @@ void CChannelList::on_pushButton_refresh_clicked()
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP); QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl); req.setUrl(sUrl);
g_NetMgr->PostJson(req,sendData); g_NetMgr->PostJson(req,sendData);
<<<<<<< HEAD
=======
#else
initReadConfig();
#endif
#ifdef QT_DEBUG
initReadConfig();
#endif
>>>>>>> font
} }
void CChannelList::slotNetMgr(QString sAddr, const QVariant &msg) void CChannelList::slotNetMgr(QString sAddr, const QVariant &msg)
@ -734,7 +779,13 @@ void CChannelList::slotNetMgr(QString sAddr, const QVariant &msg)
} }
} }
} }
<<<<<<< HEAD
initReadConfig(); initReadConfig();
=======
#ifndef NO_FILTER
initReadConfig();
#endif
>>>>>>> font
} }
} }
disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&))); disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));

View File

@ -4,7 +4,7 @@
#include <QWidget> #include <QWidget>
#include <QStandardItemModel> //数据模型类 #include <QStandardItemModel> //数据模型类
#include <QMessageBox> #include <QMessageBox>
#include "HeaderView.h" #include "headerView.h"
#include "TableHeaderView.h" #include "TableHeaderView.h"
#include "global.h" #include "global.h"
#include "ftpclient.h" #include "ftpclient.h"
@ -29,6 +29,7 @@ public slots:
void on_columnSectionClicked(int column, bool checked); void on_columnSectionClicked(int column, bool checked);
void slotSetChannelData(ChannelSetting channelSetting); void slotSetChannelData(ChannelSetting channelSetting);
void slotChannelSettingClose();
private: private:
Ui::CChannelList *ui; Ui::CChannelList *ui;
QStandardItemModel *m_pModel; //数据模型对象指针 QStandardItemModel *m_pModel; //数据模型对象指针

View File

@ -56,7 +56,7 @@ CChannelSetting::CChannelSetting(QWidget *parent) :
QStringList strSensorList; QStringList strSensorList;
strSensorList << "电涡流传感器" << "低频位移" << "IEPE型传感器" ; strSensorList << "电涡流传感器" << "低频位移" << "IEPE型传感器" << "速度型传感器" ;
ui->comboBox_sensorType->addItems(strSensorList); ui->comboBox_sensorType->addItems(strSensorList);
QStringList ChannelTypeList; QStringList ChannelTypeList;
ChannelTypeList << "转速" << "径向振动位移" << "轴向位移" << "加速度" << "速度" << "动态电压"; ChannelTypeList << "转速" << "径向振动位移" << "轴向位移" << "加速度" << "速度" << "动态电压";
@ -85,10 +85,14 @@ CChannelSetting::CChannelSetting(QWidget *parent) :
ui->comboBox_tachAutoTach->addItems(m_itemList); ui->comboBox_tachAutoTach->addItems(m_itemList);
ui->comboBox_samplingRate_2->addItems(strListFs); ui->comboBox_samplingRate_2->addItems(strListFs);
ui->comboBox_sensorRangeCheck_2->addItems(m_itemList); ui->comboBox_sensorRangeCheck_2->addItems(m_itemList);
setAttribute(Qt::WA_DeleteOnClose);//使能析构函数调用
} }
CChannelSetting::~CChannelSetting() CChannelSetting::~CChannelSetting()
{ {
qDebug() << "~CChannelSetting" << endl;
emit ChannelSettingClose_sg();
delete ui; delete ui;
} }
@ -603,6 +607,7 @@ void CChannelSetting::on_channelTypeCombox_currentTextChanged(const QString &arg
ui->pairChannelComBox->setCurrentText("- -"); ui->pairChannelComBox->setCurrentText("- -");
ui->RPMComBox->setCurrentText("- -"); ui->RPMComBox->setCurrentText("- -");
ui->lineEdit_sensorRange->setText("2054"); ui->lineEdit_sensorRange->setText("2054");
ui->comboBox_sensorType->setCurrentIndex(3);
}else if(arg1 == "声音"){ }else if(arg1 == "声音"){
ui->lineEdit_SensorType->setText("378B02"); ui->lineEdit_SensorType->setText("378B02");
@ -658,6 +663,7 @@ void CChannelSetting::on_channelTypeCombox_currentTextChanged(const QString &arg
ui->pairChannelComBox->setCurrentText("- -"); ui->pairChannelComBox->setCurrentText("- -");
ui->RPMComBox->setCurrentText("- -"); ui->RPMComBox->setCurrentText("- -");
ui->lineEdit_sensorRange->setText("2000"); ui->lineEdit_sensorRange->setText("2000");
ui->comboBox_sensorType->setCurrentIndex(0);
}else if(arg1 == "轴向位移"){ }else if(arg1 == "轴向位移"){
@ -687,6 +693,7 @@ void CChannelSetting::on_channelTypeCombox_currentTextChanged(const QString &arg
ui->pairChannelComBox->setCurrentText("- -"); ui->pairChannelComBox->setCurrentText("- -");
ui->RPMComBox->setCurrentText("- -"); ui->RPMComBox->setCurrentText("- -");
ui->lineEdit_sensorRange->setText("2"); ui->lineEdit_sensorRange->setText("2");
ui->comboBox_sensorType->setCurrentIndex(0);
}else if(arg1 == "动态电压"){ }else if(arg1 == "动态电压"){
ui->lineEdit_SensorType->setText("电压"); ui->lineEdit_SensorType->setText("电压");
ui->lineEdit_sensorEngineeringUnit->setText("V"); ui->lineEdit_sensorEngineeringUnit->setText("V");
@ -751,10 +758,10 @@ void CChannelSetting::on_comboBox_samplingRate_currentTextChanged(const QString
} }
void CChannelSetting::slotSetChannelData(QStringList& listChannelName) void CChannelSetting::slotCopyChannelData(QStringList& listChannelID)
{ {
qDebug() << listChannelName << endl; qDebug() << listChannelID << endl;
for (int i = 0; i < listChannelName.size(); i++) for (int i = 0; i < listChannelID.size(); i++)
{ {
QString strUpdateSql = QString(" set ChUnitCoeff = '%1' , ChUnitDot = %2,SensorICP = '%3', \ QString strUpdateSql = QString(" set ChUnitCoeff = '%1' , ChUnitDot = %2,SensorICP = '%3', \
SensorType = '%4',bearingClearance='%5',bearingStartPosition='%6',\ SensorType = '%4',bearingClearance='%5',bearingStartPosition='%6',\
@ -771,7 +778,7 @@ void CChannelSetting::slotSetChannelData(QStringList& listChannelName)
startBrands='%44',stopBrands='%45',tachAutoTach='%46',tachTriggerEdge='%47',tachTriggerHysteresis=%48,\ startBrands='%44',stopBrands='%45',tachAutoTach='%46',tachTriggerEdge='%47',tachTriggerHysteresis=%48,\
tachTriggerPerRev='%49',tachTriggerVoltageLevel='%50',thermalCoupleType = '%51',xFullScalePosition='%52',\ tachTriggerPerRev='%49',tachTriggerVoltageLevel='%50',thermalCoupleType = '%51',xFullScalePosition='%52',\
xProcessVariableName='%53',xZeroScalePosition='%54',zeroScalePosition='%55',speedRefChannelName = '%56',\ xProcessVariableName='%53',xZeroScalePosition='%54',zeroScalePosition='%55',speedRefChannelName = '%56',\
defaultDisplay = '%57' ,confidenceDegree=%58,sectionNum=%59 where channelName = '%60'").\ defaultDisplay = '%57' ,confidenceDegree=%58,sectionNum=%59,sensorTypes='%60' where channelId = '%61'").\
arg(channelSetting.ChUnitCoeff).arg(channelSetting.ChUnitDot).arg(channelSetting.sensorICP).\ arg(channelSetting.ChUnitCoeff).arg(channelSetting.ChUnitDot).arg(channelSetting.sensorICP).\
arg(channelSetting.sensorType).arg(channelSetting.bearingClearance).arg(channelSetting.bearingStartPosition).\ arg(channelSetting.sensorType).arg(channelSetting.bearingClearance).arg(channelSetting.bearingStartPosition).\
arg(channelSetting.channelIntDiff).arg(channelSetting.channelRMSPkPk2Pk).arg(channelSetting.channelSensorType).\ arg(channelSetting.channelIntDiff).arg(channelSetting.channelRMSPkPk2Pk).arg(channelSetting.channelSensorType).\
@ -791,7 +798,7 @@ void CChannelSetting::slotSetChannelData(QStringList& listChannelName)
arg(channelSetting.tachTriggerHysteresis).arg(channelSetting.tachTriggerPerRev).arg(channelSetting.tachTriggerVoltageLevel).\ arg(channelSetting.tachTriggerHysteresis).arg(channelSetting.tachTriggerPerRev).arg(channelSetting.tachTriggerVoltageLevel).\
arg(channelSetting.thermalCoupleType).arg(channelSetting.xFullScalePosition).arg(channelSetting.xProcessVariableName).arg(channelSetting.xZeroScalePosition).\ arg(channelSetting.thermalCoupleType).arg(channelSetting.xFullScalePosition).arg(channelSetting.xProcessVariableName).arg(channelSetting.xZeroScalePosition).\
arg(channelSetting.zeroScalePosition).arg(channelSetting.speedRefChannelName).arg(channelSetting.defaultDisplay).\ arg(channelSetting.zeroScalePosition).arg(channelSetting.speedRefChannelName).arg(channelSetting.defaultDisplay).\
arg(channelSetting.confidenceDegree).arg(channelSetting.sectionNum).arg(listChannelName[i]); arg(channelSetting.confidenceDegree).arg(channelSetting.sectionNum).arg(channelSetting.sensorTypes).arg(listChannelID[i]);
QString tableName = "t_ChannelSetting "; QString tableName = "t_ChannelSetting ";
g_SqliteDB->UpdateDataSql(tableName,strUpdateSql); g_SqliteDB->UpdateDataSql(tableName,strUpdateSql);
@ -804,12 +811,11 @@ void CChannelSetting::on_pushButton_copy_clicked()
QString strWhere = QString(" sensorModuleNo = %1 and channelId <> '%2' ").arg(channelSetting.sensorModuleNo).arg(channelSetting.channelId); QString strWhere = QString(" sensorModuleNo = %1 and channelId <> '%2' ").arg(channelSetting.sensorModuleNo).arg(channelSetting.channelId);
QVector<ChannelSetting> copyChannel = g_SqliteDB->GetDataMultiLine("t_ChannelSetting","*",strWhere); QVector<ChannelSetting> copyChannel = g_SqliteDB->GetDataMultiLine("t_ChannelSetting","*",strWhere);
CopyChannelSetting *dialog = new CopyChannelSetting(); CopyChannelSetting *dialog = new CopyChannelSetting();
connect(dialog, SIGNAL(sgSetChannelData(QStringList&)), this, SLOT(slotSetChannelData(QStringList&))); connect(dialog, SIGNAL(sgCopyChannelData(QStringList&)), this, SLOT(slotCopyChannelData(QStringList&)));
dialog->copyChannel = copyChannel; dialog->copyChannel = copyChannel;
dialog->setWindowModality(Qt::ApplicationModal); dialog->setWindowModality(Qt::ApplicationModal);
dialog->displayCopyChannel(); dialog->displayCopyChannel();
dialog->show(); dialog->show();
} }
@ -824,6 +830,9 @@ void CChannelSetting::on_comboBox_sensorType_currentTextChanged(const QString &a
}else if(arg1 == "IEPE型传感器"){ }else if(arg1 == "IEPE型传感器"){
ui->lineEdit_vMax->setText("12"); ui->lineEdit_vMax->setText("12");
ui->lineEdit_vMin->setText("8"); ui->lineEdit_vMin->setText("8");
}else if(arg1 == "速度型传感器"){
ui->lineEdit_vMax->setText("24");
ui->lineEdit_vMin->setText("-24");
} }
} }
@ -841,10 +850,14 @@ void CChannelSetting::on_pushButton_CustomFilter_clicked()
CustomFilter *pCustomFilter = new CustomFilter(); CustomFilter *pCustomFilter = new CustomFilter();
pCustomFilter->channel_ID = channelSetting.channelId; pCustomFilter->channel_ID = channelSetting.channelId;
<<<<<<< HEAD
if(ui->channelTypeCombox->currentText()=="径向振动位移" && ui->comboBox_sensorType->currentText() =="低频位移") if(ui->channelTypeCombox->currentText()=="径向振动位移" && ui->comboBox_sensorType->currentText() =="低频位移")
pCustomFilter->vibrate_channel = 1; pCustomFilter->vibrate_channel = 1;
else else
pCustomFilter->vibrate_channel = 0; pCustomFilter->vibrate_channel = 0;
=======
pCustomFilter->vibrate_channel = 1;
>>>>>>> font
pCustomFilter->setWindowModality(Qt::ApplicationModal); pCustomFilter->setWindowModality(Qt::ApplicationModal);
pCustomFilter->show(); pCustomFilter->show();
pCustomFilter->getfilterInfo(); pCustomFilter->getfilterInfo();

View File

@ -43,7 +43,7 @@ private slots:
void on_pushButton_CustomFilter_clicked(); void on_pushButton_CustomFilter_clicked();
public slots: public slots:
void slotSetChannelData(QStringList&); void slotCopyChannelData(QStringList&);
private: private:
Ui::CChannelSetting *ui; Ui::CChannelSetting *ui;
QStringList m_itemList; QStringList m_itemList;
@ -52,7 +52,7 @@ private:
signals: signals:
void sgSetChannelData(ChannelSetting); void sgSetChannelData(ChannelSetting);
void ChannelSettingClose_sg();
}; };
#endif // CHANNELSETTING_H #endif // CHANNELSETTING_H

View File

@ -30,7 +30,8 @@ void CCharacteristicList::timerEvent(QTimerEvent *ev)
} }
void CCharacteristicList::InitTable() void CCharacteristicList::InitTable()
{ {
headerStr = QObject::tr("通道名称,单位,通频值,峰峰值,平均工作位置,间隙,安装角度,状态"); headerStr = QObject::tr("通道名称,单位,通频值,峰峰值,反时限危险值,反时限警报值,平均工作位置,间隙,安装角度,状态");
//headerStr = QObject::tr("通道名称,单位,通频值,峰峰值,平均工作位置,间隙,安装角度,状态");
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
model = new QStandardItemModel(ui->tableView); model = new QStandardItemModel(ui->tableView);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行 ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
@ -41,7 +42,9 @@ void CCharacteristicList::InitTable()
ui->tableView->setAlternatingRowColors(true); ui->tableView->setAlternatingRowColors(true);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setColumnWidth(0, 300); ui->tableView->setColumnWidth(0, 300);
ui->tableView->setColumnWidth(4, 200); ui->tableView->setColumnWidth(4, 160);
ui->tableView->setColumnWidth(5, 160);
ui->tableView->setColumnWidth(6, 200);
// for (int i = 0;i < g_ChannelView.size(); i++) // for (int i = 0;i < g_ChannelView.size(); i++)
// { // {
@ -83,10 +86,12 @@ void CCharacteristicList::DisPlayCharacteristic()
model->setData(model->index(j,2,QModelIndex()),QString::number(g_Charateristic[j].DCValues,'f',g_Charateristic[j].ChUnitDot)); model->setData(model->index(j,2,QModelIndex()),QString::number(g_Charateristic[j].DCValues,'f',g_Charateristic[j].ChUnitDot));
} }
model->setData(model->index(j,3,QModelIndex()),QString::number(g_Charateristic[j].DiagnosisPk2Pk,'f',g_Charateristic[j].ChUnitDot)); model->setData(model->index(j,3,QModelIndex()),QString::number(g_Charateristic[j].DiagnosisPk2Pk,'f',g_Charateristic[j].ChUnitDot));
model->setData(model->index(j,4,QModelIndex()),g_Charateristic[j].xFullScalePosition); model->setData(model->index(j,4,QModelIndex()),g_Charateristic[j].InvertDanger);
model->setData(model->index(j,5,QModelIndex()),QString::number(g_Charateristic[j].Gap,'f',g_Charateristic[j].ChUnitDot)); model->setData(model->index(j,5,QModelIndex()),g_Charateristic[j].InvertAlarm);
model->setData(model->index(j,6,QModelIndex()),g_Charateristic[j].ZeroScalePosition); model->setData(model->index(j,6,QModelIndex()),g_Charateristic[j].xFullScalePosition);
model->setData(model->index(j,7,QModelIndex()),g_Charateristic[j].SensorStatus); model->setData(model->index(j,7,QModelIndex()),QString::number(g_Charateristic[j].Gap,'f',g_Charateristic[j].ChUnitDot));
model->setData(model->index(j,8,QModelIndex()),g_Charateristic[j].ZeroScalePosition);
model->setData(model->index(j,9,QModelIndex()),g_Charateristic[j].SensorStatus);
} }
} }
} }

View File

@ -3,7 +3,7 @@
#include <QWidget> #include <QWidget>
#include <QStandardItemModel> //数据模型类 #include <QStandardItemModel> //数据模型类
#include "HeaderView.h" //#include "HeaderView.h"
#include "TableHeaderView.h" #include "TableHeaderView.h"
#include "global.h" #include "global.h"
#include <QTimer> //定时器类 #include <QTimer> //定时器类

View File

@ -31,6 +31,8 @@ CConfiguration::CConfiguration(QWidget *parent) :
pHeader2->setSectionResizeMode(QHeaderView::ResizeToContents); pHeader2->setSectionResizeMode(QHeaderView::ResizeToContents);
pHeader2->setStretchLastSection(false); pHeader2->setStretchLastSection(false);
ui->treeView_Available->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->treeView_Relay->setEditTriggers(QAbstractItemView::NoEditTriggers);
connect(ui->comboBox_WC,SIGNAL(currentTextChanged(const QString &)),this,SLOT(on_comboBox_WC_currentTextChanged2(const QString&))); connect(ui->comboBox_WC,SIGNAL(currentTextChanged(const QString &)),this,SLOT(on_comboBox_WC_currentTextChanged2(const QString&)));
} }
@ -87,8 +89,13 @@ void CConfiguration::Init()
item1->appendRow(itemAnd); item1->appendRow(itemAnd);
item1->appendRow(itemOr); item1->appendRow(itemOr);
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
QString name = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
QFile loadFile(name); QFile loadFile(name);
if(!loadFile.open(QIODevice::ReadOnly)) if(!loadFile.open(QIODevice::ReadOnly))
{ {
@ -153,6 +160,10 @@ void CConfiguration::Init()
strStaticData = "峰值"; strStaticData = "峰值";
else if(strList[0] == "MonitorPk2Pk") else if(strList[0] == "MonitorPk2Pk")
strStaticData = "监测保护峰峰值"; strStaticData = "监测保护峰峰值";
else if(strList[0] == "InvertDanger")
strStaticData = "反时限危险值";
else if(strList[0] == "InvertAlarm")
strStaticData = "反时限警报值";
if(xAlertOverEnabled == 1){ if(xAlertOverEnabled == 1){
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值")); item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值"));
@ -187,7 +198,13 @@ void CConfiguration::Init()
void CConfiguration::LoadConfiguration() void CConfiguration::LoadConfiguration()
{ {
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json"; #ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
QFile loadFile(name); QFile loadFile(name);
if(!loadFile.open(QIODevice::ReadOnly)) if(!loadFile.open(QIODevice::ReadOnly))
{ {
@ -459,6 +476,7 @@ QJsonObject CConfiguration::SelectChannel(int channelNo)
ConfiguraitonsObj["ChannelId"] = g_ChannelBaseInfo[i].channelID; ConfiguraitonsObj["ChannelId"] = g_ChannelBaseInfo[i].channelID;
ConfiguraitonsObj["ChannelName"] = g_ChannelBaseInfo[i].channelName; ConfiguraitonsObj["ChannelName"] = g_ChannelBaseInfo[i].channelName;
ConfiguraitonsObj["ChannelNoInBoard"] = g_ChannelBaseInfo[i].channelNoInBoard; ConfiguraitonsObj["ChannelNoInBoard"] = g_ChannelBaseInfo[i].channelNoInBoard;
ConfiguraitonsObj["DelaySeconds"] = ui->lineEdit_delay->text();
ConfiguraitonsObj["ChannelOperate"] = -1; ConfiguraitonsObj["ChannelOperate"] = -1;
} }
} }
@ -733,6 +751,10 @@ void CConfiguration::on_comboBox_WC_currentTextChanged2(const QString &arg1)
strStaticData = "峰值"; strStaticData = "峰值";
else if(strList[0] == "MonitorPk2Pk") else if(strList[0] == "MonitorPk2Pk")
strStaticData = "监测保护峰峰值"; strStaticData = "监测保护峰峰值";
else if(strList[0] == "InvertDanger")
strStaticData = "反时限危险值";
else if(strList[0] == "InvertAlarm")
strStaticData = "反时限警报值";
if(xAlertOverEnabled == 1){ if(xAlertOverEnabled == 1){
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值")); item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值"));
@ -792,11 +814,23 @@ void CConfiguration::PushData()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(WorkConditionConfiguraitonsObj); jsonDoc.setObject(WorkConditionConfiguraitonsObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
QJsonDocument jsonDoc2; QJsonDocument jsonDoc2;
jsonDoc2.setObject(WorkConditionConfiguraitonsObj2); jsonDoc2.setObject(WorkConditionConfiguraitonsObj2);
QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
#ifdef Q_OS_WIN32
QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
#endif
#ifdef Q_OS_LINUX
QString fileName2 = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations2.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
@ -892,6 +926,7 @@ void CConfiguration::ViewRelay(int ChannelNoInBoard)
ui->lineEdit_2->setText(strSecondDelaySeconds); ui->lineEdit_2->setText(strSecondDelaySeconds);
for (int j = 0;j < tempArray.size() ;j++ ) { for (int j = 0;j < tempArray.size() ;j++ ) {
if(tempArray.at(j)["ChannelNoInBoard"] == ChannelNoInBoard){ if(tempArray.at(j)["ChannelNoInBoard"] == ChannelNoInBoard){
ui->lineEdit_delay->setText(tempArray.at(j)["DelaySeconds"].toString());
QJsonArray tempArray2 = tempArray.at(j)["logicExpress"].toArray(); QJsonArray tempArray2 = tempArray.at(j)["logicExpress"].toArray();
for (int k = 0; k < tempArray2.size(); k++) { for (int k = 0; k < tempArray2.size(); k++) {
QJsonObject tempObj2 = tempArray2[k].toObject(); QJsonObject tempObj2 = tempArray2[k].toObject();
@ -1095,6 +1130,7 @@ void CConfiguration::on_radioButton_1_clicked()
{ {
m_curentRLY = 3; m_curentRLY = 3;
ui->label_3->setText(ui->radioButton_1->text()+"");
ViewRelay(3); ViewRelay(3);
} }
@ -1102,6 +1138,7 @@ void CConfiguration::on_radioButton_1_clicked()
void CConfiguration::on_radioButton_2_clicked() void CConfiguration::on_radioButton_2_clicked()
{ {
m_curentRLY = 4; m_curentRLY = 4;
ui->label_3->setText(ui->radioButton_2->text()+"");
ViewRelay(4); ViewRelay(4);
} }
@ -1109,6 +1146,7 @@ void CConfiguration::on_radioButton_2_clicked()
void CConfiguration::on_radioButton_3_clicked() void CConfiguration::on_radioButton_3_clicked()
{ {
m_curentRLY = 5; m_curentRLY = 5;
ui->label_3->setText(ui->radioButton_3->text()+"");
ViewRelay(5); ViewRelay(5);
} }
@ -1116,6 +1154,7 @@ void CConfiguration::on_radioButton_3_clicked()
void CConfiguration::on_radioButton_4_clicked() void CConfiguration::on_radioButton_4_clicked()
{ {
m_curentRLY = 6; m_curentRLY = 6;
ui->label_3->setText(ui->radioButton_4->text()+"");
ViewRelay(6); ViewRelay(6);
} }
@ -1123,6 +1162,7 @@ void CConfiguration::on_radioButton_4_clicked()
void CConfiguration::on_radioButton_5_clicked() void CConfiguration::on_radioButton_5_clicked()
{ {
m_curentRLY = 7; m_curentRLY = 7;
ui->label_3->setText(ui->radioButton_5->text()+"");
ViewRelay(7); ViewRelay(7);
} }
@ -1130,6 +1170,7 @@ void CConfiguration::on_radioButton_5_clicked()
void CConfiguration::on_radioButton_6_clicked() void CConfiguration::on_radioButton_6_clicked()
{ {
m_curentRLY = 8; m_curentRLY = 8;
ui->label_3->setText(ui->radioButton_6->text()+"");
ViewRelay(8); ViewRelay(8);
} }
@ -1137,6 +1178,7 @@ void CConfiguration::on_radioButton_6_clicked()
void CConfiguration::on_radioButton_8_clicked() void CConfiguration::on_radioButton_8_clicked()
{ {
m_curentRLY = 10; m_curentRLY = 10;
ui->label_3->setText(ui->radioButton_8->text()+"");
ViewRelay(10); ViewRelay(10);
} }
@ -1144,6 +1186,7 @@ void CConfiguration::on_radioButton_8_clicked()
void CConfiguration::on_radioButton_7_clicked() void CConfiguration::on_radioButton_7_clicked()
{ {
m_curentRLY = 9; m_curentRLY = 9;
ui->label_3->setText(ui->radioButton_7->text()+"");
ViewRelay(9); ViewRelay(9);
} }
@ -1151,6 +1194,7 @@ void CConfiguration::on_radioButton_7_clicked()
void CConfiguration::on_radioButton_9_clicked() void CConfiguration::on_radioButton_9_clicked()
{ {
m_curentRLY = 11; m_curentRLY = 11;
ui->label_3->setText(ui->radioButton_9->text()+"");
ViewRelay(11); ViewRelay(11);
} }
@ -1158,6 +1202,7 @@ void CConfiguration::on_radioButton_9_clicked()
void CConfiguration::on_radioButton_10_clicked() void CConfiguration::on_radioButton_10_clicked()
{ {
m_curentRLY = 12; m_curentRLY = 12;
ui->label_3->setText(ui->radioButton_10->text()+"");
ViewRelay(12); ViewRelay(12);
} }

View File

@ -392,7 +392,7 @@ color: rgb(27, 30, 35);</string>
<item> <item>
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_4">
<property name="text"> <property name="text">
<string>第二层延时:</string> <string>工况延时:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -437,6 +437,45 @@ color: rgb(27, 30, 35);</string>
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>- -</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_delay">
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>S</string>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_5"/> <layout class="QHBoxLayout" name="horizontalLayout_5"/>
</item> </item>

View File

@ -31,28 +31,29 @@ void CopyChannelSetting::displayCopyChannel()
row ++ ; row ++ ;
} }
m_listCheckBox.append(checkButton); m_mapCheckBox.insert(copyChannel[i].channelId,checkButton);
} }
} }
void CopyChannelSetting::on_pushButton_confirm_clicked() void CopyChannelSetting::on_pushButton_confirm_clicked()
{ {
QStringList listChannelName; QStringList listChannelID;
for (int i = 0; i < m_listCheckBox.size(); i++) { QMap<QString,QCheckBox*>::iterator iter = m_mapCheckBox.begin();
if(m_listCheckBox[i]->checkState()){ for (; iter != m_mapCheckBox.end(); iter++) {
qDebug() << m_listCheckBox[i]->text() << endl; if(iter.value()->checkState()){
listChannelName.append(m_listCheckBox[i]->text()); listChannelID.append(iter.key());
} }
} }
sgSetChannelData(listChannelName); sgCopyChannelData(listChannelID);
this->close(); this->close();
} }
void CopyChannelSetting::on_pushButton_selectAll_clicked() void CopyChannelSetting::on_pushButton_selectAll_clicked()
{ {
for (int i = 0; i < m_listCheckBox.size(); i++) { QMap<QString,QCheckBox*>::iterator iter = m_mapCheckBox.begin();
m_listCheckBox[i]->setCheckState(Qt::Checked); for (; iter != m_mapCheckBox.end(); iter++) {
iter.value()->setCheckState(Qt::Checked);
} }
} }

View File

@ -28,9 +28,9 @@ private slots:
private: private:
Ui::CopyChannelSetting *ui; Ui::CopyChannelSetting *ui;
QList<QCheckBox*> m_listCheckBox; QMap<QString,QCheckBox*> m_mapCheckBox;
signals: signals:
void sgSetChannelData(QStringList&); void sgCopyChannelData(QStringList&);
}; };
#endif // COPYCHANNELSETTING_H #endif // COPYCHANNELSETTING_H

View File

@ -119,8 +119,8 @@ void CCopyDatFile::on_pushButton_refresh_clicked()
ui -> treeWidget_dist ->clear(); ui -> treeWidget_dist ->clear();
ftp -> cd("/run/media/"); ftp -> cd("/run/media/");
ui->label_path->setText("/run/media/"); ui->label_path->setText("/run/media/");
m_strDistPwd = ""; m_strDistPath = "";
m_strDistPwd = "/run/media/"; m_strDistPath = "/run/media/";
ftp->list(); ftp->list();
} }
@ -133,10 +133,10 @@ void CCopyDatFile::processItem(QTreeWidgetItem *item, int /*column*/)
currentPath += '/'; currentPath += '/';
currentPath += name; currentPath += name;
ftp->cd(name); ftp->cd(name);
m_strDistPwd = ""; m_strDistPath = "";
m_strDistPwd = "/run/media" + currentPath; m_strDistPath = "/run/media" + currentPath;
ui->label_path->setText(m_strDistPwd); ui->label_path->setText(m_strDistPath);
currentPath = ""; currentPath = "";
ftp->list(); ftp->list();
return; return;
@ -153,7 +153,7 @@ void CCopyDatFile::slotCopyItem()
allObj.insert("cmd", "100"); allObj.insert("cmd", "100");
cmdBody.insert("subcmd",1); cmdBody.insert("subcmd",1);
cmdBody.insert("srcfile",str); cmdBody.insert("srcfile",str);
cmdBody.insert("dstdirectory",m_strDistPwd); cmdBody.insert("dstdirectory",m_strDistPath);
allObj["cmdBody"] = cmdBody; allObj["cmdBody"] = cmdBody;
QNetworkRequest req; QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP); QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
@ -179,7 +179,7 @@ void CCopyDatFile::on_pushButton_exit_clicked()
QJsonObject allObj,cmdBody; QJsonObject allObj,cmdBody;
allObj.insert("cmd", "100"); allObj.insert("cmd", "100");
cmdBody.insert("subcmd",3); cmdBody.insert("subcmd",3);
cmdBody.insert("dstdirectory",m_strDistPwd); cmdBody.insert("dstdirectory",m_strDistPath);
allObj["cmdBody"] = cmdBody; allObj["cmdBody"] = cmdBody;
QNetworkRequest req; QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP); QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);

View File

@ -3,8 +3,8 @@
#include <QWidget> #include <QWidget>
#include <QUrl> #include <QUrl>
#include <QtFtp/qftp.h> #include <qftp.h>
#include <QtFtp/qurlinfo.h> #include <qurlinfo.h>
#include <QTreeWidgetItem> #include <QTreeWidgetItem>
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QFile> #include <QFile>
@ -42,7 +42,7 @@ private:
QFtp *ftp = nullptr; QFtp *ftp = nullptr;
QStandardItemModel *model; QStandardItemModel *model;
QString currentPath; QString currentPath;
QString m_strDistPwd; QString m_strDistPath;
QAction *copyAction; QAction *copyAction;
}; };

View File

@ -92,7 +92,11 @@ void CustomFilter::on_pushButton_Submit_clicked()
type = false; type = false;
} }
<<<<<<< HEAD
if(ui->spinBox_start->text().toInt() >= ui->spinBox_stop->text().toInt()){ if(ui->spinBox_start->text().toInt() >= ui->spinBox_stop->text().toInt()){
=======
if(ui->doubleSpinBox_start->text().toDouble() >= ui->doubleSpinBox_stop->text().toDouble()){
>>>>>>> font
QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("频率下限设置错误!")); QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("频率下限设置错误!"));
return; return;
} }
@ -100,10 +104,18 @@ void CustomFilter::on_pushButton_Submit_clicked()
sendData2["cmd"] = "95"; sendData2["cmd"] = "95";
sendData2["chan_id"] = channel_ID; sendData2["chan_id"] = channel_ID;
sendData2["open"] = type; sendData2["open"] = type;
<<<<<<< HEAD
sendData2["start"] = ui->spinBox_start->text().toInt(); sendData2["start"] = ui->spinBox_start->text().toInt();
sendData2["stop"] = ui->spinBox_stop->text().toInt(); sendData2["stop"] = ui->spinBox_stop->text().toInt();
req.setUrl(sUrl); req.setUrl(sUrl);
g_NetMgr->PostJson(req,sendData2); g_NetMgr->PostJson(req,sendData2);
=======
sendData2["start"] = ui->doubleSpinBox_start->text().toDouble();
sendData2["stop"] = ui->doubleSpinBox_stop->text().toDouble();
req.setUrl(sUrl);
g_NetMgr->PostJson(req,sendData2);
this->close();
>>>>>>> font
} }
void CustomFilter::slotNetMgr(QString sAddr, const QVariant &msg) void CustomFilter::slotNetMgr(QString sAddr, const QVariant &msg)
@ -122,13 +134,23 @@ void CustomFilter::slotNetMgr(QString sAddr, const QVariant &msg)
if(arrays_value.toString() == "94"){ if(arrays_value.toString() == "94"){
int Statusfilter = objec.take("status").toInt(); int Statusfilter = objec.take("status").toInt();
<<<<<<< HEAD
ui->spinBox_start->setValue(objec.take("start").toInt()); ui->spinBox_start->setValue(objec.take("start").toInt());
ui->spinBox_stop->setValue(objec.take("stop").toInt()); ui->spinBox_stop->setValue(objec.take("stop").toInt());
=======
ui->doubleSpinBox_start->setValue(objec.take("start").toDouble());
ui->doubleSpinBox_stop->setValue(objec.take("stop").toDouble());
>>>>>>> font
if(Statusfilter){ if(Statusfilter){
ui->comboBox_open->setCurrentText(""); ui->comboBox_open->setCurrentText("");
}else if(!Statusfilter){ }else if(!Statusfilter){
ui->comboBox_open->setCurrentText(""); ui->comboBox_open->setCurrentText("");
<<<<<<< HEAD
=======
ui->doubleSpinBox_start->setEnabled(false);
ui->doubleSpinBox_stop->setEnabled(false);
>>>>>>> font
} }
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("获取成功!")); QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("获取成功!"));
}else if(arrays_value.toString() == "98"){ }else if(arrays_value.toString() == "98"){
@ -145,13 +167,23 @@ void CustomFilter::slotNetMgr(QString sAddr, const QVariant &msg)
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("获取成功!")); QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("获取成功!"));
}else if(arrays_value.toString() == "112"){ }else if(arrays_value.toString() == "112"){
int Statusfilter = objec.take("status").toInt(); int Statusfilter = objec.take("status").toInt();
<<<<<<< HEAD
ui->spinBox_start->setValue(objec.take("start").toInt()); ui->spinBox_start->setValue(objec.take("start").toInt());
ui->spinBox_stop->setValue(objec.take("stop").toInt()); ui->spinBox_stop->setValue(objec.take("stop").toInt());
=======
ui->doubleSpinBox_start->setValue(objec.take("start").toDouble());
ui->doubleSpinBox_stop->setValue(objec.take("stop").toDouble());
>>>>>>> font
if(Statusfilter){ if(Statusfilter){
ui->comboBox_open->setCurrentText(""); ui->comboBox_open->setCurrentText("");
}else if(!Statusfilter){ }else if(!Statusfilter){
ui->comboBox_open->setCurrentText(""); ui->comboBox_open->setCurrentText("");
<<<<<<< HEAD
=======
ui->doubleSpinBox_start->setEnabled(false);
ui->doubleSpinBox_stop->setEnabled(false);
>>>>>>> font
} }
int num = objec["num"].toInt(); int num = objec["num"].toInt();
int j = 0; int j = 0;
@ -170,8 +202,13 @@ void CustomFilter::slotNetMgr(QString sAddr, const QVariant &msg)
} }
if(!vibrate_channel){ if(!vibrate_channel){
ui->comboBox_open->setEnabled(false); ui->comboBox_open->setEnabled(false);
<<<<<<< HEAD
ui->spinBox_start->setEnabled(false); ui->spinBox_start->setEnabled(false);
ui->spinBox_stop->setEnabled(false); ui->spinBox_stop->setEnabled(false);
=======
ui->doubleSpinBox_start->setEnabled(false);
ui->doubleSpinBox_stop->setEnabled(false);
>>>>>>> font
} }
} }
@ -189,7 +226,19 @@ void CustomFilter::getfilterInfo()
} }
<<<<<<< HEAD
void CustomFilter::comboBox_open_currentTextChanged(const QString &) void CustomFilter::comboBox_open_currentTextChanged(const QString &)
{ {
qDebug() << "" << endl; qDebug() << "" << endl;
=======
void CustomFilter::comboBox_open_currentTextChanged(const QString &str)
{
if(str == ""){
ui->doubleSpinBox_start->setEnabled(false);
ui->doubleSpinBox_stop->setEnabled(false);
}else if(str == ""){
ui->doubleSpinBox_start->setEnabled(true);
ui->doubleSpinBox_stop->setEnabled(true);
}
>>>>>>> font
} }

View File

@ -28,7 +28,11 @@ private slots:
void on_pushButton_Submit_clicked(); void on_pushButton_Submit_clicked();
void slotNetMgr(QString sAddr,const QVariant& msg); void slotNetMgr(QString sAddr,const QVariant& msg);
<<<<<<< HEAD
void comboBox_open_currentTextChanged(const QString &); void comboBox_open_currentTextChanged(const QString &);
=======
void comboBox_open_currentTextChanged(const QString &str);
>>>>>>> font
private: private:
Ui::CustomFilter *ui; Ui::CustomFilter *ui;
TableHeaderView *myHeader; TableHeaderView *myHeader;

View File

@ -94,6 +94,7 @@ color: rgb(27, 30, 35);</string>
</widget> </widget>
</item> </item>
<item> <item>
<<<<<<< HEAD
<widget class="QSpinBox" name="spinBox_start"> <widget class="QSpinBox" name="spinBox_start">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
@ -103,6 +104,11 @@ color: rgb(27, 30, 35);</string>
</property> </property>
<property name="maximum"> <property name="maximum">
<number>9999</number> <number>9999</number>
=======
<widget class="QDoubleSpinBox" name="doubleSpinBox_start">
<property name="maximum">
<double>999999.989999999990687</double>
>>>>>>> font
</property> </property>
</widget> </widget>
</item> </item>
@ -138,6 +144,7 @@ color: rgb(27, 30, 35);</string>
</widget> </widget>
</item> </item>
<item> <item>
<<<<<<< HEAD
<widget class="QSpinBox" name="spinBox_stop"> <widget class="QSpinBox" name="spinBox_stop">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
@ -150,6 +157,17 @@ color: rgb(27, 30, 35);</string>
</property> </property>
<property name="value"> <property name="value">
<number>200</number> <number>200</number>
=======
<widget class="QDoubleSpinBox" name="doubleSpinBox_stop">
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>999999.989999999990687</double>
>>>>>>> font
</property> </property>
</widget> </widget>
</item> </item>
@ -196,7 +214,15 @@ color: rgb(27, 30, 35);</string>
<widget class="QWidget" name="widget_3" native="true"> <widget class="QWidget" name="widget_3" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
<item> <item>
<<<<<<< HEAD
<widget class="QTableView" name="tableView"/> <widget class="QTableView" name="tableView"/>
=======
<widget class="QTableView" name="tableView">
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
>>>>>>> font
</item> </item>
</layout> </layout>
</widget> </widget>

View File

@ -15,7 +15,10 @@ CDIO_Board::CDIO_Board(QWidget *parent) :
Init(); Init();
CRealTimeForm *pRealTime = new CRealTimeForm(); CRealTimeForm *pRealTime = new CRealTimeForm();
connect(pRealTime,SIGNAL(sigDOStatus(QJsonArray&,QJsonArray&)), this, SLOT(slotDOStatus(QJsonArray&,QJsonArray&))); connect(pRealTime,SIGNAL(sigDOStatus(QJsonArray&,QJsonArray&)), this, SLOT(slotDOStatus(QJsonArray&,QJsonArray&)));
if(g_strIOControl == "1"){
ui->pushButton_Close->setEnabled(1);
ui->pushButton_Open->setEnabled(1);
}
} }
@ -135,6 +138,18 @@ void CDIO_Board::Init()
void CDIO_Board::on_pushButton_Close_clicked() void CDIO_Board::on_pushButton_Close_clicked()
{ {
QMessageBox:: StandardButton iResult = QMessageBox::question(this, QStringLiteral("提示"),
QStringLiteral("确认后将关闭选择的开出通道!"),
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
switch (iResult) {
case QMessageBox::Yes:
break;
case QMessageBox::No:
return;
break;
default:
break;
}
QJsonObject allObj,cmdBody,itemObj,DOContralObj; QJsonObject allObj,cmdBody,itemObj,DOContralObj;
QJsonArray arrayBody; QJsonArray arrayBody;
allObj.insert("cmd", "91"); allObj.insert("cmd", "91");
@ -238,6 +253,18 @@ void CDIO_Board::on_pushButton_Open_clicked()
// ] // ]
// } // }
// } // }
QMessageBox:: StandardButton iResult = QMessageBox::question(this, QStringLiteral("提示"),
QStringLiteral("确认后将打开选择的开出通道!"),
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
switch (iResult) {
case QMessageBox::Yes:
break;
case QMessageBox::No:
return;
break;
default:
break;
}
QJsonObject allObj,cmdBody,itemObj,DOContralObj; QJsonObject allObj,cmdBody,itemObj,DOContralObj;
QJsonArray arrayBody; QJsonArray arrayBody;
allObj.insert("cmd", "91"); allObj.insert("cmd", "91");

View File

@ -1086,6 +1086,9 @@ color: rgb(27, 30, 35);
<layout class="QHBoxLayout" name="horizontalLayout_30"> <layout class="QHBoxLayout" name="horizontalLayout_30">
<item> <item>
<widget class="QPushButton" name="pushButton_Close"> <widget class="QPushButton" name="pushButton_Close">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>120</width> <width>120</width>
@ -1118,6 +1121,9 @@ color: rgb(27, 30, 35);
</item> </item>
<item> <item>
<widget class="QPushButton" name="pushButton_Open"> <widget class="QPushButton" name="pushButton_Open">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>120</width> <width>120</width>

View File

@ -337,7 +337,7 @@ void CDataGraphView::ViewData(QString& strChannelID,QVector<WAVE_DATA>& wavedata
QVector<double>::iterator min = std::min_element(std::begin(value), std::end(value)); QVector<double>::iterator min = std::min_element(std::begin(value), std::end(value));
double biggest = *max; double biggest = *max;
double minimum = *min; double minimum = *min;
ui->widget_TimeGraph->yAxis->setRange(minimum-1,biggest+2); ui->widget_TimeGraph->yAxis->setRange(minimum,biggest);
ui->widget_TimeGraph->axisRect()->setRangeZoomFactor(1.2,1); ui->widget_TimeGraph->axisRect()->setRangeZoomFactor(1.2,1);
ui->widget_TimeGraph->axisRect()->setRangeZoomAxes(ui->widget_TimeGraph->xAxis,ui->widget_TimeGraph->yAxis); ui->widget_TimeGraph->axisRect()->setRangeZoomAxes(ui->widget_TimeGraph->xAxis,ui->widget_TimeGraph->yAxis);
ui->widget_TimeGraph->replot(); ui->widget_TimeGraph->replot();

View File

@ -4,7 +4,7 @@
# #
#------------------------------------------------- #-------------------------------------------------
QT += core gui network charts ftp QT += core gui network charts
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets sql ftp printsupport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets sql ftp printsupport
@ -16,7 +16,6 @@ TEMPLATE = app
# depend on your compiler). Please consult the documentation of the # depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it. # deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS DEFINES += QT_DEPRECATED_WARNINGS
QMAKE_LFLAGS += -Wl,--large-address-aware
# You can also make your code fail to compile if you use deprecated APIs. # You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line. # In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt. # You can also select to disable deprecated APIs only up to a certain version of Qt.
@ -29,6 +28,7 @@ CONFIG += c++11
SOURCES += \ SOURCES += \
AddChannel.cpp \ AddChannel.cpp \
AlarmDetails.cpp \ AlarmDetails.cpp \
Backup.cpp \
CharacteristicList.cpp \ CharacteristicList.cpp \
Configuration.cpp \ Configuration.cpp \
CopyChannelSetting.cpp \ CopyChannelSetting.cpp \
@ -38,6 +38,7 @@ SOURCES += \
DataGraphView.cpp \ DataGraphView.cpp \
FileServerConfig.cpp \ FileServerConfig.cpp \
HistoryAlarm.cpp \ HistoryAlarm.cpp \
ImportConfig.cpp \
Mqttclient.cpp \ Mqttclient.cpp \
MyTreeView.cpp \ MyTreeView.cpp \
NTPServerConfig.cpp \ NTPServerConfig.cpp \
@ -80,6 +81,7 @@ SOURCES += \
HEADERS += \ HEADERS += \
AddChannel.h \ AddChannel.h \
AlarmDetails.h \ AlarmDetails.h \
Backup.h \
CharacteristicList.h \ CharacteristicList.h \
Configuration.h \ Configuration.h \
CopyChannelSetting.h \ CopyChannelSetting.h \
@ -89,6 +91,7 @@ HEADERS += \
DataGraphView.h \ DataGraphView.h \
FileServerConfig.h \ FileServerConfig.h \
HistoryAlarm.h \ HistoryAlarm.h \
ImportConfig.h \
Mqttclient.h \ Mqttclient.h \
MyTreeView.h \ MyTreeView.h \
NTPServerConfig.h \ NTPServerConfig.h \
@ -131,6 +134,8 @@ HEADERS += \
FORMS += \ FORMS += \
AddChannel.ui \ AddChannel.ui \
AlarmDetails.ui \ AlarmDetails.ui \
BackUp.ui \
Backup.ui \
CharacteristicList.ui \ CharacteristicList.ui \
Configuration.ui \ Configuration.ui \
CopyChannelSetting.ui \ CopyChannelSetting.ui \
@ -140,6 +145,7 @@ FORMS += \
DataGraphView.ui \ DataGraphView.ui \
FileServerConfig.ui \ FileServerConfig.ui \
HistoryAlarm.ui \ HistoryAlarm.ui \
ImportConfig.ui \
NTPServerConfig.ui \ NTPServerConfig.ui \
OtherConfig.ui \ OtherConfig.ui \
PSConfig.ui \ PSConfig.ui \
@ -175,9 +181,14 @@ DISTFILES += \
INCLUDEPATH += $$PWD/include/mqtt INCLUDEPATH += $$PWD/include/mqtt
INCLUDEPATH += $$PWD/include/fftw INCLUDEPATH += $$PWD/include/fftw
INCLUDEPATH += $$PWD/include/ftp
LIBS += -L$$PWD/lib/fftw/ -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3 LIBS += -L$$PWD/lib/ftp/ -lQt5Ftp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/fftw/ -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/fftw/ -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3
else:unix: LIBS += -L$$PWD/lib/fftw/ -lfftw3
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/mqtt/ -lQt5Qmqtt win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/mqtt/ -lQt5Qmqtt
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/mqtt/ -lQt5Qmqttd else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/mqtt/ -lQt5Qmqttd
else:unix: LIBS += -L$$PWD/lib/MQTT/ -lQt5Qmqtt else:unix: LIBS += -L$$PWD/lib/mqtt/ -lQt5Qmqtt

View File

@ -47,7 +47,13 @@ void CFileServerConfig::Init()
ui->comboBox_NetStatus_PS->addItem("DHCP"); ui->comboBox_NetStatus_PS->addItem("DHCP");
ui->comboBox_NetStatus_PL->addItem("STATIC"); ui->comboBox_NetStatus_PL->addItem("STATIC");
ui->comboBox_NetStatus_PL->addItem("DHCP"); ui->comboBox_NetStatus_PL->addItem("DHCP");
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/NetWorkConfig.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -86,8 +92,13 @@ void CFileServerConfig::Init()
} }
} }
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -111,8 +122,13 @@ void CFileServerConfig::Init()
ui->lineEdit_writingPeriod->setText(OptionObject["writingPeriodLocalServer"].toString()); ui->lineEdit_writingPeriod->setText(OptionObject["writingPeriodLocalServer"].toString());
} }
} }
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/TcpConfig.json";
#endif
fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
QFile file(fileName); QFile file(fileName);
@ -134,8 +150,13 @@ void CFileServerConfig::Init()
QString strPort = QString("%1").arg(jsonObject["port"].toInt()); QString strPort = QString("%1").arg(jsonObject["port"].toInt());
ui->lineEdit_TCP_PORT->setText(strPort); ui->lineEdit_TCP_PORT->setText(strPort);
} }
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ModbusConfig.json";
#endif
fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
QFile file(fileName); QFile file(fileName);
@ -190,7 +211,13 @@ void CFileServerConfig::on_pushButtonPush_clicked()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(netWorkObj); jsonDoc.setObject(netWorkObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/NetWorkConfig.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
@ -214,7 +241,13 @@ void CFileServerConfig::on_pushButtonPush_clicked()
QJsonDocument jsonDoc2; QJsonDocument jsonDoc2;
jsonDoc2.setObject(m_ServerObject); jsonDoc2.setObject(m_ServerObject);
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json"; #ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
QFile file2(fileName); QFile file2(fileName);
file2.open(QIODevice::WriteOnly); file2.open(QIODevice::WriteOnly);
@ -302,7 +335,13 @@ void CFileServerConfig::on_pushButtonConfirm_clicked()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(TcpConfigObj); jsonDoc.setObject(TcpConfigObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/TcpConfig.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -324,7 +363,13 @@ void CFileServerConfig::on_pushButtonConfirm2_clicked()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(RTUConfigObj); jsonDoc.setObject(RTUConfigObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/ModbusConfig.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());

View File

@ -6,29 +6,26 @@
#include "AlarmDetails.h" #include "AlarmDetails.h"
#include "ftpclient.h" #include "ftpclient.h"
#include "global.h" #include "global.h"
#include "NetMgr.h"
CHistoryAlarm::CHistoryAlarm(QWidget *parent) : CHistoryAlarm::CHistoryAlarm(QWidget *parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::CHistoryAlarm) ui(new Ui::CHistoryAlarm)
{ {
ui->setupUi(this); ui->setupUi(this);
headerStr = QObject::tr("序号,报警级别,报警内容,报警时间,复归时间,报警详情"); headerStr = QObject::tr(" ,序号,报警级别,报警内容,报警时间,复归时间,报警详情");
myHeader = new TableHeaderView(Qt::Horizontal, ui->tableView);
model = new QStandardItemModel(ui->tableView); model = new QStandardItemModel(ui->tableView);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行 ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
connect(myHeader, &TableHeaderView::stateChanged, this, &CHistoryAlarm::headerStateChangedSlot);
QStringList headerList = headerStr.split(","); QStringList headerList = headerStr.split(",");
model->setHorizontalHeaderLabels(headerList); model->setHorizontalHeaderLabels(headerList);
model->setColumnCount(headerList.size()); model->setColumnCount(headerList.size());
ui->tableView->setModel(model); ui->tableView->setModel(model);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
ui->tableView->setColumnWidth(2, 300);
ui->tableView->setColumnWidth(3, 200);
ui->tableView->setColumnWidth(4, 200);
ui->tableView->setAlternatingRowColors(true);
ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents); ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setSectionResizeMode(5,QHeaderView::ResizeToContents); ui->tableView->horizontalHeader()->setSectionResizeMode(6,QHeaderView::ResizeToContents);
ui->dateTimeEdit_start->setCalendarPopup(true); ui->dateTimeEdit_start->setCalendarPopup(true);
ui->dateTimeEdit_end->setCalendarPopup(true); ui->dateTimeEdit_end->setCalendarPopup(true);
@ -41,6 +38,19 @@ CHistoryAlarm::CHistoryAlarm(QWidget *parent) :
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setHorizontalHeader(myHeader);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
CheckBoxDelegate *pCheckDelegate = new CheckBoxDelegate(this);
ui->tableView->setItemDelegateForColumn(0, pCheckDelegate);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
ui->tableView->setColumnWidth(0, 100);
ui->tableView->setColumnWidth(3, 450);
ui->tableView->setColumnWidth(4, 200);
ui->tableView->setColumnWidth(5, 200);
ui->tableView->setAlternatingRowColors(true);
connect(ui->comboBox_channel,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(on_comboBox_channel_currentTextChanged(const QString&))); connect(ui->comboBox_channel,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(on_comboBox_channel_currentTextChanged(const QString&)));
ui->comboBox_channel->addItem("请选择通道..."); ui->comboBox_channel->addItem("请选择通道...");
@ -67,14 +77,34 @@ void CHistoryAlarm::on_comboBox_channel_currentTextChanged(const QString& strCha
} }
} }
void CHistoryAlarm::headerStateChangedSlot(int state)
{
int rowCount = model->rowCount();
if (state == 2)//全选
{
for (int j = 0; j<rowCount; j++)
{
QModelIndex index = model->index(j, 0, QModelIndex());
model->setData(index, true, Qt::UserRole);
}
}
else if (state == 0) //全不选
{
for (int j = 0; j<rowCount; j++)
{
QModelIndex index = model->index(j, 0, QModelIndex());
model->setData(index, false, Qt::UserRole);
}
}
}
void CHistoryAlarm::createRowItem(int Row,QVariantList RowItem) void CHistoryAlarm::createRowItem(int Row,QVariantList RowItem)
{ {
model->setRowCount(Row+1); model->setRowCount(Row+1);
for (int j = 0; j < RowItem.size(); ++j) for (int j = 1; j < RowItem.size()+1; ++j)
{ {
model->setData(model->index(Row,j,QModelIndex()),RowItem.at(j)); model->setData(model->index(Row,j,QModelIndex()),RowItem.at(j-1));
} }
} }
@ -111,17 +141,44 @@ void CHistoryAlarm::on_pushButton_search_clicked()
triggerLevel = "危险"; triggerLevel = "危险";
} }
QString strFeatureName = "";
if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MinValues"))
strFeatureName = "最小值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MaxValues"))
strFeatureName = "最大值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DCValues"))
strFeatureName = "偏置电压/Gap";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("RMSValues"))
strFeatureName = "有效值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DiagnosisPk2Pk"))
strFeatureName = "诊断峰峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratRMS"))
strFeatureName = "有效值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratPk2Pk"))
strFeatureName = "积分峰峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("SpeedProfileSpeed"))
strFeatureName = "转速";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratPk2Pk/2"))
strFeatureName = "峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DiagnosisPeak"))
strFeatureName = "峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MonitorPk2Pk"))
strFeatureName = "监测保护峰峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("InvertDanger") )
strFeatureName = "反时限危险值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("InvertAlarm"))
strFeatureName = "反时限警报值";
if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Over")){ if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Over")){
triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + "高于" + triggerLevel + ""; triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + strFeatureName+ "-" + "高于" + triggerLevel + "";
}else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Under")){ }else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Under")){
triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + "低于" + triggerLevel + ""; triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + strFeatureName+ "-" + "低于" + triggerLevel + "";
} }
strRowItem << i + 1 << triggerLevel << triggerEventName << TStr << resetTime; strRowItem << i + 1 << triggerLevel << triggerEventName << TStr << resetTime;
createRowItem(i,strRowItem); createRowItem(i,strRowItem);
} }
QMyTableViewBtnDelegate *m_btnDelegate = new QMyTableViewBtnDelegate(QStringList()<<"详情", this); QMyTableViewBtnDelegate *m_btnDelegate = new QMyTableViewBtnDelegate(QStringList()<<"详情", this);
ui->tableView->setItemDelegateForColumn(5, m_btnDelegate); ui->tableView->setItemDelegateForColumn(6, m_btnDelegate);
connect(m_btnDelegate, SIGNAL(editData(const QModelIndex &)), this,SLOT(Details(const QModelIndex &))); connect(m_btnDelegate, SIGNAL(editData(const QModelIndex &)), this,SLOT(Details(const QModelIndex &)));
}else{ }else{
@ -511,7 +568,13 @@ void CHistoryAlarm::Details(const QModelIndex &index)
strFileName = strFileName.left(strFileName.size()-1); strFileName = strFileName.left(strFileName.size()-1);
QStringList strList = strFileName.split("/"); QStringList strList = strFileName.split("/");
QString strPath = QCoreApplication::applicationDirPath() + "\\dat\\" + strList[5];
#ifdef Q_OS_WIN32
QString strPath = QCoreApplication::applicationDirPath() + "\\dat\\" + strList[5];
#endif
#ifdef Q_OS_LINUX
QString strPath = QCoreApplication::applicationDirPath() + "/dat/" + strList[5];
#endif
customLogMessageHandler(QtDebugMsg,"HistoryAlarm:" + strPath); customLogMessageHandler(QtDebugMsg,"HistoryAlarm:" + strPath);
QFile file(strPath); QFile file(strPath);
g_LocalFile = strPath; g_LocalFile = strPath;
@ -540,3 +603,65 @@ void CHistoryAlarm::ItemCheckStateSlot(QString strID, bool bChecked)
DateViewdialog->ViewData(strID,mapWaveData[strID]); DateViewdialog->ViewData(strID,mapWaveData[strID]);
} }
void CHistoryAlarm::on_pushButton_delete_clicked()
{
QMessageBox:: StandardButton iResult = QMessageBox::question(this, QStringLiteral("提示"),
QStringLiteral("确认后将删除选中的记录!"),
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
switch (iResult) {
case QMessageBox::Yes:
break;
case QMessageBox::No:
return;
break;
default:
break;
}
QStringList strListFileName;
QString strChannelName;
QVector<TriggerEvent_t> vecTriggerEvent;
for (int i = 0; i < model->rowCount(); i++) {
QModelIndex indexCheck = model->index(i,0);
bool check = model->data(indexCheck, Qt::UserRole).toBool();
if(check){
QString strDate = model->data(model->index(i,4)).toString();
strChannelName = model->data(model->index(i,3)).toString();
QStringList channellist = strChannelName.split("-");
QDateTime dateTime = QDateTime::fromString(strDate, "yyyy-MM-dd hh:mm:ss");
QString strTableNameAlarm = "t_AlarmStatusInfo",strTableNameTriger = "t_TriggerEvent";
// 将QDateTime转换为时间戳
qint64 timestamp = dateTime.toSecsSinceEpoch();
QString strWhere1 = QString("timestamp = '%1' and channelName = '%2'").arg(timestamp).arg(channellist[0]);
QString strWhere2 = QString("triggeredTime = %1 and triggeredChannelName = '%2'").arg(timestamp).arg(channellist[0]);
QString strCol = "triggeredFileName";
QString strTableName = QString("t_TriggerEvent ORDER BY ABS(triggeredTime - %1) LIMIT 1").arg(timestamp);
QString strFileName = g_SqliteDB->GetSingelLine(strTableName,strCol);
strFileName = strFileName.left(strFileName.size()-1);
strListFileName = strFileName.split("/");
g_SqliteDB->DeleteDataW(strTableNameAlarm,strWhere1);
g_SqliteDB->DeleteDataW(strTableNameTriger,strWhere2);
}
}
QJsonObject allObj,cmdBody;
QJsonArray arrayFileName;
allObj.insert("cmd", "40");
cmdBody.insert("type","ARRAY");
arrayFileName.append(strChannelName);
cmdBody.insert("fileName",strListFileName[5]);
allObj["cmdBody"] = cmdBody;
QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl);
g_NetMgr->PostJson(req,allObj);
QString dat_path = QCoreApplication::applicationDirPath() + "\\dat\\" + strListFileName[5];
QDir datDir(dat_path);
if (datDir.exists()) {
datDir.removeRecursively();
}
on_pushButton_search_clicked();
}

View File

@ -26,6 +26,9 @@ private slots:
void Details(const QModelIndex &index); void Details(const QModelIndex &index);
void downloadProcess_Slot(qint64 byteSend, qint64 byteTotal); void downloadProcess_Slot(qint64 byteSend, qint64 byteTotal);
void ItemCheckStateSlot(QString strID, bool bChecked); void ItemCheckStateSlot(QString strID, bool bChecked);
void headerStateChangedSlot(int state);
void on_pushButton_delete_clicked();
private: private:
Ui::CHistoryAlarm *ui; Ui::CHistoryAlarm *ui;

View File

@ -145,6 +145,35 @@ color: rgb(27, 30, 35);</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="pushButton_delete">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_delete { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_delete:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_delete:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_delete:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>删除</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>

337
ImportConfig.cpp Normal file
View File

@ -0,0 +1,337 @@
#include "ImportConfig.h"
#include "ui_ImportConfig.h"
#include <QFileDialog>
#include <QProcess>
#include "sqlitedb.h"
CImportConfig::CImportConfig(QWidget *parent) :
QWidget(parent),
ui(new Ui::CImportConfig)
{
ui->setupUi(this);
}
CImportConfig::~CImportConfig()
{
delete ui;
}
void CImportConfig::on_pushButton_importpath_clicked()
{
QString dirpath = QFileDialog::getExistingDirectory(this, QStringLiteral("选择目录"), "./", QFileDialog::ShowDirsOnly);
if(dirpath.isEmpty()) dirpath = QDir::currentPath();
ui->lineEdit_filepath->setText(dirpath + "/");
import_path = dirpath;
}
void CImportConfig::on_pushButton_confirm_clicked()
{
if(ui->lineEdit_filepath->text() == ""){
QMessageBox::warning(this,tr("提示"),tr("请选择导入文件路径!"));
return;
}
#ifdef Q_OS_WIN32
QString copy_path = QCoreApplication::applicationDirPath() + "\\config\\copy\\";
#endif
#ifdef Q_OS_LINUX
QString copy_path = QCoreApplication::applicationDirPath() + "/config/copy/";
#endif
QDir copyDir(copy_path);
// 创建目标文件夹
if (!copyDir.mkpath(".")) {
qDebug() << "无法创建目标文件夹";
return;
}
copyDirectory(import_path, copy_path);
QFile fileMAC(copy_path+"macbackup");
if (!fileMAC.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "无法打开文件";
return;
}
QTextStream in(&fileMAC);
QString oldMAC= "";
while (!in.atEnd()) {
oldMAC = in.readLine();
qDebug() << oldMAC;
}
fileMAC.close();
QFile sourceFile(copy_path + "config.db");
// if (!sourceFile.copy(copy_path + "\\config.db")) {
// QMessageBox::question(NULL, "提示", "导入数据库失败!");
// return;
// }
qDebug() << QSqlDatabase::drivers() << "\r\n";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(copy_path + "config.db");
if (!db.open())
{
qDebug() << "Error: Failed to connect database." << database.lastError();
return ;
}
QString strSql = QString("update t_ChannelSetting SET channelId = '%1' || SUBSTR(channelId, 13),dataWatchNo='%2';").arg(MAC).arg(MAC);
ExeSqlData(strSql);
strSql = QString("update t_ChannelSetting SET pairChannelId = '%1' || SUBSTR(channelId, 13) where pairChannelId <> '' AND pairChannelId <> 'NONE' ;").arg(MAC);
ExeSqlData(strSql);
strSql = QString("update t_ChannelSetting SET speedRefChannelId = '%1' || SUBSTR(channelId, 13) where speedRefChannelId <> '' AND pairChannelId <> 'NONE';").arg(MAC);
ExeSqlData(strSql);
strSql = QString("update t_DeviceInfo SET MAC = '%1',IP = '%2' ;").arg(MAC).arg(IP);
ExeSqlData(strSql);
strSql = QString("update t_TriggerConfig SET ChannelID = '%1' || SUBSTR(ChannelID, 13) ;").arg(MAC);
ExeSqlData(strSql);
strSql = QString("update t_WorkConditionChannels SET ChannelId = '%1' || SUBSTR(ChannelId, 13) where ChannelId <> '';").arg(MAC);
ExeSqlData(strSql);
strSql = QString("update t_WorkConditionRules SET ChannelId = '%1' || SUBSTR(ChannelId, 13) ;").arg(MAC);
ExeSqlData(strSql);
strSql = QString("update t_UnitConfiguration SET ChannelId = '%1' || SUBSTR(ChannelId, 13) ;").arg(MAC);
ExeSqlData(strSql);
db.close();
QString fileName = copy_path + "Graph1.json";
QString value;
QFile file(fileName);
file.open(QIODevice::ReadWrite | QIODevice::Text);
value = file.readAll();
file.resize(0);
file.write(value.toUtf8());
value.replace(oldMAC,MAC);
value = file.readAll();
file.close();
QString fileName2 = copy_path + "Graph2.json";
QFile file2(fileName2);
file2.open(QIODevice::ReadWrite | QIODevice::Text);
value = file2.readAll();
file2.resize(0);
value.replace(oldMAC,MAC);
file2.write(value.toUtf8());
file2.close();
QString ChannelSettings = copy_path + "ChannelSettings.json";
QFile fileChannelSettings(ChannelSettings);
fileChannelSettings.open(QIODevice::ReadWrite | QIODevice::Text);
value = fileChannelSettings.readAll();
fileChannelSettings.resize(0);
value.replace(oldMAC,MAC);
fileChannelSettings.write(value.toUtf8());
fileChannelSettings.close();
QString UnitConfigurations = copy_path + "UnitConfigurations.json";
QFile fileUnitConfigurations(UnitConfigurations);
fileUnitConfigurations.open(QIODevice::ReadWrite | QIODevice::Text);
value = fileUnitConfigurations.readAll();
fileUnitConfigurations.resize(0);
value.replace(oldMAC,MAC);
fileUnitConfigurations.write(value.toUtf8());
fileUnitConfigurations.close();
QString TriggerSettings = copy_path + "TriggerSettings.json";
QFile fileTriggerSettings(TriggerSettings);
fileTriggerSettings.open(QIODevice::ReadWrite | QIODevice::Text);
value = fileTriggerSettings.readAll();
fileTriggerSettings.resize(0);
value.replace(oldMAC,MAC);
fileTriggerSettings.write(value.toUtf8());
fileTriggerSettings.close();
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitWorkConditionsInfo.json", copy_path + "UnitWorkConditionsInfo.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitParameters.json", copy_path + "UnitParameters.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "ServerConfig.json", copy_path + "ServerConfig.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "NetWorkConfig.json", copy_path + "NetWorkConfig.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "ModbusConfig.json", copy_path + "ModbusConfig.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "TcpConfig.json", copy_path + "TcpConfig.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitBoardsInfo.json", copy_path + "UnitBoardsInfo.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "ZeroDrift.json", copy_path + "ZeroDrift.json");
// //copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitBoardsInfo.json", copy_path + "UnitBoardsInfo.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "ConfidenceDegree.json", copy_path + "ConfidenceDegree.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "TriggerConfig.json", copy_path + "TriggerConfig.json");
// copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "config.ini", copy_path + "config.ini");
g_SqliteDB->CloseDataBase();
#ifdef Q_OS_WIN32
copyDirectory(copy_path, QCoreApplication::applicationDirPath() + "\\config\\");
#endif
#ifdef Q_OS_LINUX
copyDirectory(copy_path, QCoreApplication::applicationDirPath() + "/config/");
#endif
QMessageBox::information(this,tr("导入"),tr("导入成功"));
// 如果目标文件夹已存在,则删除它
QDir copyDir2(copy_path);
if (copyDir2.exists()) {
copyDir2.removeRecursively();
}
#ifdef Q_OS_WIN32
QString fileNameInfo = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameInfo = QCoreApplication::applicationDirPath() + "/config/UnitWorkConditionsInfo.json";
#endif
QString strURL = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitWorkConditionsInfo.json");
// g_FtpClient->SetServerInfo(strURL);
// g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(fileNameInfo,"UnitWorkConditionsInfo.json");
g_FtpClient->uploadFile(strURL,fileNameInfo,"UnitWorkConditionsInfo.json");
// Uploader u;
// u.start(strURL,fileNameInfo,"UnitWorkConditionsInfo.json");
#ifdef Q_OS_WIN32
QString fileNameUnit = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameUnit = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
QString str2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations.json");
// g_FtpClient->SetServerInfo(str2);
// g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(fileNameUnit,"UnitConfigurations.json");
g_FtpClient->uploadFile(str2,fileNameUnit,"UnitConfigurations.json");
#ifdef Q_OS_WIN32
QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations2.json";
#endif
QString str22 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations2.json");
// g_FtpClient->SetServerInfo(str22);
// g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(fileNameUnit2,"UnitConfigurations2.json");
g_FtpClient->uploadFile(str22,fileNameUnit2,"UnitConfigurations2.json");
#ifdef Q_OS_WIN32
QString fileNameTri = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameTri = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
QString str1 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings.json");
// g_FtpClient->SetServerInfo(str1);
// g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(fileNameTri,"TriggerSettings.json");
g_FtpClient->uploadFile(str1,fileNameTri,"TriggerSettings.json");
#ifdef Q_OS_WIN32
QString fileNameTri2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameTri2 = QCoreApplication::applicationDirPath() + "/config/TriggerSettings2.json";
#endif
QString strTri2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings2.json");
// g_FtpClient->SetServerInfo(strTri2);
// g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(fileNameTri2,"TriggerSettings2.json");
g_FtpClient->uploadFile(strTri2,fileNameTri2,"TriggerSettings2.json");
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitBoardsInfo.json";
#endif
QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitBoardsInfo.json");
// g_FtpClient->SetServerInfo(str);
// g_FtpClient->SetUserInfo("root","@#cidw!@123456");
// g_FtpClient->UpLoadFile(name,"UnitBoardsInfo.json");
g_FtpClient->uploadFile(str,name,"UnitBoardsInfo.json");
qApp->exit(0);
QProcess::startDetached(qApp->applicationFilePath(), QStringList());
}
int CImportConfig::ExeSqlData(QString& strSql)
{
QSqlQuery sql_query;
int iRet = -1;
qDebug() << "strSql" << strSql << endl;
if(!sql_query.exec(strSql))
{
qDebug() << sql_query.lastError();
}
else
{
while(sql_query.next())
{
iRet = sql_query.value(0).toInt();
}
}
return iRet;
}
bool CImportConfig::copyFile(const QString &sourceFile, const QString &destinationFile)
{
QFile srcFile(sourceFile);
QFile dstFile(destinationFile);
if (!srcFile.exists()) {
qDebug() << "Source file does not exist:" << sourceFile;
return false;
}
if (!srcFile.open(QIODevice::ReadOnly)) {
qDebug() << "Unable to open source file for reading:" << sourceFile;
return false;
}
if (!dstFile.open(QIODevice::WriteOnly)) {
srcFile.close();
qDebug() << "Unable to open destination file for writing:" << destinationFile;
return false;
}
dstFile.write(srcFile.readAll());
srcFile.close();
dstFile.close();
return true;
}
bool CImportConfig::copyDirectory(const QString &sourceDir, const QString &destinationDir) {
QDir srcDir(sourceDir);
QDir destDir(destinationDir);
// 复制文件
foreach (const QFileInfo &fileInfo, srcDir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot)) {
QString fileName = fileInfo.fileName();
QString srcFilePath = srcDir.absoluteFilePath(fileName);
QString destFilePath = destDir.absoluteFilePath(fileName);
//qDebug() << "srcFilePath" << srcFilePath << destFilePath <<endl;
if (fileInfo.isDir()) {
// 递归复制子文件夹
if (!copyDirectory(srcFilePath, destFilePath)) {
return false;
}
} else {
// 复制文件
QFile dest(destFilePath);
if (dest.exists()) {
bool re = dest.remove(); // 如果目标文件存在,先删除它
if(!re){
qDebug() << "删除失败 "<<dest;
}
}
if (!QFile::copy(srcFilePath, destFilePath)) {
qDebug() << "无法复制文件" << srcFilePath << "" << destFilePath;
return false;
}
}
}
return true;
}

36
ImportConfig.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef IMPORTCONFIG_H
#define IMPORTCONFIG_H
#include <QWidget>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include "global.h"
#include "ftpclient.h"
namespace Ui {
class CImportConfig;
}
class CImportConfig : public QWidget
{
Q_OBJECT
public:
explicit CImportConfig(QWidget *parent = nullptr);
~CImportConfig();
private slots:
void on_pushButton_importpath_clicked();
void on_pushButton_confirm_clicked();
private:
Ui::CImportConfig *ui;
QString import_path;
QSqlDatabase database;
int ExeSqlData(QString& strSql);
bool copyFile(const QString &sourceFile, const QString &destinationFile);
bool copyDirectory(const QString &sourceDir, const QString &destinationDir);
};
#endif // IMPORTCONFIG_H

150
ImportConfig.ui Normal file
View File

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CImportConfig</class>
<widget class="QWidget" name="CImportConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>713</width>
<height>168</height>
</rect>
</property>
<property name="windowTitle">
<string>配置导入</string>
</property>
<property name="styleSheet">
<string notr="true">font: 10pt &quot;黑体&quot;;
color: rgb(27, 30, 35);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>请填写导入信息</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="lineEdit_filepath">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_importpath">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_importpath { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_importpath:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_importpath:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_importpath:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>导入路径</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_confirm">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_confirm { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_confirm:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_confirm:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_confirm:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>确认</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,4 +1,4 @@
#include "MqttClient.h" #include "Mqttclient.h"
MqttClient::MqttClient(QObject *parent) : QObject(parent) MqttClient::MqttClient(QObject *parent) : QObject(parent)
{ {

View File

@ -82,7 +82,13 @@ void CNTPServerConfig::on_pushButton_manual_clicked()
void CNTPServerConfig::Init() void CNTPServerConfig::Init()
{ {
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -136,7 +142,13 @@ void CNTPServerConfig::slotReplyStatus(int result)
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(m_ServerObject); jsonDoc.setObject(m_ServerObject);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -164,7 +176,13 @@ void CNTPServerConfig::on_radioButton_switch_clicked()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(m_ServerObject); jsonDoc.setObject(m_ServerObject);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());

View File

@ -3,6 +3,7 @@
#include <QRegExpValidator> #include <QRegExpValidator>
#include <QSettings> #include <QSettings>
#include <QTextCodec> #include <QTextCodec>
#include <QInputDialog>
#include "ftpclient.h" #include "ftpclient.h"
COtherConfig::COtherConfig(QWidget *parent) : COtherConfig::COtherConfig(QWidget *parent) :
@ -18,6 +19,7 @@ COtherConfig::COtherConfig(QWidget *parent) :
ui->lineEdit_Trigger->setValidator(Validator); ui->lineEdit_Trigger->setValidator(Validator);
ui->lineEdit_peaktopeak->setValidator(Validator); ui->lineEdit_peaktopeak->setValidator(Validator);
ui->radioButton_closeIO->setChecked(1);
LoadWorkingConditionConfig(); LoadWorkingConditionConfig();
} }
@ -29,7 +31,13 @@ COtherConfig::~COtherConfig()
void COtherConfig::LoadWorkingConditionConfig() void COtherConfig::LoadWorkingConditionConfig()
{ {
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/TriggerConfig.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -56,7 +64,13 @@ void COtherConfig::LoadWorkingConditionConfig()
} }
} }
fileName = QCoreApplication::applicationDirPath() + "\\config\\ConfidenceDegree.json"; #ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ConfidenceDegree.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ConfidenceDegree.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -81,9 +95,14 @@ void COtherConfig::LoadWorkingConditionConfig()
} }
//读取ini //读取ini
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat);
#ifdef Q_OS_WIN32
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat);
#endif
#ifdef Q_OS_LINUX
QSettings settingsread(QCoreApplication::applicationDirPath() + "/config/config.ini",QSettings::IniFormat);
#endif
settingsread.setIniCodec(QTextCodec::codecForName("UTF8")); settingsread.setIniCodec(QTextCodec::codecForName("UTF8"));
g_strVersion = settingsread.value("main/Version").toString();
g_strProject = settingsread.value("main/Project").toString(); g_strProject = settingsread.value("main/Project").toString();
QTextCodec* codec = QTextCodec::codecForName("UTF-8");//添加编码格式 QTextCodec* codec = QTextCodec::codecForName("UTF-8");//添加编码格式
@ -97,14 +116,20 @@ void COtherConfig::LoadWorkingConditionConfig()
for (int i = 0; i < g_ChannelBaseInfo.size(); i++) { for (int i = 0; i < g_ChannelBaseInfo.size(); i++) {
if(g_ChannelBaseInfo[i].channelType == "TACHOMETER"){ if(g_ChannelBaseInfo[i].channelType == "TACHOMETER"){
ui->comboBox_ch->addItem(g_ChannelBaseInfo[i].channelName); ui->comboBox_ch->addItem(g_ChannelBaseInfo[i].channelName);
}else{ }else if(g_ChannelBaseInfo[i].channelType == "PROXIMETER"){
ui->comboBox_ch2->addItem(g_ChannelBaseInfo[i].channelName); ui->comboBox_ch2->addItem(g_ChannelBaseInfo[i].channelName);
} }
} }
ui->comboBox_logic->addItem(""); ui->comboBox_logic->addItem("");
ui->comboBox_logic->addItem(""); ui->comboBox_logic->addItem("");
fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json"; #ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ZeroDrift.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -168,7 +193,13 @@ void COtherConfig::on_pushButto_Trigger_clicked()
return; return;
} }
m_strTriggerTime = str; m_strTriggerTime = str;
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/TriggerConfig.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -196,7 +227,13 @@ void COtherConfig::on_pushButto_Trigger_clicked()
} }
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(jsonObject); jsonDoc.setObject(jsonObject);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/TriggerConfig.json";
#endif
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
file.close(); file.close();
@ -240,7 +277,13 @@ inline QString UTF82GBK(QByteArray &inStr)
void COtherConfig::on_pushButton_main_clicked() void COtherConfig::on_pushButton_main_clicked()
{ {
QSettings *settings = new QSettings(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat); #ifdef Q_OS_WIN32
QSettings *settings = new QSettings(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat);
#endif
#ifdef Q_OS_LINUX
QSettings *settings = new QSettings(QCoreApplication::applicationDirPath() + "/config/config.ini", QSettings::IniFormat);
#endif
settings->setIniCodec(QTextCodec::codecForName("UTF-8")); settings->setIniCodec(QTextCodec::codecForName("UTF-8"));
settings->setValue("main/Version", ui->textEdit_version->toPlainText()); settings->setValue("main/Version", ui->textEdit_version->toPlainText());
@ -311,7 +354,13 @@ void COtherConfig::on_radioButton_open_clicked()
ZeroDriftObj["ref_channel"] = ref_channelObj; ZeroDriftObj["ref_channel"] = ref_channelObj;
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(ZeroDriftObj); jsonDoc.setObject(ZeroDriftObj);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/ZeroDrift.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -335,7 +384,13 @@ void COtherConfig::on_radioButton_open_clicked()
void COtherConfig::on_radioButton_close_clicked() void COtherConfig::on_radioButton_close_clicked()
{ {
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#endif
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -357,7 +412,12 @@ void COtherConfig::on_radioButton_close_clicked()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(ZeroDriftObj); jsonDoc.setObject(ZeroDriftObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json"; QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json";
#endif
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
file.close(); file.close();
@ -377,3 +437,39 @@ void COtherConfig::on_radioButton_close_clicked()
ui->lineEdit_peaktopeak->setEnabled(1); ui->lineEdit_peaktopeak->setEnabled(1);
} }
void COtherConfig::on_radioButton_openIO_clicked()
{
bool ok;
QString password = QInputDialog::getText(this,
"输入密码",
"Enter Password:",
QLineEdit::Password,
"",
&ok);
if(!ok) {
ui->radioButton_openIO->setChecked(0);
ui->radioButton_closeIO->setChecked(1);
return;
}
#ifdef Q_OS_WIN32
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat);
#endif
#ifdef Q_OS_LINUX
QSettings settingsread(QCoreApplication::applicationDirPath() + "/config/config.ini",QSettings::IniFormat);
#endif
if(password == settingsread.value("main/passwd").toString())
{
g_strIOControl = "1";
}else{
QMessageBox::information(this, QStringLiteral("提示"), "请输入正确的密码!");
}
}
void COtherConfig::on_radioButton_closeIO_clicked()
{
g_strIOControl = "0";
}

View File

@ -28,6 +28,10 @@ private slots:
void on_radioButton_close_clicked(); void on_radioButton_close_clicked();
void slotNetMgr(QString sAddr,const QVariant& msg); void slotNetMgr(QString sAddr,const QVariant& msg);
void on_radioButton_openIO_clicked();
void on_radioButton_closeIO_clicked();
private: private:
Ui::COtherConfig *ui; Ui::COtherConfig *ui;

View File

@ -411,6 +411,45 @@
</layout> </layout>
</widget> </widget>
</widget> </widget>
<widget class="QGroupBox" name="groupBox_5">
<property name="geometry">
<rect>
<x>10</x>
<y>210</y>
<width>231</width>
<height>61</height>
</rect>
</property>
<property name="title">
<string>继电器开关控制</string>
</property>
<widget class="QRadioButton" name="radioButton_openIO">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>89</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>开</string>
</property>
</widget>
<widget class="QRadioButton" name="radioButton_closeIO">
<property name="geometry">
<rect>
<x>120</x>
<y>30</y>
<width>89</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>关</string>
</property>
</widget>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -1,4 +1,4 @@
#include "qmytableviewbtndelegate.h" #include "QMyTableViewBtnDelegate.h"
#include <QApplication> #include <QApplication>
#include <QMouseEvent> #include <QMouseEvent>

View File

@ -22,7 +22,7 @@ CRealTimeAlarm::CRealTimeAlarm(QWidget *parent) :
model->setHorizontalHeaderLabels(headerList); model->setHorizontalHeaderLabels(headerList);
model->setColumnCount(headerList.size()); model->setColumnCount(headerList.size());
ui->tableView->setModel(model); ui->tableView->setModel(model);
ui->tableView->setColumnWidth(2, 300); ui->tableView->setColumnWidth(2, 450);
ui->tableView->setColumnWidth(3, 200); ui->tableView->setColumnWidth(3, 200);
ui->tableView->setAlternatingRowColors(true); ui->tableView->setAlternatingRowColors(true);
@ -81,11 +81,37 @@ void CRealTimeAlarm::initTable()
}else if(m_vecTriggerAlarmStatusInfo[i].triggerLevel == "2"){ }else if(m_vecTriggerAlarmStatusInfo[i].triggerLevel == "2"){
triggerLevel = "危险"; triggerLevel = "危险";
} }
QString strFeatureName = "";
if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MinValues"))
strFeatureName = "最小值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MaxValues"))
strFeatureName = "最大值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DCValues"))
strFeatureName = "偏置电压/Gap";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("RMSValues"))
strFeatureName = "有效值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DiagnosisPk2Pk"))
strFeatureName = "诊断峰峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratRMS"))
strFeatureName = "有效值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratPk2Pk"))
strFeatureName = "积分峰峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("SpeedProfileSpeed"))
strFeatureName = "转速";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratPk2Pk/2"))
strFeatureName = "峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DiagnosisPeak"))
strFeatureName = "峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MonitorPk2Pk"))
strFeatureName = "监测保护峰峰值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("InvertDanger") )
strFeatureName = "反时限危险值";
else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("InvertAlarm"))
strFeatureName = "反时限警报值";
if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Over")){ if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Over")){
triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + "高于" + triggerLevel + ""; triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + strFeatureName+ "-" + "高于" + triggerLevel + "";
}else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Under")){ }else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Under")){
triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + "低于" + triggerLevel + ""; triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + strFeatureName+ "-" + "低于" + triggerLevel + "";
} }
strRowItem << i + 1 << triggerLevel << triggerEventName << TStr; strRowItem << i + 1 << triggerLevel << triggerEventName << TStr;
@ -499,7 +525,13 @@ void CRealTimeAlarm::Details(const QModelIndex &index)
strFileName = strFileName.left(strFileName.size()-1); strFileName = strFileName.left(strFileName.size()-1);
QStringList strList = strFileName.split("/"); QStringList strList = strFileName.split("/");
#ifdef Q_OS_WIN32
QString strPath = QCoreApplication::applicationDirPath() + "\\dat\\" + strList[5]; QString strPath = QCoreApplication::applicationDirPath() + "\\dat\\" + strList[5];
#endif
#ifdef Q_OS_LINUX
QString strPath = QCoreApplication::applicationDirPath() + "/dat/" + strList[5];
#endif
QFile file(strPath); QFile file(strPath);
customLogMessageHandler(QtDebugMsg, "RealTimeAlarm:" + strPath); customLogMessageHandler(QtDebugMsg, "RealTimeAlarm:" + strPath);
g_LocalFile = strPath; g_LocalFile = strPath;

View File

@ -2,6 +2,7 @@
#include "ui_SlowSpeedChannelSetting.h" #include "ui_SlowSpeedChannelSetting.h"
#include <QListView> #include <QListView>
#include "CopyChannelSetting.h" #include "CopyChannelSetting.h"
#include "CustomFilter.h"
CSlowSpeedChannelSetting::CSlowSpeedChannelSetting(QWidget *parent) : CSlowSpeedChannelSetting::CSlowSpeedChannelSetting(QWidget *parent) :
QWidget(parent), QWidget(parent),
@ -35,6 +36,7 @@ CSlowSpeedChannelSetting::CSlowSpeedChannelSetting(QWidget *parent) :
m_DisPlayerList << "平均值" << "最小值" << "最大值"; m_DisPlayerList << "平均值" << "最小值" << "最大值";
ui->comboBox_defaultDisplay->clear(); ui->comboBox_defaultDisplay->clear();
ui->comboBox_defaultDisplay->addItems(m_DisPlayerList); ui->comboBox_defaultDisplay->addItems(m_DisPlayerList);
ui->pushButton_CustomFilter->setVisible(false);
} }
CSlowSpeedChannelSetting::~CSlowSpeedChannelSetting() CSlowSpeedChannelSetting::~CSlowSpeedChannelSetting()
@ -58,9 +60,11 @@ void CSlowSpeedChannelSetting::displayChannelSetting()
} }
if(channelSetting.sensorType == "PULSE_CURRENT"){ if(channelSetting.sensorType == "PULSE_CURRENT"){
ui->comboBox_channelType->addItem("气隙"); ui->comboBox_channelType->addItem("气隙");
ui->pushButton_CustomFilter->setVisible(true);
} }
if(channelSetting.sensorType == "AIRGAP"){ if(channelSetting.sensorType == "AIRGAP"){
ui->comboBox_channelType->addItem("高速电流"); ui->comboBox_channelType->addItem("高速电流");
ui->pushButton_CustomFilter->setVisible(true);
} }
ui->RPMComBox->clear(); ui->RPMComBox->clear();
@ -241,10 +245,10 @@ void CSlowSpeedChannelSetting::on_comboBox_channelType_currentTextChanged(const
} }
} }
void CSlowSpeedChannelSetting::slotSetChannelData(QStringList& listChannelName) void CSlowSpeedChannelSetting::slotCopyChannelData(QStringList& listChannelID)
{ {
qDebug() << listChannelName << endl; qDebug() << listChannelID << endl;
for (int i = 0; i < listChannelName.size(); i++) for (int i = 0; i < listChannelID.size(); i++)
{ {
QString strUpdateSql = QString(" set ChUnitCoeff = '%1' , ChUnitDot = %2,SensorICP = '%3', \ QString strUpdateSql = QString(" set ChUnitCoeff = '%1' , ChUnitDot = %2,SensorICP = '%3', \
SensorType = '%4',bearingClearance='%5',bearingStartPosition='%6',\ SensorType = '%4',bearingClearance='%5',bearingStartPosition='%6',\
@ -261,7 +265,7 @@ void CSlowSpeedChannelSetting::slotSetChannelData(QStringList& listChannelName)
startBrands='%44',stopBrands='%45',tachAutoTach='%46',tachTriggerEdge='%47',tachTriggerHysteresis=%48,\ startBrands='%44',stopBrands='%45',tachAutoTach='%46',tachTriggerEdge='%47',tachTriggerHysteresis=%48,\
tachTriggerPerRev='%49',tachTriggerVoltageLevel='%50',thermalCoupleType = '%51',xFullScalePosition='%52',\ tachTriggerPerRev='%49',tachTriggerVoltageLevel='%50',thermalCoupleType = '%51',xFullScalePosition='%52',\
xProcessVariableName='%53',xZeroScalePosition='%54',zeroScalePosition='%55',speedRefChannelName = '%56',\ xProcessVariableName='%53',xZeroScalePosition='%54',zeroScalePosition='%55',speedRefChannelName = '%56',\
defaultDisplay = '%57' ,confidenceDegree=%58,sectionNum=%59 where channelName = '%60'").\ defaultDisplay = '%57' ,confidenceDegree=%58,sectionNum=%59 where channelId = '%60'").\
arg(channelSetting.ChUnitCoeff).arg(channelSetting.ChUnitDot).arg(channelSetting.sensorICP).\ arg(channelSetting.ChUnitCoeff).arg(channelSetting.ChUnitDot).arg(channelSetting.sensorICP).\
arg(channelSetting.sensorType).arg(channelSetting.bearingClearance).arg(channelSetting.bearingStartPosition).\ arg(channelSetting.sensorType).arg(channelSetting.bearingClearance).arg(channelSetting.bearingStartPosition).\
arg(channelSetting.channelIntDiff).arg(channelSetting.channelRMSPkPk2Pk).arg(channelSetting.channelSensorType).\ arg(channelSetting.channelIntDiff).arg(channelSetting.channelRMSPkPk2Pk).arg(channelSetting.channelSensorType).\
@ -281,7 +285,7 @@ void CSlowSpeedChannelSetting::slotSetChannelData(QStringList& listChannelName)
arg(channelSetting.tachTriggerHysteresis).arg(channelSetting.tachTriggerPerRev).arg(channelSetting.tachTriggerVoltageLevel).\ arg(channelSetting.tachTriggerHysteresis).arg(channelSetting.tachTriggerPerRev).arg(channelSetting.tachTriggerVoltageLevel).\
arg(channelSetting.thermalCoupleType).arg(channelSetting.xFullScalePosition).arg(channelSetting.xProcessVariableName).arg(channelSetting.xZeroScalePosition).\ arg(channelSetting.thermalCoupleType).arg(channelSetting.xFullScalePosition).arg(channelSetting.xProcessVariableName).arg(channelSetting.xZeroScalePosition).\
arg(channelSetting.zeroScalePosition).arg(channelSetting.speedRefChannelName).arg(channelSetting.defaultDisplay).\ arg(channelSetting.zeroScalePosition).arg(channelSetting.speedRefChannelName).arg(channelSetting.defaultDisplay).\
arg(channelSetting.confidenceDegree).arg(channelSetting.sectionNum).arg(listChannelName[i]); arg(channelSetting.confidenceDegree).arg(channelSetting.sectionNum).arg(listChannelID[i]);
QString tableName = "t_ChannelSetting "; QString tableName = "t_ChannelSetting ";
g_SqliteDB->UpdateDataSql(tableName,strUpdateSql); g_SqliteDB->UpdateDataSql(tableName,strUpdateSql);
@ -292,10 +296,21 @@ void CSlowSpeedChannelSetting::on_pushButton_copy_clicked()
QString strWhere = QString(" sensorModuleNo = %1 and channelId <> '%2' ").arg(channelSetting.sensorModuleNo).arg(channelSetting.channelId); QString strWhere = QString(" sensorModuleNo = %1 and channelId <> '%2' ").arg(channelSetting.sensorModuleNo).arg(channelSetting.channelId);
QVector<ChannelSetting> copyChannel = g_SqliteDB->GetDataMultiLine("t_ChannelSetting","*",strWhere); QVector<ChannelSetting> copyChannel = g_SqliteDB->GetDataMultiLine("t_ChannelSetting","*",strWhere);
CopyChannelSetting *dialog = new CopyChannelSetting(); CopyChannelSetting *dialog = new CopyChannelSetting();
connect(dialog, SIGNAL(sgSetChannelData(QStringList&)), this, SLOT(slotSetChannelData(QStringList&))); connect(dialog, SIGNAL(sgCopyChannelData(QStringList&)), this, SLOT(slotCopyChannelData(QStringList&)));
dialog->copyChannel = copyChannel; dialog->copyChannel = copyChannel;
dialog->setWindowModality(Qt::ApplicationModal); dialog->setWindowModality(Qt::ApplicationModal);
dialog->displayCopyChannel(); dialog->displayCopyChannel();
dialog->show(); dialog->show();
} }
void CSlowSpeedChannelSetting::on_pushButton_CustomFilter_clicked()
{
CustomFilter *pCustomFilter = new CustomFilter();
pCustomFilter->channel_ID = channelSetting.channelId;
pCustomFilter->vibrate_channel = 1;
pCustomFilter->setWindowModality(Qt::ApplicationModal);
pCustomFilter->show();
pCustomFilter->getfilterInfo();
}

View File

@ -28,8 +28,10 @@ private slots:
void on_comboBox_channelType_currentTextChanged(const QString &arg1); void on_comboBox_channelType_currentTextChanged(const QString &arg1);
void on_pushButton_copy_clicked(); void on_pushButton_copy_clicked();
void on_pushButton_CustomFilter_clicked();
public slots: public slots:
void slotSetChannelData(QStringList&); void slotCopyChannelData(QStringList&);
private: private:
Ui::CSlowSpeedChannelSetting *ui; Ui::CSlowSpeedChannelSetting *ui;

View File

@ -384,7 +384,7 @@ color: rgb(27, 30, 35);</string>
<widget class="QLineEdit" name="lineEdit_channelName"> <widget class="QLineEdit" name="lineEdit_channelName">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>150</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
@ -398,6 +398,48 @@ color: rgb(27, 30, 35);</string>
</item> </item>
</layout> </layout>
</item> </item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_CustomFilter">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_CustomFilter { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_CustomFilter:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_CustomFilter:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_CustomFilter:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>滤波设置</string>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_5"> <spacer name="horizontalSpacer_5">
<property name="orientation"> <property name="orientation">

View File

@ -4,6 +4,8 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include "ftpclient.h" #include "ftpclient.h"
#include "CopyDatFile.h" #include "CopyDatFile.h"
#include "Backup.h"
#include "ImportConfig.h"
CTerminalInfo::CTerminalInfo(QWidget *parent) : CTerminalInfo::CTerminalInfo(QWidget *parent) :
QWidget(parent), QWidget(parent),
@ -53,6 +55,7 @@ CTerminalInfo::CTerminalInfo(QWidget *parent) :
double cpuUserUse = 10,memoryUse = 20,hardDiskUse = 30,temperature = 60; double cpuUserUse = 10,memoryUse = 20,hardDiskUse = 30,temperature = 60;
QString updateTime = "1583487670"; QString updateTime = "1583487670";
ui->label_Version_GUI->setText(g_strVersion);
//UpdateChart(cpuUserUse,memoryUse,memoryUse,temperature,updateTime); //UpdateChart(cpuUserUse,memoryUse,memoryUse,temperature,updateTime);
@ -209,7 +212,7 @@ void CTerminalInfo::slotNetMgr(QString sAddr, const QVariant &msg)
ui->label_Version->setText(sysObj["softVersion"].toString()); ui->label_Version->setText(sysObj["softVersion"].toString());
ui->label_Type->setText(sysObj["deviceType"].toString()); ui->label_Type->setText(sysObj["deviceType"].toString());
ui->label_SerialNo->setText(sysObj["serialNumber"].toString()); ui->label_SerialNo->setText(sysObj["serialNumber"].toString());
ui->label_Address->setText(sysObj["dataWatchIpAddress"].toString()); //ui->label_Address->setText(sysObj["dataWatchIpAddress"].toString());
} }
} }
} }
@ -291,8 +294,6 @@ void CTerminalInfo::on_pushButton_Update_clicked()
curIndex = 0; curIndex = 0;
else if(text == "后端主程序") else if(text == "后端主程序")
curIndex = 1; curIndex = 1;
else if(text == "后端辅助程序")
curIndex = 2;
g_FtpClient->UpLoadFile(filepath,FileName,curIndex); g_FtpClient->UpLoadFile(filepath,FileName,curIndex);
} }
@ -305,3 +306,22 @@ void CTerminalInfo::on_pushButtonCopy_clicked()
copyDatDialog->show(); copyDatDialog->show();
} }
void CTerminalInfo::on_pushButton_export_clicked()
{
CBackup *BackupDialog = new CBackup();
BackupDialog->setWindowModality(Qt::ApplicationModal);
BackupDialog->setAttribute(Qt::WA_DeleteOnClose);
BackupDialog->setWindowFlags(BackupDialog->windowFlags() &~ Qt::WindowMaximizeButtonHint);
BackupDialog->show();
}
void CTerminalInfo::on_pushButton_import_clicked()
{
CImportConfig *ImportConfigDialog = new CImportConfig();
ImportConfigDialog->setWindowModality(Qt::ApplicationModal);
ImportConfigDialog->setAttribute(Qt::WA_DeleteOnClose);
ImportConfigDialog->setWindowFlags(ImportConfigDialog->windowFlags() &~ Qt::WindowMaximizeButtonHint);
ImportConfigDialog->show();
}

View File

@ -34,6 +34,10 @@ private slots:
void on_pushButtonCopy_clicked(); void on_pushButtonCopy_clicked();
void on_pushButton_export_clicked();
void on_pushButton_import_clicked();
private: private:
Ui::CTerminalInfo *ui; Ui::CTerminalInfo *ui;

View File

@ -112,16 +112,19 @@
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text"> <property name="text">
<string>在线状态:</string> <string>在线状态:</string>
</property> </property>
@ -148,13 +151,13 @@
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="label_3">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -181,13 +184,13 @@
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="label_5">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -214,13 +217,13 @@
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="label_7">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -247,13 +250,13 @@
<widget class="QLabel" name="label_8"> <widget class="QLabel" name="label_8">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -280,13 +283,13 @@
<widget class="QLabel" name="label_9"> <widget class="QLabel" name="label_9">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -348,13 +351,13 @@
<widget class="QLabel" name="label_10"> <widget class="QLabel" name="label_10">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -381,13 +384,13 @@
<widget class="QLabel" name="label_12"> <widget class="QLabel" name="label_12">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -414,13 +417,13 @@
<widget class="QLabel" name="label_14"> <widget class="QLabel" name="label_14">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -447,13 +450,13 @@
<widget class="QLabel" name="label_16"> <widget class="QLabel" name="label_16">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -480,13 +483,13 @@
<widget class="QLabel" name="label_18"> <widget class="QLabel" name="label_18">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -513,18 +516,18 @@
<widget class="QLabel" name="label_20"> <widget class="QLabel" name="label_20">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>终端地址</string> <string>数据配置</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -532,12 +535,76 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_Address"> <widget class="QPushButton" name="pushButton_import">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_import { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_import:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_import:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_import:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text"> <property name="text">
<string>- -</string> <string>导入</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="pushButton_export">
<property name="minimumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>96</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_export { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_export:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_export:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_export:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>导出</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -546,13 +613,13 @@
<widget class="QLabel" name="label_21"> <widget class="QLabel" name="label_21">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>80</width> <width>100</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>

View File

@ -260,8 +260,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
}else if(g_ChannelBaseInfo[ii].channelType == "ACCELEROMETER"){ }else if(g_ChannelBaseInfo[ii].channelType == "ACCELEROMETER"){
LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID); LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID);
if(m_vecTriggerConfig.size() < 1){ if(m_vecTriggerConfig.size() < 1){
model->setRowCount(4); model->setRowCount(6);
for (int i = 0; i < 4; i++) { for (int i = 0; i < 6; i++) {
model->setItem(i, 2, add_checkBox_model(0)); model->setItem(i, 2, add_checkBox_model(0));
model->setItem(i, 3, add_checkBox_model(0)); model->setItem(i, 3, add_checkBox_model(0));
model->setItem(i, 4, add_checkBox_model(0)); model->setItem(i, 4, add_checkBox_model(0));
@ -275,6 +275,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
model->setData(model->index(1,1,QModelIndex()),"峰值"); model->setData(model->index(1,1,QModelIndex()),"峰值");
model->setData(model->index(2,1,QModelIndex()),"速度峰值"); model->setData(model->index(2,1,QModelIndex()),"速度峰值");
model->setData(model->index(3,1,QModelIndex()),"速度有效值"); model->setData(model->index(3,1,QModelIndex()),"速度有效值");
model->setData(model->index(4,1,QModelIndex()),"反时限警报值");
model->setData(model->index(5,1,QModelIndex()),"反时限危险值");
} }
@ -283,8 +285,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
{ {
LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID); LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID);
if(m_vecTriggerConfig.size() < 1){ if(m_vecTriggerConfig.size() < 1){
model->setRowCount(4); model->setRowCount(6);
for (int i = 0; i < 4; i++) { for (int i = 0; i < 6; i++) {
model->setItem(i, 2, add_checkBox_model()); model->setItem(i, 2, add_checkBox_model());
model->setItem(i, 3, add_checkBox_model()); model->setItem(i, 3, add_checkBox_model());
model->setItem(i, 4, add_checkBox_model()); model->setItem(i, 4, add_checkBox_model());
@ -298,6 +300,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
model->setData(model->index(1,1,QModelIndex()),"偏置电压/Gap"); model->setData(model->index(1,1,QModelIndex()),"偏置电压/Gap");
model->setData(model->index(2,1,QModelIndex()),"监测保护峰峰值"); model->setData(model->index(2,1,QModelIndex()),"监测保护峰峰值");
model->setData(model->index(3,1,QModelIndex()),"有效值"); model->setData(model->index(3,1,QModelIndex()),"有效值");
model->setData(model->index(4,1,QModelIndex()),"反时限警报值");
model->setData(model->index(5,1,QModelIndex()),"反时限危险值");
} }
@ -320,8 +324,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
{ {
LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID); LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID);
if(m_vecTriggerConfig.size() < 1){ if(m_vecTriggerConfig.size() < 1){
model->setRowCount(4); model->setRowCount(6);
for (int i = 0; i < 4; i++) { for (int i = 0; i < 6; i++) {
model->setItem(i, 2, add_checkBox_model()); model->setItem(i, 2, add_checkBox_model());
model->setItem(i, 3, add_checkBox_model()); model->setItem(i, 3, add_checkBox_model());
model->setItem(i, 4, add_checkBox_model()); model->setItem(i, 4, add_checkBox_model());
@ -335,6 +339,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
model->setData(model->index(1,1,QModelIndex()),"峰值"); model->setData(model->index(1,1,QModelIndex()),"峰值");
model->setData(model->index(2,1,QModelIndex()),"位移峰值"); model->setData(model->index(2,1,QModelIndex()),"位移峰值");
model->setData(model->index(3,1,QModelIndex()),"位移有效值"); model->setData(model->index(3,1,QModelIndex()),"位移有效值");
model->setData(model->index(4,1,QModelIndex()),"反时限警报值");
model->setData(model->index(5,1,QModelIndex()),"反时限危险值");
} }
@ -357,8 +363,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID); LoadTriggerConfig(g_ChannelBaseInfo[ii].channelID);
if(m_vecTriggerConfig.size() < 1){ if(m_vecTriggerConfig.size() < 1){
model->setRowCount(3); model->setRowCount(5);
for (int i = 0; i < 3; i++){ for (int i = 0; i < 5; i++){
model->setItem(i, 2, add_checkBox_model()); model->setItem(i, 2, add_checkBox_model());
model->setItem(i, 3, add_checkBox_model()); model->setItem(i, 3, add_checkBox_model());
model->setItem(i, 4, add_checkBox_model()); model->setItem(i, 4, add_checkBox_model());
@ -371,6 +377,8 @@ void CTriggerConfig::on_comboBox_channelConfig_currentTextChanged(const QString
model->setData(model->index(0,1,QModelIndex()),"平均值"); model->setData(model->index(0,1,QModelIndex()),"平均值");
model->setData(model->index(1,1,QModelIndex()),"最小值"); model->setData(model->index(1,1,QModelIndex()),"最小值");
model->setData(model->index(2,1,QModelIndex()),"最大值"); model->setData(model->index(2,1,QModelIndex()),"最大值");
model->setData(model->index(3,1,QModelIndex()),"反时限警报值");
model->setData(model->index(4,1,QModelIndex()),"反时限危险值");
} }
} }
@ -480,7 +488,8 @@ void CTriggerConfig::on_pushButton_submit_clicked()
QString strCol = "count(*)"; QString strCol = "count(*)";
int count = g_SqliteDB->QueryData(strTableName,strCol,strWhere); int count = g_SqliteDB->QueryData(strTableName,strCol,strWhere);
if(count < 1){ if(count < 1){
if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1"){ if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1")
{
QString strSql = QString(" values('%1','%2',%3,'%4','%5',%6,'%7',%8,'%9',%10,'%11',%12,'%13','%14','%15','%16','%17','%18',0) ;").\ QString strSql = QString(" values('%1','%2',%3,'%4','%5',%6,'%7',%8,'%9',%10,'%11',%12,'%13','%14','%15','%16','%17','%18',0) ;").\
arg(ChannelID).arg(ChannelName).arg(WorkConditonSN).arg("").arg(rowList[1]).arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\ arg(ChannelID).arg(ChannelName).arg(WorkConditonSN).arg("").arg(rowList[1]).arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]); arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]);
@ -496,7 +505,8 @@ void CTriggerConfig::on_pushButton_submit_clicked()
int count = g_SqliteDB->QueryData(strTableName,strCol,strWhere); int count = g_SqliteDB->QueryData(strTableName,strCol,strWhere);
qDebug() << "count " << count << endl; qDebug() << "count " << count << endl;
if(count == 0){ if(count == 0){
if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1"){ if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1")
{
QString strSql = QString(" set AlertOver = %1,AlertOverSetpoint = '%2',DangerOver = %3,DangerOverSetpoint = '%4',AlertUnder = %5,AlertUnderSetpoint = '%6',DangerUnder = %7,\ QString strSql = QString(" set AlertOver = %1,AlertOverSetpoint = '%2',DangerOver = %3,DangerOverSetpoint = '%4',AlertUnder = %5,AlertUnderSetpoint = '%6',DangerUnder = %7,\
DangerUnderSetpoint = '%8',AlertTriggerStatus = '%9',DangerTriggerStatus = '%10',AlertTriggerDelay = '%11',DangerTriggerDelay = '%12',TriggerType = '%13', operate = 2 where ChannelID = '%14' and WorkConditionID = %15 and Characteristic = '%16' and operate <> 3; ").arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\ DangerUnderSetpoint = '%8',AlertTriggerStatus = '%9',DangerTriggerStatus = '%10',AlertTriggerDelay = '%11',DangerTriggerDelay = '%12',TriggerType = '%13', operate = 2 where ChannelID = '%14' and WorkConditionID = %15 and Characteristic = '%16' and operate <> 3; ").arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]).arg(ChannelID).arg(WorkConditonSN.toInt()).arg(rowList[1]); arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]).arg(ChannelID).arg(WorkConditonSN.toInt()).arg(rowList[1]);
@ -663,6 +673,10 @@ void CTriggerConfig::PushData()
rowObj["triggerFeatureName"] = "DiagnosisPeak"; rowObj["triggerFeatureName"] = "DiagnosisPeak";
else if(triggerConfig[j].Characteristic == "监测保护峰峰值") else if(triggerConfig[j].Characteristic == "监测保护峰峰值")
rowObj["triggerFeatureName"] = "MonitorPk2Pk"; rowObj["triggerFeatureName"] = "MonitorPk2Pk";
else if(triggerConfig[j].Characteristic == "反时限危险值")
rowObj["triggerFeatureName"] = "InvertDanger";
else if(triggerConfig[j].Characteristic == "反时限警报值")
rowObj["triggerFeatureName"] = "InvertAlarm";
QString triggerEventName = QString("%1-%2-%3").arg(rowObj["triggerFeatureName"].toString()).arg(triggerConfig[j].TriggerType).arg(triggerConfig[j].ChannelID); QString triggerEventName = QString("%1-%2-%3").arg(rowObj["triggerFeatureName"].toString()).arg(triggerConfig[j].TriggerType).arg(triggerConfig[j].ChannelID);
@ -700,7 +714,13 @@ void CTriggerConfig::PushData()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setArray(m_channeltriggerArray); jsonDoc.setArray(m_channeltriggerArray);
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json"; #ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
@ -743,6 +763,10 @@ void CTriggerConfig::PushData()
rowObj["triggerFeatureName"] = "DiagnosisPeak"; rowObj["triggerFeatureName"] = "DiagnosisPeak";
else if(triggerConfig[j].Characteristic == "监测保护峰峰值") else if(triggerConfig[j].Characteristic == "监测保护峰峰值")
rowObj["triggerFeatureName"] = "MonitorPk2Pk"; rowObj["triggerFeatureName"] = "MonitorPk2Pk";
else if(triggerConfig[j].Characteristic == "反时限危险值")
rowObj["triggerFeatureName"] = "InvertDanger";
else if(triggerConfig[j].Characteristic == "反时限警报值")
rowObj["triggerFeatureName"] = "InvertAlarm";
QString triggerEventName = QString("%1-%2-%3").arg(rowObj["triggerFeatureName"].toString()).arg(triggerConfig[j].TriggerType).arg(triggerConfig[j].ChannelID); QString triggerEventName = QString("%1-%2-%3").arg(rowObj["triggerFeatureName"].toString()).arg(triggerConfig[j].TriggerType).arg(triggerConfig[j].ChannelID);
@ -782,7 +806,13 @@ void CTriggerConfig::PushData()
QJsonDocument jsonDoc2; QJsonDocument jsonDoc2;
jsonDoc2.setArray(m_channeltriggerArray2); jsonDoc2.setArray(m_channeltriggerArray2);
#ifdef Q_OS_WIN32
QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json"; QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json";
#endif
#ifdef Q_OS_LINUX
QString fileName2 = QCoreApplication::applicationDirPath() + "/config/TriggerSettings2.json";
#endif
QFile file2(fileName2); QFile file2(fileName2);
file2.open(QIODevice::WriteOnly); file2.open(QIODevice::WriteOnly);

View File

@ -4,7 +4,7 @@
#include <QWidget> #include <QWidget>
#include <QTableView> #include <QTableView>
#include "global.h" #include "global.h"
#include "HeaderView.h" #include "headerView.h"
#include "TableHeaderView.h" #include "TableHeaderView.h"
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QComboBox> #include <QComboBox>

View File

@ -23,7 +23,13 @@ CUnitSetting::~CUnitSetting()
void CUnitSetting::initReadConfig() void CUnitSetting::initReadConfig()
{ {
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json"; QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitParameters.json";
#endif
QFile loadFile(name); QFile loadFile(name);
if(!loadFile.open(QIODevice::ReadOnly)) if(!loadFile.open(QIODevice::ReadOnly))
{ {
@ -298,7 +304,13 @@ void CUnitSetting::PushData()
qDebug() << paramsObj << endl; qDebug() << paramsObj << endl;
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(paramsObj); jsonDoc.setObject(paramsObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json"; QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitParameters.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);

View File

@ -41,8 +41,27 @@ CWaveDisPlay::CWaveDisPlay(QWidget *parent) :
// container->setWindowFlag(Qt::FramelessWindowHint); // container->setWindowFlag(Qt::FramelessWindowHint);
// container->setWindowFlag(Qt::NoDropShadowWindowHint); // container->setWindowFlag(Qt::NoDropShadowWindowHint);
InitWindows(); InitWindows();
// ui->widget_wave->xAxis->setRange(0, 1);
// ui->widget_wave->xAxis->setLabel("Fs(Hz)");
// ui->widget_wave->yAxis->setLabel(m_ChannelUnit);
// QVector<double> ticks;
// QVector<QString> labels;
// ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7;
// labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada";
// QVector<double> fossilData;
// fossilData << 0.86*10.5 << 0.83*5.5 << 0.84*5.5 << 0.52*5.8 << 0.89*5.2 << 0.90*4.2 << 0.67*11.2;
// QCPBars *bars = new QCPBars(ui->widget_wave->xAxis, ui->widget_wave->yAxis);
// bars->setPen(QPen(QColor(31, 81, 136).lighter(130))); // 设置柱状图的边框颜色
// bars->setBrush(QColor(31, 81, 136)); // 设置柱状图的画刷颜色
// bars->setAntialiased(false);
// bars->setWidth(0.02);
// bars->setData(ticks, fossilData);
// ui->widget_wave->xAxis->setRange(0, fossilData.size());
// on_Btn_Scales_clicked();
// ui->widget_wave->replot();
} }
CWaveDisPlay::~CWaveDisPlay() CWaveDisPlay::~CWaveDisPlay()
@ -208,6 +227,7 @@ void CWaveDisPlay::ParseDataTimeWave(QJsonObject & objContent)
bFlag = true; bFlag = true;
m_ListWaveData = m_WaveData.split(","); m_ListWaveData = m_WaveData.split(",");
ui->widget_wave->xAxis->setLabel("Time(s)"); ui->widget_wave->xAxis->setLabel("Time(s)");
ui->widget_wave->yAxis->setLabel(m_ChannelUnit);
QString str = QString("wave size = %1").arg(m_ListWaveData.size()); QString str = QString("wave size = %1").arg(m_ListWaveData.size());
customLogMessageHandler(QtDebugMsg,str); customLogMessageHandler(QtDebugMsg,str);
double gap = 0.0; double gap = 0.0;
@ -290,7 +310,12 @@ void CWaveDisPlay::ParseDataFsWave(QJsonObject & objContent)
ui->widget_wave->yAxis->setLabel(m_ChannelUnit); ui->widget_wave->yAxis->setLabel(m_ChannelUnit);
QVector<double> x,y; QVector<double> x,y;
QCPGraph* graph = ui->widget_wave->addGraph(ui->widget_wave->xAxis, ui->widget_wave->yAxis); //QCPGraph* graph = ui->widget_wave->addGraph(ui->widget_wave->xAxis, ui->widget_wave->yAxis);
QCPBars *bars = new QCPBars(ui->widget_wave->xAxis, ui->widget_wave->yAxis);
bars->setAntialiased(false);
bars->setPen(QPen(QColor(31, 81, 136).lighter(130))); // 设置柱状图的边框颜色
bars->setBrush(QColor(31, 81, 136)); // 设置柱状图的画刷颜色
bars->setWidth(0.02);
float gap = 0; float gap = 0;
for(int i = 0; i < m_ListWaveData.size();i++){ for(int i = 0; i < m_ListWaveData.size();i++){
x.push_back(gap); x.push_back(gap);
@ -302,7 +327,8 @@ void CWaveDisPlay::ParseDataFsWave(QJsonObject & objContent)
} }
y[0] = 0; y[0] = 0;
//qDebug() << "x" <<x.size() << "y" << y.size() << endl; //qDebug() << "x" <<x.size() << "y" << y.size() << endl;
graph->setData(x,y); //graph->setData(x,y);
bars->setData(x, y);
ui->widget_wave->xAxis->setRange(0, y.size()); ui->widget_wave->xAxis->setRange(0, y.size());
on_Btn_Scales_clicked(); on_Btn_Scales_clicked();
ui->widget_wave->replot(); ui->widget_wave->replot();
@ -443,28 +469,58 @@ void CWaveDisPlay::mouseMoveEvent(QMouseEvent *event)
tracer->setVisible(true); tracer->setVisible(true);
tracerLabel->setVisible(true); tracerLabel->setVisible(true);
//将像素点转换成qcustomplot中的坐标值并通过setGraphKey将锚点值设为真实数据值。tracer->setGraphKey(xAxis->pixelToCoord(event->pos().x())); if(ui->Btn_Timewave->isChecked()){
int graphCount = ui->widget_wave->graphCount(); //将像素点转换成qcustomplot中的坐标值并通过setGraphKey将锚点值设为真实数据值。tracer->setGraphKey(xAxis->pixelToCoord(event->pos().x()));
if(graphCount < 1) int graphCount = ui->widget_wave->graphCount();
return; if(graphCount < 1)
//获得鼠标位置处对应的横坐标数据x return;
double x = ui->widget_wave->xAxis->pixelToCoord(event->pos().x()); //获得鼠标位置处对应的横坐标数据x
//遍历曲线 double x = ui->widget_wave->xAxis->pixelToCoord(event->pos().x());
//for (int i = 0; i < graphCount && tracer->visible(); ++i) //遍历曲线
{ //for (int i = 0; i < graphCount && tracer->visible(); ++i)
//显示锚点 {
QCPGraph *mGraph = ui->widget_wave->graph(0); //显示锚点
tracer->setGraph(mGraph);//将锚点设置到被选中的曲线上 QCPGraph *mGraph = ui->widget_wave->graph(0);
tracer->setGraphKey(x); //将游标横坐标设置成刚获得的横坐标数据x tracer->setGraph(mGraph);//将锚点设置到被选中的曲线上
tracer->updatePosition(); //使得刚设置游标的横纵坐标位置生效 tracer->setGraphKey(x); //将游标横坐标设置成刚获得的横坐标数据x
double xValue = tracer->position->key(); tracer->updatePosition(); //使得刚设置游标的横纵坐标位置生效
double yValue = tracer->position->value(); double xValue = tracer->position->key();
tracerLabel->setVisible(true); double yValue = tracer->position->value();
tracerLabel->setText(QString("X: %1 Y: %2").arg( QString::number(xValue)).arg(QString::number(yValue))); tracerLabel->setVisible(true);
//显示tip框 tracerLabel->setText(QString("X: %1 Y: %2").arg( QString::number(xValue)).arg(QString::number(yValue)));
QCPDataContainer<QCPGraphData>::const_iterator coorPoint = ui->widget_wave->graph(0)->data().data()->findBegin(xValue, true);//true代表向左搜索 //显示tip框
} QCPDataContainer<QCPGraphData>::const_iterator coorPoint = ui->widget_wave->graph(0)->data().data()->findBegin(xValue, true);//true代表向左搜索
}
}else if(ui->Btn_Fswave->isChecked()){
// 获取鼠标位置并转换为坐标
double x = ui->widget_wave->xAxis->pixelToCoord(event->pos().x());
// 找到最近的条形图数据点
double minDistance = std::numeric_limits<double>::max();
double nearestBarKey = 0;
double nearestBarValue = 0;
for (int i = 0; i < ui->widget_wave->plottableCount();i++)
{
if (QCPBars *bars = qobject_cast<QCPBars *>(ui->widget_wave->plottable(i)))
{
for (int i = 0; i < bars->data()->size(); ++i)
{
double barKey = bars->data()->at(i)->key;
double distance = std::abs(barKey - x);
if (distance < minDistance)
{
minDistance = distance;
nearestBarKey = barKey;
nearestBarValue = bars->data()->at(i)->value;
}
}
}
}
tracerLabel->setText(QString("X: %1 Y: %2").arg( QString::number(nearestBarKey)).arg(QString::number(nearestBarValue)));
// 设置游标位置
tracer->position->setCoords(nearestBarKey, nearestBarValue);
}
//重绘 //重绘
ui->widget_wave->replot(); ui->widget_wave->replot();
} }

View File

@ -28,6 +28,7 @@ CWokingConditionConfig::CWokingConditionConfig(QWidget *parent) :
ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu); ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);
ui->treeView->setStyle(QStyleFactory::create("windows")); ui->treeView->setStyle(QStyleFactory::create("windows"));
treeModel = new QStandardItemModel(ui->treeView); //创建模型指定父类 treeModel = new QStandardItemModel(ui->treeView); //创建模型指定父类
ui->treeView->setModel(treeModel); ui->treeView->setModel(treeModel);
ui->treeView->setHeaderHidden(true); ui->treeView->setHeaderHidden(true);
@ -38,7 +39,7 @@ CWokingConditionConfig::CWokingConditionConfig(QWidget *parent) :
QRegExp exp("[0-9\\.-]+$"); QRegExp exp("[0-9\\.-]+$");
QValidator *Validator = new QRegExpValidator(exp); QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit_Interval->setValidator(Validator); ui->lineEdit_Interval->setValidator(Validator);
ui->treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
} }
CWokingConditionConfig::~CWokingConditionConfig() CWokingConditionConfig::~CWokingConditionConfig()

View File

@ -3,7 +3,7 @@
#include <QWidget> #include <QWidget>
#include <QStandardItemModel> //数据模型类 #include <QStandardItemModel> //数据模型类
#include "HeaderView.h" #include "headerView.h"
#include "TableHeaderView.h" #include "TableHeaderView.h"
#include "global.h" #include "global.h"
#include "sqlitedb.h" #include "sqlitedb.h"

View File

@ -96,7 +96,13 @@ QRadioButton* CWorkingcondition::add_radio_model(int flag)
void CWorkingcondition::LoadWorkingConditionConfig() void CWorkingcondition::LoadWorkingConditionConfig()
{ {
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json"; QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitWorkConditionsInfo.json";
#endif
//QString fileName =QFileDialog::getOpenFileName(this,"打开文件",QDir::currentPath(), "*.json"); //QString fileName =QFileDialog::getOpenFileName(this,"打开文件",QDir::currentPath(), "*.json");
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
@ -659,7 +665,7 @@ void CWorkingcondition::on_pushButton_save_clicked()
void CWorkingcondition::PushData() void CWorkingcondition::PushData()
{ {
int flag = -1; int flag = -1,flag2 = -1;
for (int i = 0; i < model->rowCount(); i++) { for (int i = 0; i < model->rowCount(); i++) {
QComboBox *gg = (QComboBox*)(ui->tableView->indexWidget(model->index(i,2))); QComboBox *gg = (QComboBox*)(ui->tableView->indexWidget(model->index(i,2)));
QRadioButton *radio = (QRadioButton*)(ui->tableView->indexWidget(model->index(i,3))); QRadioButton *radio = (QRadioButton*)(ui->tableView->indexWidget(model->index(i,3)));
@ -671,6 +677,7 @@ void CWorkingcondition::PushData()
if(strComBox == ""){ if(strComBox == ""){
enable = 1; enable = 1;
flag2 = 1;
}else if( strComBox == ""){ }else if( strComBox == ""){
enable = 0; enable = 0;
@ -693,6 +700,10 @@ void CWorkingcondition::PushData()
QMessageBox::information(this, QStringLiteral("提示"), "请选择起始工况!"); QMessageBox::information(this, QStringLiteral("提示"), "请选择起始工况!");
return; return;
} }
if(flag2 == -1){
QMessageBox::information(this, QStringLiteral("提示"), "请使能一个工况!");
return;
}
QVector<WorkCondition_t> WorkCondition = g_SqliteDB->GetWorkCondition("t_WorkCondition",""); QVector<WorkCondition_t> WorkCondition = g_SqliteDB->GetWorkCondition("t_WorkCondition","");
QJsonArray arrayWorkCondition; QJsonArray arrayWorkCondition;
@ -847,7 +858,13 @@ void CWorkingcondition::PushData()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(WorkConditionsInfoObj); jsonDoc.setObject(WorkConditionsInfoObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json"; QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitWorkConditionsInfo.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitWorkConditionsInfo.json";
#endif
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);

View File

@ -35,7 +35,6 @@ void FtpClient::SetUserInfo(const QString userAccount, const QString pwd)
void FtpClient::SetServerInfo(const QString fileAddr, int Port/* =21 */) void FtpClient::SetServerInfo(const QString fileAddr, int Port/* =21 */)
{ {
m_ftpManager->disconnect(SIGNAL(finished(QNetworkReply*))); m_ftpManager->disconnect(SIGNAL(finished(QNetworkReply*)));
connect(m_ftpManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finished(QNetworkReply*))); connect(m_ftpManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finished(QNetworkReply*)));
//connect(m_ftpManager, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(CheckReplyStatus(QNetworkReply::NetworkError))); //connect(m_ftpManager, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(CheckReplyStatus(QNetworkReply::NetworkError)));
@ -72,6 +71,8 @@ void FtpClient::finished(QNetworkReply* reply)
QNetworkReply::NetworkError error = reply->error(); QNetworkReply::NetworkError error = reply->error();
qDebug() << "finished" << error <<endl; qDebug() << "finished" << error <<endl;
delete m_ftpUrl;
m_ftpUrl = NULL;
if(m_fileName != ""){ if(m_fileName != ""){
//QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("保存成功!")); //QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("保存成功!"));
QJsonObject allObj,cmdBody,temp; QJsonObject allObj,cmdBody,temp;
@ -199,3 +200,61 @@ void FtpClient::downloadProgress(qint64 byteSend, qint64 byteTotal)
qDebug() << byteSend << byteTotal << endl; qDebug() << byteSend << byteTotal << endl;
emit sigDownloadProcess(byteSend,byteTotal); emit sigDownloadProcess(byteSend,byteTotal);
} }
void FtpClient::uploadFile(const QString fileUrl, const QString filePath,const QString fileName,int type)
{
QNetworkAccessManager manager;
//QUrl url;
QUrl url(fileUrl);
/* 设置通讯协议 */
url.setScheme("ftp");
/* 设置用户名 */
url.setUserName("root");
/* 设置密码 */
url.setPassword("@#cidw!@123456");
/* 设置端口号一般为21 */
url.setPort(21);
/* 装载本地文件 */
QFile file(filePath);
file.open(QIODevice::ReadOnly);
/* 读取本地文件数据 */
QByteArray data = file.readAll();
file.close();
QNetworkRequest request(url);
/* 上传数据,上传成功后会在远端创建文件 */
QNetworkReply* reply = manager.put(request, data);
QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
/* 进入等待,但事件循环依然进行 */
eventLoop.exec();
if (reply->error() != QNetworkReply::NoError) {
qDebug() << "Error: " << reply->errorString();
}
QJsonObject allObj,cmdBody,temp;
QJsonArray tempArray;
if(fileName.contains(".json")){
allObj.insert("cmd", "90");
temp["fileName"] = fileName;
if(type >= 0)
temp["content"] = type;
tempArray.append(temp);
allObj.insert("cmdBody",tempArray);
}else{
allObj.insert("cmd", "46");
allObj.insert("type", type);
temp["fileName"] = fileName;
allObj.insert("cmdBody",temp);
}
qDebug() << allObj << endl;
QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl);
g_NetMgr->PostJson(req,allObj);
}

View File

@ -2,13 +2,13 @@
#define FTPCLIENT_H #define FTPCLIENT_H
#include <QtWidgets/QWidget> #include <QtWidgets/QWidget>
#include <QtCore\QFile> #include <QtCore/QFile>
#include <QtNetwork\QNetworkRequest> #include <QtNetwork/QNetworkRequest>
#include <QtNetwork\QNetworkReply> #include <QtNetwork/QNetworkReply>
#include <QtNetwork\QNetworkAccessManager> #include <QtNetwork/QNetworkAccessManager>
#include <QUrl> #include <QUrl>
#include <QMessageBox> #include <QMessageBox>
#include <QtCore\QFileInfo> #include <QtCore/QFileInfo>
#include <QProgressDialog> #include <QProgressDialog>
class FtpClient : public QWidget class FtpClient : public QWidget
@ -28,7 +28,7 @@ public:
//下载文件 //下载文件
void DownLoad(const QString fileSource, const QString fileDest); void DownLoad(const QString fileSource, const QString fileDest);
void uploadFile(const QString fileUrl, const QString filePath,const QString fileName,int type = -1);
signals: signals:
void sigReplyStatus(int result); void sigReplyStatus(int result);
void sigDownloadProcess(qint64 byteSend, qint64 byteTotal); void sigDownloadProcess(qint64 byteSend, qint64 byteTotal);
@ -50,6 +50,7 @@ private:
QNetworkReply* downloadReply; QNetworkReply* downloadReply;
}; };
extern FtpClient *g_FtpClient; extern FtpClient *g_FtpClient;
#endif // FTPCLIENT_H #endif // FTPCLIENT_H

View File

@ -14,3 +14,4 @@ QString g_LocalFile ;
QString g_strVersion ; QString g_strVersion ;
QString g_strProject ; QString g_strProject ;
QString g_strFre ; QString g_strFre ;
QString g_strIOControl ;

View File

@ -16,6 +16,9 @@ extern QString g_LocalFile ;
extern QString g_strVersion ; extern QString g_strVersion ;
extern QString g_strProject ; extern QString g_strProject ;
extern QString g_strFre ; extern QString g_strFre ;
extern QString g_strIOControl ;
//#define NO_FILTER
typedef struct ChannelSetting{ typedef struct ChannelSetting{
double ChUnitCoeff; double ChUnitCoeff;
int ChUnitDot; int ChUnitDot;
@ -244,6 +247,8 @@ typedef struct _TriggerEvent{
int triggeredEquipmentID; int triggeredEquipmentID;
QString triggeredEventName; QString triggeredEventName;
QString triggeredFeatureName; QString triggeredFeatureName;
QString triggeredFileName;
QString triggereValue;
}TriggerEvent_t ; }TriggerEvent_t ;
typedef struct _TriggerAlarmStatusInfo{ typedef struct _TriggerAlarmStatusInfo{
@ -309,6 +314,9 @@ typedef struct _Charateristic{
double speedRPM; double speedRPM;
int ChUnitDot; int ChUnitDot;
QString channelType; QString channelType;
double InvertAlarm;
double InvertDanger;
} Charateristic_t; } Charateristic_t;
typedef struct tag_WAVE_DATA{ typedef struct tag_WAVE_DATA{
QString channelId; QString channelId;

View File

@ -1,4 +1,4 @@
#include "HeaderView.h" #include "headerView.h"
#include <QPainter> #include <QPainter>
#include <QCheckBox> #include <QCheckBox>
#include <QDebug> #include <QDebug>

161
include/ftp/qftp.h Normal file
View File

@ -0,0 +1,161 @@
/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNetwork module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QFTP_H
#define QFTP_H
#include <QtCore/qstring.h>
#include <QtCore/qobject.h>
#include <qurlinfo.h>
QT_BEGIN_NAMESPACE
class QFtpPrivate;
class QFtp : public QObject
{
Q_OBJECT
public:
explicit QFtp(QObject *parent = 0);
virtual ~QFtp();
enum State {
Unconnected,
HostLookup,
Connecting,
Connected,
LoggedIn,
Closing
};
enum Error {
NoError,
UnknownError,
HostNotFound,
ConnectionRefused,
NotConnected
};
enum Command {
None,
SetTransferMode,
SetProxy,
ConnectToHost,
Login,
Close,
List,
Cd,
Get,
Put,
Remove,
Mkdir,
Rmdir,
Rename,
RawCommand
};
enum TransferMode {
Active,
Passive
};
enum TransferType {
Binary,
Ascii
};
int setProxy(const QString &host, quint16 port);
int connectToHost(const QString &host, quint16 port=21);
int login(const QString &user = QString(), const QString &password = QString());
int close();
int setTransferMode(TransferMode mode);
int list(const QString &dir = QString());
int cd(const QString &dir);
int get(const QString &file, QIODevice *dev=0, TransferType type = Binary);
int put(const QByteArray &data, const QString &file, TransferType type = Binary);
int put(QIODevice *dev, const QString &file, TransferType type = Binary);
int remove(const QString &file);
int mkdir(const QString &dir);
int rmdir(const QString &dir);
int rename(const QString &oldname, const QString &newname);
int rawCommand(const QString &command);
qint64 bytesAvailable() const;
qint64 read(char *data, qint64 maxlen);
QByteArray readAll();
int currentId() const;
QIODevice* currentDevice() const;
Command currentCommand() const;
bool hasPendingCommands() const;
void clearPendingCommands();
State state() const;
Error error() const;
QString errorString() const;
public Q_SLOTS:
void abort();
Q_SIGNALS:
void stateChanged(int);
void listInfo(const QUrlInfo&);
void readyRead();
void dataTransferProgress(qint64, qint64);
void rawCommandReply(int, const QString&);
void commandStarted(int);
void commandFinished(int, bool);
void done(bool);
private:
Q_DISABLE_COPY(QFtp)
QScopedPointer<QFtpPrivate> d;
Q_PRIVATE_SLOT(d, void _q_startNextCommand())
Q_PRIVATE_SLOT(d, void _q_piFinished(const QString&))
Q_PRIVATE_SLOT(d, void _q_piError(int, const QString&))
Q_PRIVATE_SLOT(d, void _q_piConnectState(int))
Q_PRIVATE_SLOT(d, void _q_piFtpReply(int, const QString&))
};
QT_END_NAMESPACE
#endif // QFTP_H

121
include/ftp/qurlinfo.h Normal file
View File

@ -0,0 +1,121 @@
/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNetwork module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QURLINFO_H
#define QURLINFO_H
#include <QtCore/qdatetime.h>
#include <QtCore/qstring.h>
#include <QtCore/qiodevice.h>
QT_BEGIN_NAMESPACE
class QUrl;
class QUrlInfoPrivate;
class QUrlInfo
{
public:
enum PermissionSpec {
ReadOwner = 00400, WriteOwner = 00200, ExeOwner = 00100,
ReadGroup = 00040, WriteGroup = 00020, ExeGroup = 00010,
ReadOther = 00004, WriteOther = 00002, ExeOther = 00001 };
QUrlInfo();
QUrlInfo(const QUrlInfo &ui);
QUrlInfo(const QString &name, int permissions, const QString &owner,
const QString &group, qint64 size, const QDateTime &lastModified,
const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink,
bool isWritable, bool isReadable, bool isExecutable);
QUrlInfo(const QUrl &url, int permissions, const QString &owner,
const QString &group, qint64 size, const QDateTime &lastModified,
const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink,
bool isWritable, bool isReadable, bool isExecutable);
QUrlInfo &operator=(const QUrlInfo &ui);
virtual ~QUrlInfo();
virtual void setName(const QString &name);
virtual void setDir(bool b);
virtual void setFile(bool b);
virtual void setSymLink(bool b);
virtual void setOwner(const QString &s);
virtual void setGroup(const QString &s);
virtual void setSize(qint64 size);
virtual void setWritable(bool b);
virtual void setReadable(bool b);
virtual void setPermissions(int p);
virtual void setLastModified(const QDateTime &dt);
void setLastRead(const QDateTime &dt);
bool isValid() const;
QString name() const;
int permissions() const;
QString owner() const;
QString group() const;
qint64 size() const;
QDateTime lastModified() const;
QDateTime lastRead() const;
bool isDir() const;
bool isFile() const;
bool isSymLink() const;
bool isWritable() const;
bool isReadable() const;
bool isExecutable() const;
static bool greaterThan(const QUrlInfo &i1, const QUrlInfo &i2,
int sortBy);
static bool lessThan(const QUrlInfo &i1, const QUrlInfo &i2,
int sortBy);
static bool equal(const QUrlInfo &i1, const QUrlInfo &i2,
int sortBy);
bool operator==(const QUrlInfo &i) const;
inline bool operator!=(const QUrlInfo &i) const
{ return !operator==(i); }
private:
QUrlInfoPrivate *d;
};
QT_END_NAMESPACE
#endif // QURLINFO_H

View File

@ -0,0 +1,17 @@
# defined since 2.8.3
if (CMAKE_VERSION VERSION_LESS 2.8.3)
get_filename_component (CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
endif ()
# Allows loading FFTW3 settings from another project
set (FFTW3_CONFIG_FILE "${CMAKE_CURRENT_LIST_FILE}")
set (FFTW3_LIBRARIES fftw3)
set (FFTW3_LIBRARY_DIRS /opt/Tools/fftw-3.3.8/install/lib)
set (FFTW3_INCLUDE_DIRS /opt/Tools/fftw-3.3.8/install/include)
include ("${CMAKE_CURRENT_LIST_DIR}/FFTW3LibraryDepends.cmake")
if (CMAKE_VERSION VERSION_LESS 2.8.3)
set (CMAKE_CURRENT_LIST_DIR)
endif ()

View File

@ -0,0 +1,12 @@
set (PACKAGE_VERSION "3.3.8")
# Check whether the requested PACKAGE_FIND_VERSION is compatible
if ("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set (PACKAGE_VERSION_COMPATIBLE FALSE)
else ()
set (PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set (PACKAGE_VERSION_EXACT TRUE)
endif ()
endif ()

BIN
lib/fftw/libfftw3.so.3 Normal file

Binary file not shown.

BIN
lib/fftw/libfftw3.so.3.5.8 Normal file

Binary file not shown.

View File

@ -0,0 +1,11 @@
prefix=/opt/Tools/fftw-3.3.8/install
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: FFTW
Description: fast Fourier transform library
Version: 3.3.8
Libs: -L${libdir} -lfftw3
Libs.private: -lm
Cflags: -I${includedir}

View File

@ -0,0 +1,7 @@
list(APPEND _Qt5Ftp_OWN_INCLUDE_DIRS
"/opt/Tools/qtftp-master/include" "/opt/Tools/qtftp-master/include/QtFtp"
)
set(Qt5Ftp_PRIVATE_INCLUDE_DIRS
"/opt/Tools/qtftp-master/include/QtFtp/5.0.0" "/opt/Tools/qtftp-master/include/QtFtp/5.0.0/QtFtp"
)

View File

@ -0,0 +1,176 @@
if (CMAKE_VERSION VERSION_LESS 3.1.0)
message(FATAL_ERROR "Qt 5 Ftp module requires at least CMake version 3.1.0")
endif()
get_filename_component(_qt5Ftp_install_prefix "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
# For backwards compatibility only. Use Qt5Ftp_VERSION instead.
set(Qt5Ftp_VERSION_STRING 5.0.0)
set(Qt5Ftp_LIBRARIES Qt5::Ftp)
macro(_qt5_Ftp_check_file_exists file)
if(NOT EXISTS "${file}" )
message(FATAL_ERROR "The imported target \"Qt5::Ftp\" references the file
\"${file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
endif()
endmacro()
macro(_populate_Ftp_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION)
set_property(TARGET Qt5::Ftp APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
set(imported_location "${_qt5Ftp_install_prefix}/lib/${LIB_LOCATION}")
_qt5_Ftp_check_file_exists(${imported_location})
set_target_properties(Qt5::Ftp PROPERTIES
"INTERFACE_LINK_LIBRARIES" "${_Qt5Ftp_LIB_DEPENDENCIES}"
"IMPORTED_LOCATION_${Configuration}" ${imported_location}
"IMPORTED_SONAME_${Configuration}" "libQt5Ftp.so.5"
# For backward compatibility with CMake < 2.8.12
"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}" "${_Qt5Ftp_LIB_DEPENDENCIES}"
)
endmacro()
if (NOT TARGET Qt5::Ftp)
set(_Qt5Ftp_OWN_INCLUDE_DIRS "${_qt5Ftp_install_prefix}/include/" "${_qt5Ftp_install_prefix}/include/QtFtp")
set(Qt5Ftp_PRIVATE_INCLUDE_DIRS "")
include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
foreach(_dir ${_Qt5Ftp_OWN_INCLUDE_DIRS})
_qt5_Ftp_check_file_exists(${_dir})
endforeach()
# Only check existence of private includes if the Private component is
# specified.
list(FIND Qt5Ftp_FIND_COMPONENTS Private _check_private)
if (NOT _check_private STREQUAL -1)
foreach(_dir ${Qt5Ftp_PRIVATE_INCLUDE_DIRS})
_qt5_Ftp_check_file_exists(${_dir})
endforeach()
endif()
set(Qt5Ftp_INCLUDE_DIRS ${_Qt5Ftp_OWN_INCLUDE_DIRS})
set(Qt5Ftp_DEFINITIONS -DQT_FTP_LIB)
set(Qt5Ftp_COMPILE_DEFINITIONS QT_FTP_LIB)
set(_Qt5Ftp_MODULE_DEPENDENCIES "Network;Core")
set(Qt5Ftp_OWN_PRIVATE_INCLUDE_DIRS ${Qt5Ftp_PRIVATE_INCLUDE_DIRS})
set(_Qt5Ftp_FIND_DEPENDENCIES_REQUIRED)
if (Qt5Ftp_FIND_REQUIRED)
set(_Qt5Ftp_FIND_DEPENDENCIES_REQUIRED REQUIRED)
endif()
set(_Qt5Ftp_FIND_DEPENDENCIES_QUIET)
if (Qt5Ftp_FIND_QUIETLY)
set(_Qt5Ftp_DEPENDENCIES_FIND_QUIET QUIET)
endif()
set(_Qt5Ftp_FIND_VERSION_EXACT)
if (Qt5Ftp_FIND_VERSION_EXACT)
set(_Qt5Ftp_FIND_VERSION_EXACT EXACT)
endif()
set(Qt5Ftp_EXECUTABLE_COMPILE_FLAGS "")
foreach(_module_dep ${_Qt5Ftp_MODULE_DEPENDENCIES})
if (NOT Qt5${_module_dep}_FOUND)
find_package(Qt5${_module_dep}
5.0.0 ${_Qt5Ftp_FIND_VERSION_EXACT}
${_Qt5Ftp_DEPENDENCIES_FIND_QUIET}
${_Qt5Ftp_FIND_DEPENDENCIES_REQUIRED}
PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH
)
endif()
if (NOT Qt5${_module_dep}_FOUND)
set(Qt5Ftp_FOUND False)
return()
endif()
list(APPEND Qt5Ftp_INCLUDE_DIRS "${Qt5${_module_dep}_INCLUDE_DIRS}")
list(APPEND Qt5Ftp_PRIVATE_INCLUDE_DIRS "${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}")
list(APPEND Qt5Ftp_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS})
list(APPEND Qt5Ftp_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS})
list(APPEND Qt5Ftp_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS})
endforeach()
list(REMOVE_DUPLICATES Qt5Ftp_INCLUDE_DIRS)
list(REMOVE_DUPLICATES Qt5Ftp_PRIVATE_INCLUDE_DIRS)
list(REMOVE_DUPLICATES Qt5Ftp_DEFINITIONS)
list(REMOVE_DUPLICATES Qt5Ftp_COMPILE_DEFINITIONS)
list(REMOVE_DUPLICATES Qt5Ftp_EXECUTABLE_COMPILE_FLAGS)
set(_Qt5Ftp_LIB_DEPENDENCIES "Qt5::Network;Qt5::Core")
add_library(Qt5::Ftp SHARED IMPORTED)
set_property(TARGET Qt5::Ftp PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${_Qt5Ftp_OWN_INCLUDE_DIRS})
set_property(TARGET Qt5::Ftp PROPERTY
INTERFACE_COMPILE_DEFINITIONS QT_FTP_LIB)
set_property(TARGET Qt5::Ftp PROPERTY INTERFACE_QT_ENABLED_FEATURES )
set_property(TARGET Qt5::Ftp PROPERTY INTERFACE_QT_DISABLED_FEATURES )
set(_Qt5Ftp_PRIVATE_DIRS_EXIST TRUE)
foreach (_Qt5Ftp_PRIVATE_DIR ${Qt5Ftp_OWN_PRIVATE_INCLUDE_DIRS})
if (NOT EXISTS ${_Qt5Ftp_PRIVATE_DIR})
set(_Qt5Ftp_PRIVATE_DIRS_EXIST FALSE)
endif()
endforeach()
if (_Qt5Ftp_PRIVATE_DIRS_EXIST)
add_library(Qt5::FtpPrivate INTERFACE IMPORTED)
set_property(TARGET Qt5::FtpPrivate PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${Qt5Ftp_OWN_PRIVATE_INCLUDE_DIRS}
)
set(_Qt5Ftp_PRIVATEDEPS)
foreach(dep ${_Qt5Ftp_LIB_DEPENDENCIES})
if (TARGET ${dep}Private)
list(APPEND _Qt5Ftp_PRIVATEDEPS ${dep}Private)
endif()
endforeach()
set_property(TARGET Qt5::FtpPrivate PROPERTY
INTERFACE_LINK_LIBRARIES Qt5::Ftp ${_Qt5Ftp_PRIVATEDEPS}
)
endif()
_populate_Ftp_target_properties(RELEASE "libQt5Ftp.so.5.0.0" "" )
file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5Ftp_*Plugin.cmake")
macro(_populate_Ftp_plugin_properties Plugin Configuration PLUGIN_LOCATION)
set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
set(imported_location "${_qt5Ftp_install_prefix}/plugins/${PLUGIN_LOCATION}")
_qt5_Ftp_check_file_exists(${imported_location})
set_target_properties(Qt5::${Plugin} PROPERTIES
"IMPORTED_LOCATION_${Configuration}" ${imported_location}
)
endmacro()
if (pluginTargets)
foreach(pluginTarget ${pluginTargets})
include(${pluginTarget})
endforeach()
endif()
_qt5_Ftp_check_file_exists("${CMAKE_CURRENT_LIST_DIR}/Qt5FtpConfigVersion.cmake")
endif()

View File

@ -0,0 +1,11 @@
set(PACKAGE_VERSION 5.0.0)
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

6
lib/ftp/libQt5Ftp.prl Normal file
View File

@ -0,0 +1,6 @@
QMAKE_PRL_BUILD_DIR = /opt/Tools/build-qtftp-Desktop_Qt_5_12_2_GCC_64bit-Release/src/qftp
QMAKE_PRO_INPUT = qftp.pro
QMAKE_PRL_TARGET = libQt5Ftp.so.5.0.0
QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_plugins import_qpa_plugin qt_build_extra file_copies qmake_use qt warn_on release link_prl incremental shared release linux unix posix gcc sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples enable_new_dtags f16c force_debug_info largefile rdrnd shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl prepare_docs qt_docs_targets no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions explicitlib qtquickcompiler shared relative_qt_rpath qmake_cache target_qt c++11 strict_c++ c++14 c99 c11 hide_symbols bsymbolic_functions separate_debug_info split_incpath qt_install_headers need_fwd_pri qt_install_module create_cmake compiler_supports_fpmath create_pc create_libtool have_target dll debug_info thread moc resources
QMAKE_PRL_VERSION = 5.0.0
QMAKE_PRL_LIBS = -L/opt/Qt5.12.2/5.12.2/gcc_64/lib -lQt5Network -lQt5Core -lpthread

BIN
lib/ftp/libQt5Ftp.so.5 Normal file

Binary file not shown.

BIN
lib/ftp/libQt5Ftp.so.5.0 Normal file

Binary file not shown.

BIN
lib/ftp/libQt5Ftp.so.5.0.0 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,13 @@
prefix=/opt/Qt5.12.2/5.12.2/gcc_64
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
Name: Qt5 Ftp
Description: Qt Ftp module
Version: 5.0.0
Libs: -L${libdir} -lQt5Ftp
Cflags: -DQT_FTP_LIB -I${includedir}/QtFtp -I${includedir}
Requires: Qt5Core Qt5Network

View File

@ -1,7 +1,7 @@
list(APPEND _Qt5Qmqtt_OWN_INCLUDE_DIRS list(APPEND _Qt5Qmqtt_OWN_INCLUDE_DIRS
"E:/ThunderDownload/qmqtt-master/include" "E:/ThunderDownload/qmqtt-master/include/QtQmqtt" "/opt/Tools/qmqtt-emqx/qmqtt-master/include" "/opt/Tools/qmqtt-emqx/qmqtt-master/include/QtQmqtt"
) )
set(Qt5Qmqtt_PRIVATE_INCLUDE_DIRS set(Qt5Qmqtt_PRIVATE_INCLUDE_DIRS
"E:/ThunderDownload/qmqtt-master/include/QtQmqtt/1.0.2" "E:/ThunderDownload/qmqtt-master/include/QtQmqtt/1.0.2/QtQmqtt" "/opt/Tools/qmqtt-emqx/qmqtt-master/include/QtQmqtt/1.0.3" "/opt/Tools/qmqtt-emqx/qmqtt-master/include/QtQmqtt/1.0.3/QtQmqtt"
) )

View File

@ -6,7 +6,7 @@ endif()
get_filename_component(_qt5Qmqtt_install_prefix "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) get_filename_component(_qt5Qmqtt_install_prefix "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
# For backwards compatibility only. Use Qt5Qmqtt_VERSION instead. # For backwards compatibility only. Use Qt5Qmqtt_VERSION instead.
set(Qt5Qmqtt_VERSION_STRING 1.0.2) set(Qt5Qmqtt_VERSION_STRING 1.0.3)
set(Qt5Qmqtt_LIBRARIES Qt5::Qmqtt) set(Qt5Qmqtt_LIBRARIES Qt5::Qmqtt)
@ -27,22 +27,16 @@ endmacro()
macro(_populate_Qmqtt_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION) macro(_populate_Qmqtt_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION)
set_property(TARGET Qt5::Qmqtt APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) set_property(TARGET Qt5::Qmqtt APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
set(imported_location "${_qt5Qmqtt_install_prefix}/bin/${LIB_LOCATION}") set(imported_location "${_qt5Qmqtt_install_prefix}/lib/${LIB_LOCATION}")
_qt5_Qmqtt_check_file_exists(${imported_location}) _qt5_Qmqtt_check_file_exists(${imported_location})
set_target_properties(Qt5::Qmqtt PROPERTIES set_target_properties(Qt5::Qmqtt PROPERTIES
"INTERFACE_LINK_LIBRARIES" "${_Qt5Qmqtt_LIB_DEPENDENCIES}" "INTERFACE_LINK_LIBRARIES" "${_Qt5Qmqtt_LIB_DEPENDENCIES}"
"IMPORTED_LOCATION_${Configuration}" ${imported_location} "IMPORTED_LOCATION_${Configuration}" ${imported_location}
"IMPORTED_SONAME_${Configuration}" "libQt5Qmqtt.so.1"
# For backward compatibility with CMake < 2.8.12 # For backward compatibility with CMake < 2.8.12
"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}" "${_Qt5Qmqtt_LIB_DEPENDENCIES}" "IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}" "${_Qt5Qmqtt_LIB_DEPENDENCIES}"
) )
set(imported_implib "${_qt5Qmqtt_install_prefix}/lib/${IMPLIB_LOCATION}")
_qt5_Qmqtt_check_file_exists(${imported_implib})
if(NOT "${IMPLIB_LOCATION}" STREQUAL "")
set_target_properties(Qt5::Qmqtt PROPERTIES
"IMPORTED_IMPLIB_${Configuration}" ${imported_implib}
)
endif()
endmacro() endmacro()
if (NOT TARGET Qt5::Qmqtt) if (NOT TARGET Qt5::Qmqtt)
@ -91,7 +85,7 @@ if (NOT TARGET Qt5::Qmqtt)
foreach(_module_dep ${_Qt5Qmqtt_MODULE_DEPENDENCIES}) foreach(_module_dep ${_Qt5Qmqtt_MODULE_DEPENDENCIES})
if (NOT Qt5${_module_dep}_FOUND) if (NOT Qt5${_module_dep}_FOUND)
find_package(Qt5${_module_dep} find_package(Qt5${_module_dep}
1.0.2 ${_Qt5Qmqtt_FIND_VERSION_EXACT} 1.0.3 ${_Qt5Qmqtt_FIND_VERSION_EXACT}
${_Qt5Qmqtt_DEPENDENCIES_FIND_QUIET} ${_Qt5Qmqtt_DEPENDENCIES_FIND_QUIET}
${_Qt5Qmqtt_FIND_DEPENDENCIES_REQUIRED} ${_Qt5Qmqtt_FIND_DEPENDENCIES_REQUIRED}
PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH
@ -151,13 +145,10 @@ if (NOT TARGET Qt5::Qmqtt)
) )
endif() endif()
_populate_Qmqtt_target_properties(RELEASE "Qt5Qmqtt.dll" "libQt5Qmqtt.a" ) _populate_Qmqtt_target_properties(RELEASE "libQt5Qmqtt.so.1.0.3" "" )
_populate_Qmqtt_target_properties(DEBUG "Qt5Qmqttd.dll" "libQt5Qmqttd.a" )
file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5Qmqtt_*Plugin.cmake") file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5Qmqtt_*Plugin.cmake")

View File

@ -1,5 +1,5 @@
set(PACKAGE_VERSION 1.0.2) set(PACKAGE_VERSION 1.0.3)
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE) set(PACKAGE_VERSION_COMPATIBLE FALSE)

6
lib/mqtt/libQt5Qmqtt.prl Normal file
View File

@ -0,0 +1,6 @@
QMAKE_PRL_BUILD_DIR = /opt/Tools/qmqtt-emqx/build-qmqtt-Desktop_Qt_5_12_2_GCC_64bit-Release/src/mqtt
QMAKE_PRO_INPUT = qmqtt.pro
QMAKE_PRL_TARGET = libQt5Qmqtt.so.1.0.3
QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_plugins import_qpa_plugin qt_build_extra file_copies qmake_use qt warn_on release link_prl incremental shared release linux unix posix gcc sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples enable_new_dtags f16c force_debug_info largefile precompile_header rdrnd shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl prepare_docs qt_docs_targets no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions explicitlib warning_clean qtquickcompiler relative_qt_rpath qmake_cache target_qt c++11 strict_c++ c++14 c99 c11 hide_symbols bsymbolic_functions separate_debug_info split_incpath qt_install_headers need_fwd_pri qt_install_module create_cmake compiler_supports_fpmath create_pc create_libtool have_target dll debug_info thread moc resources
QMAKE_PRL_VERSION = 1.0.3
QMAKE_PRL_LIBS = -L/opt/Qt5.12.2/5.12.2/gcc_64/lib -lQt5Network -lQt5Core -lpthread

BIN
lib/mqtt/libQt5Qmqtt.so.1 Normal file

Binary file not shown.

BIN
lib/mqtt/libQt5Qmqtt.so.1.0 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
prefix=D:/Qt/Qt5.12.11/5.12.11/mingw73_32 prefix=/opt/Qt5.12.2/5.12.2/gcc_64
exec_prefix=${prefix} exec_prefix=${prefix}
libdir=${prefix}/lib libdir=${prefix}/lib
includedir=${prefix}/include includedir=${prefix}/include
@ -6,8 +6,8 @@ includedir=${prefix}/include
Name: Qt5 Qmqtt Name: Qt5 Qmqtt
Description: Qt Qmqtt module Description: Qt Qmqtt module
Version: 1.0.2 Version: 1.0.3
Libs: -L${libdir} -lQt5Qmqttd Libs: -L${libdir} -lQt5Qmqtt
Cflags: -DQT_QMQTT_LIB -I${includedir}/QtQmqtt -I${includedir} Cflags: -DQT_QMQTT_LIB -I${includedir}/QtQmqtt -I${includedir}
Requires: Qt5Core Qt5Network Requires: Qt5Core Qt5Network

7
log.h
View File

@ -6,8 +6,13 @@
#include <QMutex> #include <QMutex>
#include <QString> #include <QString>
#define LOG_FILE_NAME QCoreApplication::applicationDirPath() + QString("\\Log\\") + QDateTime::currentDateTime().toString("yyyy-MM-dd") + QString(".log")
#ifdef Q_OS_WIN32
#define LOG_FILE_NAME QCoreApplication::applicationDirPath() + QString("\\Log\\") + QDateTime::currentDateTime().toString("yyyy-MM-dd") + QString(".log")
#endif
#ifdef Q_OS_LINUX
#define LOG_FILE_NAME QCoreApplication::applicationDirPath() + QString("/Log/") + QDateTime::currentDateTime().toString("yyyy-MM-dd") + QString(".log")
#endif
static int s_logLevel = 0; static int s_logLevel = 0;
static QMutex s_logMutex; static QMutex s_logMutex;
static QString s_logPath; static QString s_logPath;

View File

@ -1,9 +1,11 @@
#include "mainwindow.h" #include "mainwindow.h"
#include <QApplication> #include <QApplication>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
MainWindow w; MainWindow w;
w.show(); w.show();

View File

@ -20,8 +20,23 @@ MainWindow::MainWindow(QWidget *parent) :
g_FtpClient = new FtpClient(); g_FtpClient = new FtpClient();
//读取ini //读取ini
<<<<<<< HEAD
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat); QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat);
g_strVersion = "SJ90C V1.1"; g_strVersion = "SJ90C V1.1";
=======
#ifdef Q_OS_WIN32
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat);
#endif
#ifdef Q_OS_LINUX
QSettings settingsread(QCoreApplication::applicationDirPath() + "/config/config.ini",QSettings::IniFormat);
#endif
QDate buildDate = QLocale( QLocale::English ).toDate( QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy");
QTime buildTime = QTime::fromString(__TIME__, "hh:mm:ss");
g_strVersion = "SJ90C V1.1_" + buildDate.toString("yyyyMMdd");
customLogMessageHandler(QtDebugMsg,g_strVersion + " " + buildTime.toString());
>>>>>>> font
g_strProject = settingsread.value("main/Project").toString(); g_strProject = settingsread.value("main/Project").toString();
g_strFre = settingsread.value("main/Fre").toString(); g_strFre = settingsread.value("main/Fre").toString();
@ -243,16 +258,28 @@ void MainWindow::leftConfigClick()
delete pWaveDisPlay; delete pWaveDisPlay;
pWaveDisPlay = NULL; pWaveDisPlay = NULL;
} }
if(pDIOBoard){
delete pDIOBoard;
pDIOBoard = NULL;
}
}else if(name == "特征值列表"){ }else if(name == "特征值列表"){
ui->tabWidget_main->setCurrentWidget(pCharacteristcList); ui->tabWidget_main->setCurrentWidget(pCharacteristcList);
if(pWaveDisPlay){ if(pWaveDisPlay){
delete pWaveDisPlay; delete pWaveDisPlay;
pWaveDisPlay = NULL; pWaveDisPlay = NULL;
} }
if(pDIOBoard){
delete pDIOBoard;
pDIOBoard = NULL;
}
}else if(name == "气隙监测"){ }else if(name == "气隙监测"){
}else if(name == "波形图"){ }else if(name == "波形图"){
if(pDIOBoard){
delete pDIOBoard;
pDIOBoard = NULL;
}
if(pWaveDisPlay == NULL) if(pWaveDisPlay == NULL)
pWaveDisPlay = new CWaveDisPlay(this); pWaveDisPlay = new CWaveDisPlay(this);
ui->tabWidget_main->addTab(pWaveDisPlay,""); ui->tabWidget_main->addTab(pWaveDisPlay,"");
@ -300,12 +327,26 @@ void MainWindow::leftConfigClick2()
} }
if(name == "实时报警"){ if(name == "实时报警"){
if(pRealTimeAlarm == NULL)
pRealTimeAlarm = new CRealTimeAlarm (this);
ui->tabWidget_accidentTracing->addTab(pRealTimeAlarm,"");
ui->tabWidget_accidentTracing->setCurrentWidget(pRealTimeAlarm); ui->tabWidget_accidentTracing->setCurrentWidget(pRealTimeAlarm);
if(pHistoryAlarm){
delete pHistoryAlarm;
pHistoryAlarm = NULL;
}
}else if(name == "历史报警"){ }else if(name == "历史报警"){
if(pHistoryAlarm == NULL)
pHistoryAlarm = new CHistoryAlarm (this);
ui->tabWidget_accidentTracing->addTab(pHistoryAlarm,"");
ui->tabWidget_accidentTracing->setCurrentWidget(pHistoryAlarm); ui->tabWidget_accidentTracing->setCurrentWidget(pHistoryAlarm);
}else if(name == "趋势分析"){ if(pRealTimeAlarm){
delete pRealTimeAlarm;
pRealTimeAlarm = NULL;
}
}/*else if(name == "趋势分析"){
ui->tabWidget_accidentTracing->setCurrentWidget(pTrendGraph); ui->tabWidget_accidentTracing->setCurrentWidget(pTrendGraph);
} }*/
} }
void MainWindow::initLeft3() void MainWindow::initLeft3()
@ -337,6 +378,22 @@ void MainWindow::leftConfigClick3()
if(name == "机组配置"){ if(name == "机组配置"){
ui->tabWidget_Configuration->setCurrentWidget(pUnitSetting); ui->tabWidget_Configuration->setCurrentWidget(pUnitSetting);
if(pBoardSetting){
delete pBoardSetting;
pBoardSetting = NULL;
}
if(pWorkCondition){
delete pWorkCondition;
pWorkCondition = NULL;
}
if(pTriggerConfig){
delete pTriggerConfig;
pTriggerConfig = NULL;
}
if(pConfiguration){
delete pConfiguration;
pConfiguration = NULL;
}
}else if(name == "板卡配置"){ }else if(name == "板卡配置"){
if(pBoardSetting == NULL) if(pBoardSetting == NULL)
pBoardSetting = new CBoardSetting (this); pBoardSetting = new CBoardSetting (this);
@ -375,15 +432,10 @@ void MainWindow::leftConfigClick3()
delete pTriggerConfig; delete pTriggerConfig;
pTriggerConfig = NULL; pTriggerConfig = NULL;
} }
// if(pUnitConfiguration){ if(pConfiguration){
// delete pUnitConfiguration; delete pConfiguration;
// pUnitConfiguration = NULL; pConfiguration = NULL;
// } }
// if(pTestForm){
// delete pTestForm;
// pTestForm = NULL;
// }
}else if(name == "工况配置"){ }else if(name == "工况配置"){
if(pWorkCondition == NULL) if(pWorkCondition == NULL)
@ -569,8 +621,10 @@ void MainWindow::buttonClick()
if (name == "实时监测") { if (name == "实时监测") {
if(pRealTimeForm == NULL) if(pRealTimeForm == NULL)
pRealTimeForm = new CRealTimeForm (this); pRealTimeForm = new CRealTimeForm (this);
if(pDIOBoard == NULL)
pDIOBoard = new CDIO_Board (this);
ui->stackedWidget->setCurrentIndex(0); ui->stackedWidget->setCurrentIndex(0);
ui->tabWidget_main->setCurrentIndex(0);
} else if (name == "事故追溯") { } else if (name == "事故追溯") {
ui->stackedWidget->setCurrentIndex(1); ui->stackedWidget->setCurrentIndex(1);

File diff suppressed because it is too large Load Diff

View File

@ -57,7 +57,45 @@ private:
QPen pen; QPen pen;
}; };
class MyGraphicsView : public QGraphicsView
{
public:
MyGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr) : QGraphicsView(scene, parent) {}
protected:
void mousePressEvent(QMouseEvent *event) override
{
if (event->button() == Qt::LeftButton) {
QPointF scenePos = mapToScene(event->pos());
// 查找点击位置的 QGraphicsItem
QGraphicsItem *item = scene()->itemAt(scenePos, transform());
if (item) {
// 检查该项目是否是一个 QGraphicsItemGroup
QGraphicsItemGroup *group = dynamic_cast<QGraphicsItemGroup*>(item);
if (group) {
qDebug() << "QGraphicsItemGroup clicked";
// 在组内项目上改变颜色,表示被选中
for (QGraphicsItem *child : group->childItems()) {
QGraphicsRectItem *rectItem = dynamic_cast<QGraphicsRectItem*>(child);
if (rectItem) {
rectItem->setBrush(Qt::blue); // 将颜色设置为蓝色
}
}
} else {
qDebug() << "Other QGraphicsItem clicked";
}
} else {
qDebug() << "No item clicked";
}
}
// 调用基类的鼠标按下事件处理器
QGraphicsView::mousePressEvent(event);
}
};
class CRealTimeForm : public QWidget //, public MyItem2 class CRealTimeForm : public QWidget //, public MyItem2
{ {
@ -89,7 +127,7 @@ signals:
protected: protected:
void keyPressEvent(QKeyEvent *event); void keyPressEvent(QKeyEvent *event);
void mouseDoubleClickEvent(QMouseEvent* e); void mouseDoubleClickEvent(QMouseEvent* e);
//void mousePressEvent(QGraphicsSceneMouseEvent *event);
private: private:
Ui::CRealTimeForm *ui; Ui::CRealTimeForm *ui;
QGraphicsScene* m_pGraphicsScene ; QGraphicsScene* m_pGraphicsScene ;

View File

@ -1,6 +1,7 @@
#include "sqlitedb.h" #include "sqlitedb.h"
SqliteDB* g_SqliteDB = NULL; SqliteDB* g_SqliteDB = NULL;
QSqlDatabase db;
SqliteDB::SqliteDB() SqliteDB::SqliteDB()
{ {
@ -16,13 +17,23 @@ int SqliteDB::OpenDataBase()
QString path = QDir::currentPath(); QString path = QDir::currentPath();
qDebug("currentPath : %s", qPrintable(path)); qDebug("currentPath : %s", qPrintable(path));
QApplication::addLibraryPath(path); QApplication::addLibraryPath(path);
#ifdef Q_OS_WIN32
QPluginLoader loader(QString("./plugins/sqldrivers/qsqlite.dll")); QPluginLoader loader(QString("./plugins/sqldrivers/qsqlite.dll"));
#endif
#ifdef Q_OS_LINUX
QPluginLoader loader(QString("./plugins/sqldrivers/qsqlite.so"));
#endif
qDebug() << QSqlDatabase::drivers() << "\r\n"; qDebug() << QSqlDatabase::drivers() << "\r\n";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db = QSqlDatabase::addDatabase("QSQLITE");
#ifdef Q_OS_LINUX
db.setDatabaseName(QCoreApplication::applicationDirPath() + "/config/config.db");
#endif
#ifdef Q_OS_WIN32
db.setDatabaseName(QCoreApplication::applicationDirPath() + "\\config\\config.db"); db.setDatabaseName(QCoreApplication::applicationDirPath() + "\\config\\config.db");
#endif
if (!db.open()) if (!db.open())
{ {
qDebug() << "Error: Failed to connect database." << database.lastError(); qDebug() << "Error: Failed to connect database." << database.lastError();
@ -70,6 +81,7 @@ int SqliteDB::initTable()
iRet = ExeSqlData(strSql); iRet = ExeSqlData(strSql);
if(iRet == 0){ if(iRet == 0){
strSql = "ALTER TABLE t_TriggerConfig ADD COLUMN 'operate' integer DEFAULT 1"; strSql = "ALTER TABLE t_TriggerConfig ADD COLUMN 'operate' integer DEFAULT 1";
<<<<<<< HEAD
ExeSqlData(strSql); ExeSqlData(strSql);
} }
@ -78,11 +90,26 @@ int SqliteDB::initTable()
iRet = ExeSqlData(strSql); iRet = ExeSqlData(strSql);
if(iRet == 0){ if(iRet == 0){
strSql = "ALTER TABLE t_ChannelSetting ADD COLUMN 'filterStatus' integer"; strSql = "ALTER TABLE t_ChannelSetting ADD COLUMN 'filterStatus' integer";
=======
>>>>>>> font
ExeSqlData(strSql); ExeSqlData(strSql);
} }
//#ifndef NO_FILTER
strSql = QString("select count(*) from %1 where name = '%2' and sql LIKE '%%3%' ")\
.arg("sqlite_master").arg("t_ChannelSetting").arg("filterStatus");
iRet = ExeSqlData(strSql);
if(iRet == 0){
strSql = "ALTER TABLE t_ChannelSetting ADD COLUMN 'filterStatus' integer";
ExeSqlData(strSql);
}
//#endif
CreateDataBase(); CreateDataBase();
} }
int SqliteDB::CloseDataBase()
{
db.close();
}
int SqliteDB::CreateDataBase() int SqliteDB::CreateDataBase()
{ {
QString strCreateSQL = QString("create table if not exists t_UnitConfiguration(WorkConditionID,ChannelID,BoardNo,ChannelNoInBoard,Input,Operate);"); QString strCreateSQL = QString("create table if not exists t_UnitConfiguration(WorkConditionID,ChannelID,BoardNo,ChannelNoInBoard,Input,Operate);");
@ -472,7 +499,8 @@ SqliteDB::GetTriggerEvent(QString tablename,QString whereCon)
tempTriggerEvent.triggeredEquipmentID = sql_query.value(8).toInt(); tempTriggerEvent.triggeredEquipmentID = sql_query.value(8).toInt();
tempTriggerEvent.triggeredEventName = sql_query.value(9).toString(); tempTriggerEvent.triggeredEventName = sql_query.value(9).toString();
tempTriggerEvent.triggeredFeatureName = sql_query.value(10).toString(); tempTriggerEvent.triggeredFeatureName = sql_query.value(10).toString();
tempTriggerEvent.triggeredFileName = sql_query.value(11).toString();
tempTriggerEvent.triggereValue = sql_query.value(12).toString();
vecResult.append(tempTriggerEvent); vecResult.append(tempTriggerEvent);
} }
} }
@ -555,9 +583,10 @@ int SqliteDB::InsertData(QString& tablename,QString& sql)
QSqlQuery sql_query; QSqlQuery sql_query;
QString strSql = "INSERT INTO "; QString strSql = "INSERT INTO ";
strSql = strSql + tablename + sql; strSql = strSql + tablename + sql;
qDebug() << "strSql" <<strSql << endl; qDebug() << "strSql" << strSql << endl;
if(!sql_query.exec(strSql)) if(!sql_query.exec(strSql))
{ {
customLogMessageHandler(QtDebugMsg,sql_query.lastError().text());
qDebug() << sql_query.lastError(); qDebug() << sql_query.lastError();
} }
else else

View File

@ -19,6 +19,7 @@ public:
SqliteDB(); SqliteDB();
QSqlDatabase database; QSqlDatabase database;
int OpenDataBase(); int OpenDataBase();
int CloseDataBase();
int CreateDataBase(); int CreateDataBase();
int InsertData(QString& tablename,QString& sql); int InsertData(QString& tablename,QString& sql);
int UpdataData(QString& tablename, QString& columnName, QString& columnValue, QString whereColName = "", QString whereColValue = ""); int UpdataData(QString& tablename, QString& columnName, QString& columnValue, QString whereColName = "", QString whereColValue = "");