fix header include configManager
This commit is contained in:
parent
314d53ab98
commit
a2b45ca406
|
|
@ -19,6 +19,7 @@ class MonitorPanel;
|
||||||
class CornerMonitorLauncher;
|
class CornerMonitorLauncher;
|
||||||
class LoadMonitorPageDlg;
|
class LoadMonitorPageDlg;
|
||||||
class DiagramConnectSetting;
|
class DiagramConnectSetting;
|
||||||
|
class DataAccessor;
|
||||||
|
|
||||||
class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea
|
class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea
|
||||||
{
|
{
|
||||||
|
|
@ -108,6 +109,7 @@ private:
|
||||||
CornerMonitorLauncher* _cornerButton; //简略菜单呼出按钮
|
CornerMonitorLauncher* _cornerButton; //简略菜单呼出按钮
|
||||||
LoadMonitorPageDlg* _loadMonitorPageDlg;
|
LoadMonitorPageDlg* _loadMonitorPageDlg;
|
||||||
DiagramConnectSetting* _connectSetting;
|
DiagramConnectSetting* _connectSetting;
|
||||||
|
DataAccessor* _dataAccessor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
/*********中转、处理网络数据*********/
|
/*********中转、处理网络数据*********/
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QMap>
|
#include <QMap>
|
||||||
|
#include <QMutex>
|
||||||
|
|
||||||
class DataAccessor : public QObject
|
class DataAccessor : public QObject
|
||||||
{
|
{
|
||||||
|
|
@ -11,8 +12,12 @@ class DataAccessor : public QObject
|
||||||
public:
|
public:
|
||||||
DataAccessor(QObject *parent = nullptr);
|
DataAccessor(QObject *parent = nullptr);
|
||||||
~DataAccessor();
|
~DataAccessor();
|
||||||
|
public slots:
|
||||||
|
void onReceiveHttpData(const QString& sType,const QVariant& data);
|
||||||
|
void onReceiveWebsocketData(const QVariant& data);
|
||||||
private:
|
private:
|
||||||
QMap<QString,QMap<quint64,double>> _realTimeData;
|
QMap<QString,QMap<quint64,double>> _realTimeData;
|
||||||
|
mutable QMutex m_mutex;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,15 @@
|
||||||
#include "diagramConnectSetting.h"
|
#include "diagramConnectSetting.h"
|
||||||
#include "diagramCommunication/include/communicationManager.h"
|
#include "diagramCommunication/include/communicationManager.h"
|
||||||
#include "diagramCommunication/include/configManager.h"
|
#include "diagramCommunication/include/configManager.h"
|
||||||
|
#include "instance/dataAccessor.h"
|
||||||
|
#include "uiCommunicationBus.h"
|
||||||
|
|
||||||
DiagramCavas::DiagramCavas(QWidget *parent)
|
DiagramCavas::DiagramCavas(QWidget *parent)
|
||||||
: QMdiArea(parent)
|
: QMdiArea(parent)
|
||||||
,_cornerButton(nullptr)
|
,_cornerButton(nullptr)
|
||||||
,_loadMonitorPageDlg(nullptr)
|
,_loadMonitorPageDlg(nullptr)
|
||||||
,_connectSetting(nullptr)
|
,_connectSetting(nullptr)
|
||||||
|
,_dataAccessor(nullptr)
|
||||||
{
|
{
|
||||||
_pageIndex = 0;
|
_pageIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -94,6 +97,18 @@ void DiagramCavas::initial()
|
||||||
// 应用配置
|
// 应用配置
|
||||||
comm->updateHttpConfig(config->getHttpConfig());
|
comm->updateHttpConfig(config->getHttpConfig());
|
||||||
comm->updateWebSocketConfig(config->getWebSocketConfig());
|
comm->updateWebSocketConfig(config->getWebSocketConfig());
|
||||||
|
|
||||||
|
_dataAccessor = new DataAccessor(this);
|
||||||
|
connect(UiCommunicationBus::instance(),
|
||||||
|
SIGNAL(httpDataProcessed(QString,QVariant)),
|
||||||
|
_dataAccessor,
|
||||||
|
SLOT(onReceiveHttpData(QString,QVariant)),
|
||||||
|
Qt::AutoConnection);
|
||||||
|
connect(UiCommunicationBus::instance(),
|
||||||
|
SIGNAL(websocketDataProcessed(QVariant)),
|
||||||
|
_dataAccessor,
|
||||||
|
SLOT(onReceiveWebsocketData(QVariant)),
|
||||||
|
Qt::AutoConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramCavas::onSignal_addDrawingPanel(PowerEntity* pItem,DiagramMode mode,QString parent)
|
void DiagramCavas::onSignal_addDrawingPanel(PowerEntity* pItem,DiagramMode mode,QString parent)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
#include "instance/dataAccessor.h"
|
#include "instance/dataAccessor.h"
|
||||||
|
#include <QVariant>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QJsonArray>
|
||||||
|
|
||||||
DataAccessor::DataAccessor(QObject* parent)
|
DataAccessor::DataAccessor(QObject* parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
|
|
@ -10,3 +13,55 @@ DataAccessor::~DataAccessor()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DataAccessor::onReceiveHttpData(const QString& sType,const QVariant& data)
|
||||||
|
{
|
||||||
|
if(sType == "subscriptions"){
|
||||||
|
QJsonObject dataObj = data.toJsonObject();
|
||||||
|
QString sClientId = dataObj.value("client_id").toString();
|
||||||
|
|
||||||
|
QMap<QString,QString> lstRequest;
|
||||||
|
QJsonArray measureArr = dataObj.value("measurements").toArray();
|
||||||
|
for(const QJsonValue& value : measureArr){
|
||||||
|
QJsonObject obj = value.toObject();
|
||||||
|
QString sId = obj["id"].toString();
|
||||||
|
QString sCode = obj["code"].toString();
|
||||||
|
|
||||||
|
if(sId == "1001"){
|
||||||
|
if(!lstRequest.contains(sId)){
|
||||||
|
lstRequest.insert(sId,sCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*QString input = dataObj.value("input").toString();
|
||||||
|
int offSet = dataObj.value("offset").toInt();
|
||||||
|
QJsonArray recommendedList = dataObj.value("recommended_list").toArray();
|
||||||
|
for(const QJsonValue& value : recommendedList){
|
||||||
|
QString content = value.toString();
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataAccessor::onReceiveWebsocketData(const QVariant& data)
|
||||||
|
{
|
||||||
|
QJsonObject dataObj = data.toJsonObject();
|
||||||
|
if(dataObj.contains("targets")){
|
||||||
|
QJsonArray arrTarget = dataObj.value("targets").toArray();
|
||||||
|
for (const QJsonValue& value : arrTarget) {
|
||||||
|
QJsonObject targetObj = value.toObject();
|
||||||
|
QString targetId = targetObj["id"].toString();
|
||||||
|
QJsonArray arrData = targetObj["datas"].toArray();
|
||||||
|
for (const QJsonValue& data : arrData){
|
||||||
|
QJsonObject dataObj = data.toObject();
|
||||||
|
QString sTime = dataObj["time"].toString();
|
||||||
|
bool ok = false;
|
||||||
|
quint64 value = sTime.toULongLong(&ok);
|
||||||
|
if (ok) {
|
||||||
|
// 使用 value
|
||||||
|
}
|
||||||
|
double dVal = dataObj["value"].toDouble();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
QMutexLocker locker(&m_mutex);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
project(diagramCommunication)
|
||||||
|
|
||||||
|
set(DIAGRACOMMUNICATION_HEADER_FILES
|
||||||
|
include/channelConfig.h
|
||||||
|
include/baseChannel.h
|
||||||
|
include/communicationManager.h
|
||||||
|
include/httpChannel.h
|
||||||
|
include/webSocketChannel.h
|
||||||
|
include/configManager.h
|
||||||
|
include/uiCommunicationBus.h
|
||||||
|
include/dataProcessor.h
|
||||||
|
../common/include/compiler.hpp
|
||||||
|
../common/include/export.hpp
|
||||||
|
../common/include/operatingSystem.hpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DIAGRACOMMUNICATION_SOURCE_FILES
|
||||||
|
source/communicationManager.cpp
|
||||||
|
source/baseChannel.cpp
|
||||||
|
source/webSocketChannel.cpp
|
||||||
|
source/httpChannel.cpp
|
||||||
|
source/configManager.cpp
|
||||||
|
source/uiCommunicationBus.cpp
|
||||||
|
source/dataProcessor.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||||
|
qt_add_library(diagramCommunication SHARED
|
||||||
|
MANUAL_FINALIZATION
|
||||||
|
${DIAGRACOMMUNICATION_HEADER_FILES}
|
||||||
|
${DIAGRACOMMUNICATION_SOURCE_FILES}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
add_library(diagramCommunication SHARED
|
||||||
|
${DIAGRACOMMUNICATION_HEADER_FILES}
|
||||||
|
${DIAGRACOMMUNICATION_SOURCE_FILES}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(diagramCommunication PUBLIC Qt${QT_VERSION_MAJOR}::Core)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::Xml)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::Network)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::WebSockets)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::Sql ${PostgreSQL_LIBRARIES})
|
||||||
|
|
||||||
|
option(BUILD_SHARED_LIBS "Build as shared library" ON)
|
||||||
|
|
||||||
|
|
||||||
|
target_include_directories(diagramCommunication PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
|
|
||||||
|
target_compile_definitions(diagramCommunication
|
||||||
|
PUBLIC
|
||||||
|
DIAGRAM_DESIGNER_SHARED
|
||||||
|
PRIVATE
|
||||||
|
DIAGRAM_DESIGNER_EXPORTS
|
||||||
|
#QT_NO_KEYWORDS
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
project(diagramCommunication)
|
||||||
|
|
||||||
|
set(DIAGRACOMMUNICATION_HEADER_FILES
|
||||||
|
include/channelConfig.h
|
||||||
|
include/baseChannel.h
|
||||||
|
include/communicationManager.h
|
||||||
|
include/httpChannel.h
|
||||||
|
include/webSocketChannel.h
|
||||||
|
include/configManager.h
|
||||||
|
include/uiCommunicationBus.h
|
||||||
|
include/dataProcessor.h
|
||||||
|
../common/include/compiler.hpp
|
||||||
|
../common/include/export.hpp
|
||||||
|
../common/include/operatingSystem.hpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DIAGRACOMMUNICATION_SOURCE_FILES
|
||||||
|
source/communicationManager.cpp
|
||||||
|
source/baseChannel.cpp
|
||||||
|
source/webSocketChannel.cpp
|
||||||
|
source/httpChannel.cpp
|
||||||
|
source/configManager.cpp
|
||||||
|
source/uiCommunicationBus.cpp
|
||||||
|
source/dataProcessor.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||||
|
qt_add_library(diagramCommunication SHARED
|
||||||
|
MANUAL_FINALIZATION
|
||||||
|
${DIAGRACOMMUNICATION_HEADER_FILES}
|
||||||
|
${DIAGRACOMMUNICATION_SOURCE_FILES}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
add_library(diagramCommunication SHARED
|
||||||
|
${DIAGRACOMMUNICATION_HEADER_FILES}
|
||||||
|
${DIAGRACOMMUNICATION_SOURCE_FILES}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(diagramCommunication PUBLIC Qt${QT_VERSION_MAJOR}::Core)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::Xml)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::Network)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::WebSockets)
|
||||||
|
target_link_libraries(diagramCommunication PRIVATE Qt6::Sql ${PostgreSQL_LIBRARIES})
|
||||||
|
|
||||||
|
option(BUILD_SHARED_LIBS "Build as shared library" ON)
|
||||||
|
|
||||||
|
|
||||||
|
target_include_directories(diagramCommunication PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
|
|
||||||
|
target_compile_definitions(diagramCommunication
|
||||||
|
PUBLIC
|
||||||
|
DIAGRAM_DESIGNER_SHARED
|
||||||
|
PRIVATE
|
||||||
|
DIAGRAM_DESIGNER_EXPORTS
|
||||||
|
#QT_NO_KEYWORDS
|
||||||
|
)
|
||||||
|
|
@ -17,6 +17,7 @@ struct DIAGRAM_DESIGNER_PUBLIC ChannelConfig {
|
||||||
int timeout = 30000; // 超时时间(ms)
|
int timeout = 30000; // 超时时间(ms)
|
||||||
bool enabled = true; // 是否启用
|
bool enabled = true; // 是否启用
|
||||||
bool autoConnect = false; // 是否自动连接
|
bool autoConnect = false; // 是否自动连接
|
||||||
|
QVariantMap headers; //头
|
||||||
|
|
||||||
// 认证
|
// 认证
|
||||||
QString username;
|
QString username;
|
||||||
|
|
@ -27,9 +28,6 @@ struct DIAGRAM_DESIGNER_PUBLIC ChannelConfig {
|
||||||
QDateTime lastConnectTime;
|
QDateTime lastConnectTime;
|
||||||
int errorCount = 0;
|
int errorCount = 0;
|
||||||
|
|
||||||
// HTTP特有
|
|
||||||
QVariantMap headers; // HTTP头
|
|
||||||
|
|
||||||
// WebSocket特有
|
// WebSocket特有
|
||||||
int heartbeatInterval = 30000; // 心跳间隔
|
int heartbeatInterval = 30000; // 心跳间隔
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,12 +60,7 @@ void DataProcessor::processJson( const QVariant& data,int conType)
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
else if(dataObj.contains("input")){
|
else if(dataObj.contains("input")){
|
||||||
/*QString input = dataObj.value("input").toString();
|
|
||||||
int offSet = dataObj.value("offset").toInt();
|
|
||||||
QJsonArray recommendedList = dataObj.value("recommended_list").toArray();
|
|
||||||
for(const QJsonValue& value : recommendedList){
|
|
||||||
QString content = value.toString();
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
//QMutexLocker locker(&m_mutex);
|
//QMutexLocker locker(&m_mutex);
|
||||||
//m_dataCache[dataType] = data;
|
//m_dataCache[dataType] = data;
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ void UiCommunicationBus::broadcastToUis(const QString& action, const QVariant& d
|
||||||
for (auto it = m_uiObjects.begin(); it != m_uiObjects.end(); ++it) {
|
for (auto it = m_uiObjects.begin(); it != m_uiObjects.end(); ++it) {
|
||||||
QObject* uiObject = it.value();
|
QObject* uiObject = it.value();
|
||||||
|
|
||||||
QMetaObject::invokeMethod(uiObject, "onMessage",
|
QMetaObject::invokeMethod(uiObject, "onReceiveHttpData",
|
||||||
Q_ARG(QString, action),
|
Q_ARG(QString, action),
|
||||||
Q_ARG(QVariant, data));
|
Q_ARG(QVariant, data));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue