添加OpenCv
This commit is contained in:
73
DataCenter/DataCenter - 副本.h
Normal file
73
DataCenter/DataCenter - 副本.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#ifndef DATACENTER_H
|
||||
#define DATACENTER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariant>
|
||||
#include <QTimer>
|
||||
#include <QMap>
|
||||
#include <QStringList>
|
||||
#include "OpcUaManager.h"
|
||||
#include <GlobalDefinitions/Variable.h>
|
||||
#include <QMutex> // 新增:线程安全锁
|
||||
|
||||
class DataCenter : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static DataCenter* instance(QObject* parent = nullptr); // 全局唯一获取方式
|
||||
// 禁止拷贝和赋值
|
||||
DataCenter(const DataCenter&) = delete;
|
||||
DataCenter& operator=(const DataCenter&) = delete;
|
||||
|
||||
// 添加需要监控的节点
|
||||
void addMonitoredNode(const QString &nodeId, const QString &nodeName,const QString &varName,const QString &TableName,const QString &FieldName);
|
||||
|
||||
// 开始/停止循环读取
|
||||
void startCyclicRead(int intervalMs);
|
||||
void stopCyclicRead();
|
||||
|
||||
// 获取最新的节点值
|
||||
QVariant getNodeValue(const QString &nodeId) const;
|
||||
QVariant getNodeValueByName(const QString &nodeName) const;
|
||||
|
||||
// 获取所有节点信息
|
||||
QMap<QString, QString> getAllNodeNames() const { return gOPC_NodeName; }
|
||||
|
||||
void InitData();
|
||||
|
||||
void browseRecursive(const QString &nodeId);
|
||||
void doBrowse(const QString &nodeId, int depth, QString prefix);
|
||||
signals:
|
||||
// 节点值更新信号(供UI层订阅)
|
||||
void nodeValueUpdated(const QString &nodeId, const QString &nodeName,const QString &varName, const QVariant &value);
|
||||
// 错误信号
|
||||
void errorOccurred(const QString &errorString);
|
||||
|
||||
private slots:
|
||||
// 定时器触发,执行循环读取
|
||||
void onTimerTimeout();
|
||||
// 处理OPC读取结果
|
||||
void handleReadCompleted(const QVariant &value, const QString &nodeId);
|
||||
void refreshAllNodes();
|
||||
private:
|
||||
explicit DataCenter(OpcUaManager *opcManager, QObject *parent = nullptr); // 私有构造函数
|
||||
static DataCenter* m_instance; // 静态单例实例
|
||||
static QMutex m_mutex; // 线程安全锁
|
||||
|
||||
/** @brief OPC操作实例(不负责所有权) */
|
||||
OpcUaManager *m_opcManager;
|
||||
|
||||
/** @brief 循环读取定时器 */
|
||||
QTimer *m_cyclicTimer;
|
||||
|
||||
/** @brief 当前读取索引 */
|
||||
int m_currentReadIndex;
|
||||
|
||||
|
||||
|
||||
|
||||
//GlobalType DC_SetST; // 数据中心,给变量赋值
|
||||
|
||||
};
|
||||
|
||||
#endif // DATACENTER_H
|
||||
Reference in New Issue
Block a user