fix header include configManager
This commit is contained in:
parent
314d53ab98
commit
a2b45ca406
|
|
@ -19,6 +19,7 @@ class MonitorPanel;
|
|||
class CornerMonitorLauncher;
|
||||
class LoadMonitorPageDlg;
|
||||
class DiagramConnectSetting;
|
||||
class DataAccessor;
|
||||
|
||||
class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea
|
||||
{
|
||||
|
|
@ -108,6 +109,7 @@ private:
|
|||
CornerMonitorLauncher* _cornerButton; //简略菜单呼出按钮
|
||||
LoadMonitorPageDlg* _loadMonitorPageDlg;
|
||||
DiagramConnectSetting* _connectSetting;
|
||||
DataAccessor* _dataAccessor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
/*********中转、处理网络数据*********/
|
||||
#include <QObject>
|
||||
#include <QMap>
|
||||
#include <QMutex>
|
||||
|
||||
class DataAccessor : public QObject
|
||||
{
|
||||
|
|
@ -11,8 +12,12 @@ class DataAccessor : public QObject
|
|||
public:
|
||||
DataAccessor(QObject *parent = nullptr);
|
||||
~DataAccessor();
|
||||
public slots:
|
||||
void onReceiveHttpData(const QString& sType,const QVariant& data);
|
||||
void onReceiveWebsocketData(const QVariant& data);
|
||||
private:
|
||||
QMap<QString,QMap<quint64,double>> _realTimeData;
|
||||
mutable QMutex m_mutex;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -21,12 +21,15 @@
|
|||
#include "diagramConnectSetting.h"
|
||||
#include "diagramCommunication/include/communicationManager.h"
|
||||
#include "diagramCommunication/include/configManager.h"
|
||||
#include "instance/dataAccessor.h"
|
||||
#include "uiCommunicationBus.h"
|
||||
|
||||
DiagramCavas::DiagramCavas(QWidget *parent)
|
||||
: QMdiArea(parent)
|
||||
,_cornerButton(nullptr)
|
||||
,_loadMonitorPageDlg(nullptr)
|
||||
,_connectSetting(nullptr)
|
||||
,_dataAccessor(nullptr)
|
||||
{
|
||||
_pageIndex = 0;
|
||||
}
|
||||
|
|
@ -94,6 +97,18 @@ void DiagramCavas::initial()
|
|||
// 应用配置
|
||||
comm->updateHttpConfig(config->getHttpConfig());
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#include "instance/dataAccessor.h"
|
||||
#include <QVariant>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
|
||||
DataAccessor::DataAccessor(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)
|
||||
bool enabled = true; // 是否启用
|
||||
bool autoConnect = false; // 是否自动连接
|
||||
QVariantMap headers; //头
|
||||
|
||||
// 认证
|
||||
QString username;
|
||||
|
|
@ -27,9 +28,6 @@ struct DIAGRAM_DESIGNER_PUBLIC ChannelConfig {
|
|||
QDateTime lastConnectTime;
|
||||
int errorCount = 0;
|
||||
|
||||
// HTTP特有
|
||||
QVariantMap headers; // HTTP头
|
||||
|
||||
// WebSocket特有
|
||||
int heartbeatInterval = 30000; // 心跳间隔
|
||||
|
||||
|
|
|
|||
|
|
@ -60,12 +60,7 @@ void DataProcessor::processJson( const QVariant& data,int conType)
|
|||
}*/
|
||||
}
|
||||
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);
|
||||
//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) {
|
||||
QObject* uiObject = it.value();
|
||||
|
||||
QMetaObject::invokeMethod(uiObject, "onMessage",
|
||||
QMetaObject::invokeMethod(uiObject, "onReceiveHttpData",
|
||||
Q_ARG(QString, action),
|
||||
Q_ARG(QVariant, data));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue