362 lines
12 KiB
C
362 lines
12 KiB
C
|
|
#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 格式为: 告警等级_告警数量 ex:1_2 含义为 告警等级为1的告警数为2
|
|||
|
|
*/
|
|||
|
|
QStringList getDevAlmInfo(const QString device);
|
|||
|
|
/**
|
|||
|
|
* @brief getDevGroupAlmInfo 获取设备组下每个告警等级的设备数量
|
|||
|
|
* @param deviceGroup 设备组
|
|||
|
|
* @return QString 格式为: 告警等级_设备数量 ex:1_23 含义为 告警等级为1的设备数量为23
|
|||
|
|
*/
|
|||
|
|
QStringList getDevGroupAlmInfo(const QString deviceGroup);
|
|||
|
|
/**
|
|||
|
|
* @brief getLocAlmInfo 获取车站告警数量(优先级分组)
|
|||
|
|
* @return QString 格式为: 车站id_告警等级_告警数量 ex:1_1_23 含义为 车站1告警等级为1的告警数量为23
|
|||
|
|
*/
|
|||
|
|
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
|