darker
2025-02-21 97e9c6896ffaedcc2c00fb4ea1bee6a5cdbc4a5d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
#include "Component.h"
#include <map>
#include <list>
#include "Alarm.h"
 
class CAlarmMonitor :
    public CComponent
{
public:
    CAlarmMonitor();
    ~CAlarmMonitor();
 
public:
    virtual std::string& getClassName();
    virtual void onData(int id, const void* pData, int size);
    virtual void onRecvBroadcast(void* pSender, CIntent* pIntent);
    virtual void init();
    virtual void term();
    int readAlarmListFromFile(const char* pszFilepath);
    virtual void OnTimer(UINT nTimerid);
    const char* getAlarmText(int nID);
    virtual void Serialize(CArchive& ar);
    std::map<int, CAlarm*>& getAlarmingMap();
    BOOL isAlarming();
    CAlarm* getActiveAlarm();
    void getAlarmRecords(std::list< CAlarm*>& list);
 
private:
    BOOL compareData(const char* pScrData, const char* pTarData, int len);
    int addAlarmTemplate(int id, int level, const char* pszDescription);
    BOOL isAlarmOn(int id);
    BOOL findAlarm(std::vector<int>& ids, int id);
    void addAlarmToHistoryRecord(CAlarm* pAlarm);
    BOOL addAlarming(CAlarm* pAlarm);
 
private:
    std::map<int, CAlarm*> m_mapAlarmTemplate;    // ÕâÊǾ¯¸æµÄÄ£°å£¬´ÓÎļþ¼ÓÔØ
    std::map<int, CAlarm*> m_mapAlarming;        // ÕýÔÚ·¢ÉúµÄ¾¯¸æ
    char* m_pRawData;
};