2025-03-14 15:07:39 +08:00
|
|
|
|
#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"
|
|
|
|
|
|
|
|
|
|
|
|
class CAiAlarmDataCollect : public QObject, public kbd_service::CIntelliAlmApi4Clt
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
|
|
|
static CAiAlarmDataCollect *instance();
|
|
|
|
|
|
|
|
|
|
|
|
virtual ~CAiAlarmDataCollect();
|
|
|
|
|
|
|
|
|
|
|
|
void refrence();
|
|
|
|
|
|
|
|
|
|
|
|
int getRefrenceCount();
|
|
|
|
|
|
|
|
|
|
|
|
bool isFaultRecallState();
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool requestDelAlm(kbd_idlfile::SIntelliAlmDel &objDelAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool requestSeprAlm(kbd_idlfile::SIntelliAlmSepr &objSeprAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool requestMergeAlm(kbd_idlfile::SIntelliAlmMerge &objMergeAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void handleAllAlmMsg(int nDomainId,kbd_idlfile::SIntelliAlmAdd &objAllAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void handleAddAlmMsg(kbd_idlfile::SIntelliAlmAdd &objAddAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void handleDelAlmMsg(kbd_idlfile::SIntelliAlmDel &objDelAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void handleBrokenAlmMsg(kbd_idlfile::SIntelliAlmBroken &objBrokenAlm);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void handleReleaseAlmMsg(kbd_idlfile::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;
|
|
|
|
|
|
kbd_dbms::CRdbAccess * m_rtdbPriorityOrderAccess;
|
|
|
|
|
|
static CAiAlarmDataCollect * m_pInstance;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // CAIALARMDATACOLLECT_H
|