362 lines
12 KiB
C
Raw Normal View History

2025-03-17 16:59:30 +08:00
#ifndef CALARMPLUGIN_H
#define CALARMPLUGIN_H
#include <QWidget>
#include "CAlarmMsgInfo.h"
#include "CAlarmItemModel.h"
#include "CAlarmMediaPlayer.h"
#include "CAlarmSetMng.h"
#include "CAiAlarmTreeModel.h"
class CAlarmView;
class CAlarmForm;
class CAlarmWidget;
class CAlarmItemModel;
class CAlarmPlugin : public QWidget
{
Q_OBJECT
public:
CAlarmPlugin(QWidget *parent, bool editMode = false);
~CAlarmPlugin();
int confirmAlarm(const QList<AlarmMsgPtr> &msgs);
int removeAlarm(const QList<AlarmMsgPtr> &msgs);
public slots:
/*************************以下接口为公共接口*****************************/
/**
* @brief initialize
* @param mode E_Alarm_Dock-(0) E_Alarm_Window-(1) E_Alarm_Pop-(2)
*/
void initialize(int mode);
/**
* @brief login ()
*/
void login();
/**
* @brief logout 退(退)
*/
void logout();
/**
* @brief switchFaultRecallState
* @param bFaultRecallState true- false-
*/
void switchFaultRecallState(bool bFaultRecallState);
/**
* @brief setAudioVolumeEnable 使()
*/
void setVolumeEnable(bool bEnable);
/**
* @brief setColumnWidth
* @param column
* @param width
*/
void setColumnWidth(const int &column, const int &width);
/**
* @brief setColumnAlign
* @param column
* @param alignFlag 1-AlignLeft; 2-AlignRight; other-AlignHCenter
*/
void setColumnAlign(const int &column, const int &alignFlag);
/**
* @brief setEnableTrend ()
* @param isNeed true- false-
*/
void setEnableTrend(bool isNeed =true);
/**
* @brief setEnableVideo ()
* @param isNeed true- false-
*/
void setEnableVideo(bool isNeed =true);
/**
* @brief setEnableWave
* @param isNeed true- false-
*/
void setEnableWave(bool isNeed = true);
/**
* @brief setEnableLevel ()
* @param isNeed true- false-
*/
void setEnableLevel(bool isNeed =true);
/**
* @brief getDevAlmInfo
* @param device
* @return QString _告警数量 ex1_2 12
*/
QStringList getDevAlmInfo(const QString device);
/**
* @brief getDevGroupAlmInfo
* @param deviceGroup
* @return QString _设备数量 ex:1_23 123
*/
QStringList getDevGroupAlmInfo(const QString deviceGroup);
/**
* @brief getLocAlmInfo
* @return QString id_告警等级_告警数量 ex:1_1_23 1123
*/
QStringList getLocAlmInfo();
/**
* @brief getLocNotConfirmAlmCount
* @param loc id
* @return
*/
int getLocNotConfirmAlmCount(int loc);
/**
* @brief getDevgNotConfirmAlmCount
* @param devg
* @return
*/
int getDevgNotConfirmAlmCount(const QString & devg);
/***************************************************************************/
/****************以下接口仅针对E_Alarm_Window模式[告警大窗]有效********************/
/**
* @brief setEnableAccidentReview
* @param isNeed isNeed true- false- ()
*/
void setEnableAccidentReview(bool isNeed = true);
/**
* @brief setAccidentReviewPath pic
* @param path
*/
void setAccidentReviewPath(const QString& path);
/**
* @brief setShowAiAlarmView ()
* @param show true- false- ()
*/
void setShowAiAlarmView(bool show = true);
/**
* @brief setHiddenLocation
* @param hide true- false-()
*/
void setHiddenLocation(bool hide);
/**
* @brief setHiddenTime
* @param hide true- false-()
*/
void setHiddenTime(bool hide);
/**
* @brief setHiddenStatus
* @param hide true- false-()
*/
void setHiddenStatus(bool hide);
/**
* @brief setHiddenPriority
* @param hide true- false-()
*/
void setHiddenPriority(bool hide);
/**
* @brief setHiddenCheckBox
* @param hide true- false-()
*/
void setHiddenCheckBox(bool hide);
/**
* @brief setHiddenSetConfig
* @param hide true- false-()
*/
void setHiddenSetConfig(bool hide);
/**
* @brief setHiddenCloseButton
* @param hide true- false-()
*/
void setHiddenCloseButton(bool hide);
/**
* @brief setHiddenInhiAlarmButton
* @param hide true- false-()
*/
void setHiddenInhiAlarmButton(bool hide);
/**
* @brief setHiddenSelectButton ,
* @param hide true- false-()
*/
void setHiddenSelectButton(bool hide);
/**
* @brief setFormColumnVisible
* @param column
* @param visible true- false-
*/
void setFormColumnVisible(const int &column, const bool &visible = true);
/***************************************************************************/
/****************以下接口仅针对E_Alarm_Dock模式[底部告警栏]有效********************/
/**
* @brief confirmFirstAlarm
* @param index (2)
*/
void confirmFirstAlarm(int index= 0);
/**
* @brief setDockRowHeight
* @param height
*/
void setDockRowHeight(const int &height);
/**
* @brief setDockColumnVisible
* @param column
* @param visbile true- false-
*/
void setDockColumnVisible(const int &column, const bool &visbile = true);
/**
* @brief confirmAllPermAlarm
* @param tips true- false-
* @return
*/
int confirmAllPermAlarm(bool tips = true);
/***************************************************************************/
/****************以下接口仅针对E_Alarm_Pop模式[设备对话框]有效********************/
/**
* @brief setDevice ()
* @param device
*/
void setDevice(const QString &device);
/**
* @brief setDeviceGroup
* @param deviceGroup
*/
void setDeviceGroup(const QString &deviceGroup);
/**
* @brief setPriorityFilter
* @param deviceGroup
*/
void setPriorityFilter(int PriorityFilter);
/**
* @brief setPointTag ()
* @param pointList
*/
void setPointTag(const QString &pointList);
/**
* @brief setColumnVisible
* @param column
* @param visible true- false-
*/
void setColumnVisible(const int &column, const bool &visible);
/**
* @brief currentSelectCount
* @return
*/
int currentSelectCount();
/**
* @brief confirmCurrentAlarm
*/
void confirmCurrentAlarm();
/**
* @brief confirmAllAlarm
*/
void confirmAllAlarm();
/**
* @brief removeAllAlarm
*/
void removeAllAlarm();
/***************************************************************************/
/**
* @brief recvAlarmNumChanged
* @param total
* @param unConfirm
*/
void recvAlarmNumChanged(const int &total, const int &unConfirm);
signals:
/**
* @brief alarmNumChanged
*/
void alarmNumChanged(const int &total, const int &unConfirm); //脚本更新数量
/**
* @brief alarmPush
*/
void alarmPush(const QString &info);
/**
* @brief alarmPushClear
*/
void alarmPushClear();
/**
* @brief alarmDockDoubleClicked [Dock]
*/
void alarmDockDoubleClicked();
/**
* @brief closeBtnClicked [Window]
*/
void closeBtnClicked();
/**
* @brief openVideoDialog
* @param domainId id
* @param appId id
* @param tag
* @param startTime
* @param endTime
*/
void openVideoDialog(int domainId,int appId,QString tag,quint64 startTime,quint64 endTime);
/**
* @brief openTrendDialog
* @param time_stamp
* @param tagList
*/
void openTrendDialog(quint64 time_stamp,QStringList tagList);
/**
* @brief openAccidentReviewDialog
* @param starTime
* @param keepTime
*/
void openAccidentReviewDialog(quint64 starTime,quint64 keepTime,QString graph=QString());
/**
* @brief sigSwitchFaultRecallState hmi使用
* @param bFaultRecallState true- false-
*/
void sigSwitchFaultRecallState(bool bFaultRecallState);
void sigLogin();
private slots:
/**
* @brief slotUpdateAlarmView
*/
void slotUpdateAlarmView();
void slotUpdateAiAlarmView();
/**
* @brief slotUpdateAlarmOperateEnable
* @param bEnable
*/
void slotUpdateAlarmOperateEnable(const bool &bEnable);
void slotAllViewReload();
private:
void loadConfig();
void reset();
void updateAlarmOperatePerm();
private:
E_Alarm_Mode m_mode;
bool m_bIsEditMode;
CAlarmForm * m_alarmForm;
CAlarmWidget * m_alarmWidget;
CAlarmView * m_alarmView;
CAlarmItemModel * m_pModel;
CAiAlarmTreeModel * m_pTreeModel;
int m_currentUsrId{};
std::string m_currentNodeName;
std::vector <int> m_vecRegionOptId; //告警操作权限责任区
std::vector <int> m_vecLocationOptId;//告警操作权限车站
std::vector <int> m_vecRegionDelId; //告警删除权限责任区
std::vector <int> m_vecLocationDelId;//告警删除权限车站
//static int m_number;
static QThread * m_pDataCollectThread;
static QThread * m_pMediaPlayerThread;
bool m_enableAi;
};
#endif // CALARMPLUGIN_H