优化提交接口,适配redhat 8.0

This commit is contained in:
zhangsheng 2024-09-11 16:37:00 +08:00
parent a630c5a85b
commit c39c730211
69 changed files with 2569 additions and 834 deletions

View File

@ -1,5 +1,5 @@
#include "Backup.h" #include "Backup.h"
#include "ui_BackUp.h" #include "ui_Backup.h"
#include <QFileDialog> #include <QFileDialog>
#include <QProcess> #include <QProcess>

View File

@ -33,7 +33,13 @@ CBoardSetting::~CBoardSetting()
void CBoardSetting::initReadConfig() void CBoardSetting::initReadConfig()
{ {
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json"; 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);
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json"; 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);
#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 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);
#ifdef Q_OS_WIN32
QString fileNameUnit = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json"; 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"; QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameUnit2 = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations2.json";
#endif
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"; 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++) {
@ -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"; QString fileNameTri2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json";
#endif
#ifdef Q_OS_LINUX
QString fileNameTri2 = QCoreApplication::applicationDirPath() + "/config/TriggerSettings2.json";
#endif
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);
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitBoardsInfo.json"; 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);
#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 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,14 @@ 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,"初始化机组板卡配置信息推送完成!");
#ifndef NO_FILTER
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);
#endif
putJson(); putJson();
} }
@ -1065,7 +1134,13 @@ void CBoardSetting::putJson()
} }
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setArray(channelArray); jsonDoc.setArray(channelArray);
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\ChannelSettings.json"; 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

@ -174,6 +174,7 @@ 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&)));
#ifndef NO_FILTER
QJsonObject sendData; QJsonObject sendData;
sendData["cmd"] = "97"; sendData["cmd"] = "97";
QJsonArray chan_list; QJsonArray chan_list;
@ -186,6 +187,7 @@ 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);
#endif
} }
void CChannelList::createItem(QStringList filename) void CChannelList::createItem(QStringList filename)
@ -478,7 +480,13 @@ void CChannelList::putJson()
} }
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setArray(channelArray); jsonDoc.setArray(channelArray);
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\ChannelSettings.json"; 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());
@ -639,7 +647,8 @@ void CChannelList::on_pushButton_open_clicked()
} }
} }
putJson(); putJson();
}else if(ui->comboBox_operate->currentText() == "带通滤波"){ }else if(ui->comboBox_operate->currentText() == "带通滤波")
{
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);
@ -703,6 +712,7 @@ 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&)));
#ifndef NO_FILTER
QJsonObject sendData; QJsonObject sendData;
sendData["cmd"] = "97"; sendData["cmd"] = "97";
QJsonArray chan_list; QJsonArray chan_list;
@ -714,6 +724,9 @@ 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);
#else
initReadConfig();
#endif
#ifdef QT_DEBUG #ifdef QT_DEBUG
initReadConfig(); initReadConfig();
#endif #endif

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"

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 << "转速" << "径向振动位移" << "轴向位移" << "加速度" << "速度" << "动态电压";
@ -607,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");
@ -662,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 == "轴向位移"){
@ -691,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");
@ -755,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',\
@ -775,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).\
@ -795,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);
@ -808,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();
} }
@ -828,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");
} }
} }
@ -845,10 +850,7 @@ void CChannelSetting::on_pushButton_CustomFilter_clicked()
CustomFilter *pCustomFilter = new CustomFilter(); CustomFilter *pCustomFilter = new CustomFilter();
pCustomFilter->channel_ID = channelSetting.channelId; pCustomFilter->channel_ID = channelSetting.channelId;
if(ui->channelTypeCombox->currentText()=="径向振动位移")
pCustomFilter->vibrate_channel = 1; pCustomFilter->vibrate_channel = 1;
else
pCustomFilter->vibrate_channel = 0;
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;

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); //选中行

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

@ -87,8 +87,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"; QString name = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
QFile loadFile(name); QFile loadFile(name);
if(!loadFile.open(QIODevice::ReadOnly)) if(!loadFile.open(QIODevice::ReadOnly))
{ {
@ -191,7 +196,13 @@ void CConfiguration::Init()
void CConfiguration::LoadConfiguration() void CConfiguration::LoadConfiguration()
{ {
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json"; 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))
{ {
@ -738,6 +749,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 + "-" + "高于警报值"));
@ -797,11 +812,23 @@ void CConfiguration::PushData()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(WorkConditionConfiguraitonsObj); jsonDoc.setObject(WorkConditionConfiguraitonsObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json"; 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);
#ifdef Q_OS_WIN32
QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json"; 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);

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

@ -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>

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.
@ -33,7 +32,6 @@ SOURCES += \
CharacteristicList.cpp \ CharacteristicList.cpp \
Configuration.cpp \ Configuration.cpp \
CopyChannelSetting.cpp \ CopyChannelSetting.cpp \
CopyDatFile.cpp \
CustomFilter.cpp \ CustomFilter.cpp \
DIO_Board.cpp \ DIO_Board.cpp \
DataGraphView.cpp \ DataGraphView.cpp \
@ -86,7 +84,6 @@ HEADERS += \
CharacteristicList.h \ CharacteristicList.h \
Configuration.h \ Configuration.h \
CopyChannelSetting.h \ CopyChannelSetting.h \
CopyDatFile.h \
CustomFilter.h \ CustomFilter.h \
DIO_Board.h \ DIO_Board.h \
DataGraphView.h \ DataGraphView.h \
@ -182,9 +179,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");
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json"; 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"; fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
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"; fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/TcpConfig.json";
#endif
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"; fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ModbusConfig.json";
#endif
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);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json"; 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);
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json"; 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);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json"; 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);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json"; 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

@ -13,22 +13,19 @@ CHistoryAlarm::CHistoryAlarm(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("/");
#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
customLogMessageHandler(QtDebugMsg,"HistoryAlarm:" + strPath); customLogMessageHandler(QtDebugMsg,"HistoryAlarm:" + strPath);
QFile file(strPath); QFile file(strPath);
g_LocalFile = strPath; g_LocalFile = strPath;
@ -540,3 +603,39 @@ 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;
}
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();
QString 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]);
g_SqliteDB->DeleteDataW(strTableNameAlarm,strWhere1);
g_SqliteDB->DeleteDataW(strTableNameTriger,strWhere2);
}
}
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>

View File

@ -31,7 +31,13 @@ void CImportConfig::on_pushButton_confirm_clicked()
QMessageBox::warning(this,tr("提示"),tr("请选择导入文件路径!")); QMessageBox::warning(this,tr("提示"),tr("请选择导入文件路径!"));
return; return;
} }
#ifdef Q_OS_WIN32
QString copy_path = QCoreApplication::applicationDirPath() + "\\config\\copy\\"; QString copy_path = QCoreApplication::applicationDirPath() + "\\config\\copy\\";
#endif
#ifdef Q_OS_LINUX
QString copy_path = QCoreApplication::applicationDirPath() + "/config/copy/";
#endif
QDir copyDir(copy_path); QDir copyDir(copy_path);
// 创建目标文件夹 // 创建目标文件夹
@ -75,7 +81,7 @@ void CImportConfig::on_pushButton_confirm_clicked()
ExeSqlData(strSql); ExeSqlData(strSql);
strSql = QString("update t_ChannelSetting SET speedRefChannelId = '%1' || SUBSTR(channelId, 13) where speedRefChannelId <> '' AND pairChannelId <> 'NONE';").arg(MAC); strSql = QString("update t_ChannelSetting SET speedRefChannelId = '%1' || SUBSTR(channelId, 13) where speedRefChannelId <> '' AND pairChannelId <> 'NONE';").arg(MAC);
ExeSqlData(strSql); ExeSqlData(strSql);
strSql = QString("update t_DeviceInfo SET MAC = '%1' ;").arg(MAC); strSql = QString("update t_DeviceInfo SET MAC = '%1',IP = '%2' ;").arg(MAC).arg(IP);
ExeSqlData(strSql); ExeSqlData(strSql);
strSql = QString("update t_TriggerConfig SET ChannelID = '%1' || SUBSTR(ChannelID, 13) ;").arg(MAC); strSql = QString("update t_TriggerConfig SET ChannelID = '%1' || SUBSTR(ChannelID, 13) ;").arg(MAC);
ExeSqlData(strSql); ExeSqlData(strSql);
@ -139,22 +145,27 @@ void CImportConfig::on_pushButton_confirm_clicked()
fileTriggerSettings.close(); fileTriggerSettings.close();
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitWorkConditionsInfo.json", copy_path + "UnitWorkConditionsInfo.json"); // copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitWorkConditionsInfo.json", copy_path + "UnitWorkConditionsInfo.json");
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "UnitParameters.json", copy_path + "UnitParameters.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\\" + "ServerConfig.json", copy_path + "ServerConfig.json");
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "NetWorkConfig.json", copy_path + "NetWorkConfig.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\\" + "ModbusConfig.json", copy_path + "ModbusConfig.json");
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "TcpConfig.json", copy_path + "TcpConfig.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\\" + "UnitBoardsInfo.json", copy_path + "UnitBoardsInfo.json");
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "ZeroDrift.json", copy_path + "ZeroDrift.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\\" + "UnitBoardsInfo.json", copy_path + "UnitBoardsInfo.json");
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "ConfidenceDegree.json", copy_path + "ConfidenceDegree.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\\" + "TriggerConfig.json", copy_path + "TriggerConfig.json");
copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "config.ini", copy_path + "config.ini"); // copyFile(QCoreApplication::applicationDirPath() + "\\config\\" + "config.ini", copy_path + "config.ini");
qApp->exit(0);
g_SqliteDB->CloseDataBase(); g_SqliteDB->CloseDataBase();
#ifdef Q_OS_WIN32
copyDirectory(copy_path, QCoreApplication::applicationDirPath() + "\\config\\"); copyDirectory(copy_path, QCoreApplication::applicationDirPath() + "\\config\\");
#endif
#ifdef Q_OS_LINUX
copyDirectory(copy_path, QCoreApplication::applicationDirPath() + "/config/");
#endif
QMessageBox::information(this,tr("导入"),tr("导入成功")); QMessageBox::information(this,tr("导入"),tr("导入成功"));
// 如果目标文件夹已存在,则删除它 // 如果目标文件夹已存在,则删除它
QDir copyDir2(copy_path); QDir copyDir2(copy_path);
@ -162,6 +173,86 @@ void CImportConfig::on_pushButton_confirm_clicked()
copyDir2.removeRecursively(); 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()); QProcess::startDetached(qApp->applicationFilePath(), QStringList());
} }
@ -220,7 +311,7 @@ bool CImportConfig::copyDirectory(const QString &sourceDir, const QString &desti
QString fileName = fileInfo.fileName(); QString fileName = fileInfo.fileName();
QString srcFilePath = srcDir.absoluteFilePath(fileName); QString srcFilePath = srcDir.absoluteFilePath(fileName);
QString destFilePath = destDir.absoluteFilePath(fileName); QString destFilePath = destDir.absoluteFilePath(fileName);
//qDebug() << "srcFilePath" << srcFilePath << destFilePath <<endl;
if (fileInfo.isDir()) { if (fileInfo.isDir()) {
// 递归复制子文件夹 // 递归复制子文件夹
if (!copyDirectory(srcFilePath, destFilePath)) { if (!copyDirectory(srcFilePath, destFilePath)) {

View File

@ -6,6 +6,7 @@
#include <QSqlQuery> #include <QSqlQuery>
#include <QSqlError> #include <QSqlError>
#include "global.h" #include "global.h"
#include "ftpclient.h"
namespace Ui { namespace Ui {
class CImportConfig; class CImportConfig;
} }

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()
{ {
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json"; 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);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json"; 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);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json"; 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

@ -29,7 +29,13 @@ COtherConfig::~COtherConfig()
void COtherConfig::LoadWorkingConditionConfig() void COtherConfig::LoadWorkingConditionConfig()
{ {
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json"; 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 +62,13 @@ void COtherConfig::LoadWorkingConditionConfig()
} }
} }
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ConfidenceDegree.json"; 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,7 +93,13 @@ void COtherConfig::LoadWorkingConditionConfig()
} }
//读取ini //读取ini
#ifdef Q_OS_WIN32
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat); 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_strVersion = settingsread.value("main/Version").toString();
g_strProject = settingsread.value("main/Project").toString(); g_strProject = settingsread.value("main/Project").toString();
@ -97,14 +115,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("");
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ZeroDrift.json"; 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 +192,13 @@ void COtherConfig::on_pushButto_Trigger_clicked()
return; return;
} }
m_strTriggerTime = str; m_strTriggerTime = str;
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json"; 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 +226,13 @@ void COtherConfig::on_pushButto_Trigger_clicked()
} }
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setObject(jsonObject); jsonDoc.setObject(jsonObject);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerConfig.json"; 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 +276,13 @@ inline QString UTF82GBK(QByteArray &inStr)
void COtherConfig::on_pushButton_main_clicked() void COtherConfig::on_pushButton_main_clicked()
{ {
#ifdef Q_OS_WIN32
QSettings *settings = new QSettings(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat); 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 +353,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);
#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
QFile file(fileName); QFile file(fileName);
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson()); file.write(jsonDoc.toJson());
@ -335,7 +383,13 @@ void COtherConfig::on_radioButton_open_clicked()
void COtherConfig::on_radioButton_close_clicked() void COtherConfig::on_radioButton_close_clicked()
{ {
#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
if(!fileName.isEmpty()) if(!fileName.isEmpty())
{ {
qDebug() << "打开" << fileName ; qDebug() << "打开" << fileName ;
@ -357,7 +411,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();

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

@ -241,10 +241,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 +261,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 +281,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,7 +292,7 @@ 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();

View File

@ -29,7 +29,7 @@ private slots:
void on_pushButton_copy_clicked(); void on_pushButton_copy_clicked();
public slots: public slots:
void slotSetChannelData(QStringList&); void slotCopyChannelData(QStringList&);
private: private:
Ui::CSlowSpeedChannelSetting *ui; Ui::CSlowSpeedChannelSetting *ui;

View File

@ -3,7 +3,7 @@
#include "NetMgr.h" #include "NetMgr.h"
#include <QNetworkRequest> #include <QNetworkRequest>
#include "ftpclient.h" #include "ftpclient.h"
#include "CopyDatFile.h" //#include "CopyDatFile.h"
#include "Backup.h" #include "Backup.h"
#include "ImportConfig.h" #include "ImportConfig.h"
@ -301,10 +301,10 @@ void CTerminalInfo::on_pushButton_Update_clicked()
void CTerminalInfo::on_pushButtonCopy_clicked() void CTerminalInfo::on_pushButtonCopy_clicked()
{ {
CCopyDatFile *copyDatDialog = new CCopyDatFile(); // CCopyDatFile *copyDatDialog = new CCopyDatFile();
copyDatDialog->setWindowModality(Qt::ApplicationModal); // copyDatDialog->setWindowModality(Qt::ApplicationModal);
copyDatDialog->setAttribute(Qt::WA_DeleteOnClose); // copyDatDialog->setAttribute(Qt::WA_DeleteOnClose);
copyDatDialog->show(); // copyDatDialog->show();
} }
void CTerminalInfo::on_pushButton_export_clicked() void CTerminalInfo::on_pushButton_export_clicked()

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,13 +516,13 @@
<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>
@ -610,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

@ -275,7 +275,7 @@ 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(4,1,QModelIndex()),"反时限");
model->setData(model->index(5,1,QModelIndex()),"反时限危险值"); model->setData(model->index(5,1,QModelIndex()),"反时限危险值");
} }
@ -300,7 +300,7 @@ 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(4,1,QModelIndex()),"反时限");
model->setData(model->index(5,1,QModelIndex()),"反时限危险值"); model->setData(model->index(5,1,QModelIndex()),"反时限危险值");
} }
@ -339,7 +339,7 @@ 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(4,1,QModelIndex()),"反时限");
model->setData(model->index(5,1,QModelIndex()),"反时限危险值"); model->setData(model->index(5,1,QModelIndex()),"反时限危险值");
} }
@ -377,7 +377,7 @@ 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(3,1,QModelIndex()),"反时限");
model->setData(model->index(4,1,QModelIndex()),"反时限危险值"); model->setData(model->index(4,1,QModelIndex()),"反时限危险值");
} }
@ -675,7 +675,7 @@ void CTriggerConfig::PushData()
rowObj["triggerFeatureName"] = "MonitorPk2Pk"; rowObj["triggerFeatureName"] = "MonitorPk2Pk";
else if(triggerConfig[j].Characteristic == "反时限危险值") else if(triggerConfig[j].Characteristic == "反时限危险值")
rowObj["triggerFeatureName"] = "InvertDanger"; rowObj["triggerFeatureName"] = "InvertDanger";
else if(triggerConfig[j].Characteristic == "反时限警值") else if(triggerConfig[j].Characteristic == "反时限")
rowObj["triggerFeatureName"] = "InvertAlarm"; rowObj["triggerFeatureName"] = "InvertAlarm";
@ -714,7 +714,13 @@ void CTriggerConfig::PushData()
QJsonDocument jsonDoc; QJsonDocument jsonDoc;
jsonDoc.setArray(m_channeltriggerArray); jsonDoc.setArray(m_channeltriggerArray);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json"; 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);
@ -759,7 +765,7 @@ void CTriggerConfig::PushData()
rowObj["triggerFeatureName"] = "MonitorPk2Pk"; rowObj["triggerFeatureName"] = "MonitorPk2Pk";
else if(triggerConfig[j].Characteristic == "反时限危险值") else if(triggerConfig[j].Characteristic == "反时限危险值")
rowObj["triggerFeatureName"] = "InvertDanger"; rowObj["triggerFeatureName"] = "InvertDanger";
else if(triggerConfig[j].Characteristic == "反时限警值") else if(triggerConfig[j].Characteristic == "反时限")
rowObj["triggerFeatureName"] = "InvertAlarm"; rowObj["triggerFeatureName"] = "InvertAlarm";
@ -800,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()
@ -291,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);
@ -303,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();
@ -444,6 +469,7 @@ void CWaveDisPlay::mouseMoveEvent(QMouseEvent *event)
tracer->setVisible(true); tracer->setVisible(true);
tracerLabel->setVisible(true); tracerLabel->setVisible(true);
if(ui->Btn_Timewave->isChecked()){
//将像素点转换成qcustomplot中的坐标值并通过setGraphKey将锚点值设为真实数据值。tracer->setGraphKey(xAxis->pixelToCoord(event->pos().x())); //将像素点转换成qcustomplot中的坐标值并通过setGraphKey将锚点值设为真实数据值。tracer->setGraphKey(xAxis->pixelToCoord(event->pos().x()));
int graphCount = ui->widget_wave->graphCount(); int graphCount = ui->widget_wave->graphCount();
if(graphCount < 1) if(graphCount < 1)
@ -465,7 +491,36 @@ void CWaveDisPlay::mouseMoveEvent(QMouseEvent *event)
//显示tip框 //显示tip框
QCPDataContainer<QCPGraphData>::const_iterator coorPoint = ui->widget_wave->graph(0)->data().data()->findBegin(xValue, true);//true代表向左搜索 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

@ -0,0 +1,535 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CWokingConditionConfig</class>
<widget class="QWidget" name="CWokingConditionConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>845</width>
<height>678</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</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">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>393</width>
<height>9</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_5">
<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>393</width>
<height>9</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QWidget" name="widget_3" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget_5" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>80</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>工况名称:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_workContion"/>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>工况参数选择:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_unitType">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_6" native="true">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QTableView" name="tableView">
<property name="dragDropMode">
<enum>QAbstractItemView::DragDrop</enum>
</property>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_7" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>200</height>
</size>
</property>
<widget class="QPushButton" name="pushButton_save">
<property name="geometry">
<rect>
<x>300</x>
<y>130</y>
<width>120</width>
<height>35</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_save { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_save:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_save:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_save:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>保存</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_addUnit">
<property name="geometry">
<rect>
<x>40</x>
<y>130</y>
<width>120</width>
<height>35</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_addUnit { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_addUnit:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_addUnit:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_addUnit:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>添加</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_del">
<property name="geometry">
<rect>
<x>170</x>
<y>130</y>
<width>120</width>
<height>35</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_del { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_del:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_del:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_del:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>删除</string>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>21</x>
<y>51</y>
<width>364</width>
<height>52</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>描述:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="textEdit_Description">
<property name="minimumSize">
<size>
<width>100</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>21</x>
<y>10</y>
<width>284</width>
<height>22</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>工况判定间隔时间:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_Interval"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_4" native="true">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QWidget" name="widget_8" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="topMargin">
<number>20</number>
</property>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Relay Logic Editor</string>
</property>
</widget>
</item>
<item>
<widget class="QTreeView" name="treeView">
<property name="dragDropMode">
<enum>QAbstractItemView::DragDrop</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_9" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>125</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>27</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="pushButton_and">
<property name="minimumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_and { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_and:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_and:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_and:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>添加AND</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>
<item>
<widget class="QPushButton" name="pushButton_or">
<property name="minimumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>35</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">#pushButton_or { border-image: url(:/image/Btn/normal_Btn.png);
color:#1f5188 }
#pushButton_or:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_or:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}
#pushButton_or:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
color:#ffffff}</string>
</property>
<property name="text">
<string>添加OR</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>27</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

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

@ -17,6 +17,8 @@ extern QString g_strVersion ;
extern QString g_strProject ; extern QString g_strProject ;
extern QString g_strFre ; extern QString g_strFre ;
//#define NO_FILTER
typedef struct ChannelSetting{ typedef struct ChannelSetting{
double ChUnitCoeff; double ChUnitCoeff;
int ChUnitDot; int ChUnitDot;

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

View File

@ -20,7 +20,13 @@ MainWindow::MainWindow(QWidget *parent) :
g_FtpClient = new FtpClient(); g_FtpClient = new FtpClient();
//读取ini //读取ini
#ifdef Q_OS_WIN32
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat); QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini",QSettings::IniFormat);
#endif
#ifdef Q_OS_LINUX
QSettings settingsread(QCoreApplication::applicationDirPath() + "/config/config.ini",QSettings::IniFormat);
#endif
g_strVersion = "SJ90C V1.1"; g_strVersion = "SJ90C V1.1";
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();
@ -300,12 +306,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);
}else if(name == "历史报警"){ if(pHistoryAlarm){
ui->tabWidget_accidentTracing->setCurrentWidget(pHistoryAlarm); delete pHistoryAlarm;
}else if(name == "趋势分析"){ pHistoryAlarm = NULL;
ui->tabWidget_accidentTracing->setCurrentWidget(pTrendGraph);
} }
}else if(name == "历史报警"){
if(pHistoryAlarm == NULL)
pHistoryAlarm = new CHistoryAlarm (this);
ui->tabWidget_accidentTracing->addTab(pHistoryAlarm,"");
ui->tabWidget_accidentTracing->setCurrentWidget(pHistoryAlarm);
if(pRealTimeAlarm){
delete pRealTimeAlarm;
pRealTimeAlarm = NULL;
}
}/*else if(name == "趋势分析"){
ui->tabWidget_accidentTracing->setCurrentWidget(pTrendGraph);
}*/
} }
void MainWindow::initLeft3() void MainWindow::initLeft3()
@ -337,6 +357,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,6 +411,10 @@ void MainWindow::leftConfigClick3()
delete pTriggerConfig; delete pTriggerConfig;
pTriggerConfig = NULL; pTriggerConfig = NULL;
} }
if(pConfiguration){
delete pConfiguration;
pConfiguration = NULL;
}
}else if(name == "工况配置"){ }else if(name == "工况配置"){
if(pWorkCondition == NULL) if(pWorkCondition == NULL)

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

@ -17,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";
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();
@ -73,7 +83,7 @@ int SqliteDB::initTable()
strSql = "ALTER TABLE t_TriggerConfig ADD COLUMN 'operate' integer DEFAULT 1"; strSql = "ALTER TABLE t_TriggerConfig ADD COLUMN 'operate' integer DEFAULT 1";
ExeSqlData(strSql); ExeSqlData(strSql);
} }
//#ifndef NO_FILTER
strSql = QString("select count(*) from %1 where name = '%2' and sql LIKE '%%3%' ")\ strSql = QString("select count(*) from %1 where name = '%2' and sql LIKE '%%3%' ")\
.arg("sqlite_master").arg("t_ChannelSetting").arg("filterStatus"); .arg("sqlite_master").arg("t_ChannelSetting").arg("filterStatus");
iRet = ExeSqlData(strSql); iRet = ExeSqlData(strSql);
@ -81,6 +91,7 @@ int SqliteDB::initTable()
strSql = "ALTER TABLE t_ChannelSetting ADD COLUMN 'filterStatus' integer"; strSql = "ALTER TABLE t_ChannelSetting ADD COLUMN 'filterStatus' integer";
ExeSqlData(strSql); ExeSqlData(strSql);
} }
//#endif
CreateDataBase(); CreateDataBase();
} }