HM-SPMS/product/src/gui/plugin/AlarmWidget/CAiAlarmDataCollect.h

85 lines
2.0 KiB
C
Raw Normal View History

#ifndef CAIALARMDATACOLLECT_H
#define CAIALARMDATACOLLECT_H
#include <QObject>
#include <QMutex>
#include <QThread>
#include <QMap>
#include <QTimer>
#include "IntelliAlmMsg.pb.h"
#include "CAiAlarmMsgInfo.h"
#include "net_msg_bus_api/MsgBusApi.h"
#include "dbms/rdb_api/CRdbAccess.h"
2025-03-12 14:17:53 +08:00
class CAiAlarmDataCollect : public QObject, public iot_service::CIntelliAlmApi4Clt
{
Q_OBJECT
public:
static CAiAlarmDataCollect *instance();
virtual ~CAiAlarmDataCollect();
void refrence();
int getRefrenceCount();
bool isFaultRecallState();
2025-03-12 14:17:53 +08:00
virtual bool requestDelAlm(iot_idl::SIntelliAlmDel &objDelAlm);
2025-03-12 14:17:53 +08:00
virtual bool requestSeprAlm(iot_idl::SIntelliAlmSepr &objSeprAlm);
2025-03-12 14:17:53 +08:00
virtual bool requestMergeAlm(iot_idl::SIntelliAlmMerge &objMergeAlm);
2025-03-12 14:17:53 +08:00
virtual void handleAllAlmMsg(int nDomainId,iot_idl::SIntelliAlmAdd &objAllAlm);
2025-03-12 14:17:53 +08:00
virtual void handleAddAlmMsg(iot_idl::SIntelliAlmAdd &objAddAlm);
2025-03-12 14:17:53 +08:00
virtual void handleDelAlmMsg(iot_idl::SIntelliAlmDel &objDelAlm);
2025-03-12 14:17:53 +08:00
virtual void handleBrokenAlmMsg(iot_idl::SIntelliAlmBroken &objBrokenAlm);
2025-03-12 14:17:53 +08:00
virtual void handleReleaseAlmMsg(iot_idl::SIntelliAlmRelease &objReleaseAlm);
signals:
//< 启停定时器
void sigTimerShot(const bool bStop);
//< 定时更新通知model刷新界面
void sigUpdateAlarmView();
//< 通知所有告警插件禁用/使能告警操作
void sigAlarmOperateEnable(const bool &bEnable);
//< 通知model重新拉取告警消息
void sigMsgRefresh();
public slots:
void initialize();
void release();
void destory();
void slotTimerShot(const bool start);
void slotSwitchFaultRecallState(bool bFaultRecallState);
private:
CAiAlarmDataCollect();
int queryPriorityOrder(int &id);
private slots:
void slotAiAlarmStateChanged();
private:
int m_referenceCount;
bool m_bFaultRecallState;
QMutex *m_rtdbMutex;
QTimer * m_pAlternateTimer;
2025-03-12 14:17:53 +08:00
iot_dbms::CRdbAccess * m_rtdbPriorityOrderAccess;
static CAiAlarmDataCollect * m_pInstance;
};
#endif // CAIALARMDATACOLLECT_H