| SourceCode/Bond/BondEq/Alarm.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/BondEq/AlarmMonitor.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/BondEq/AlarmMonitor.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/BondEq/Model.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
SourceCode/Bond/BondEq/Alarm.cpp
@@ -107,22 +107,24 @@ if (ar.IsStoring()) { Lock(); ar << m_nUnitId; ar << m_nId; ar << m_nLevel; ar << m_timeOn; ar << m_timeOff; ar << m_nStatus; ar << m_nId; ar << m_nLevel; WriteString(ar, m_strText); Unlock(); } else { Lock(); ar >> m_nUnitId; ar >> m_nId; ar >> m_nLevel; ar >> m_timeOn; ar >> m_timeOff; ar >> m_nStatus; ar >> m_nId; ar >> m_nLevel; ReadString(ar, m_strText); Unlock(); } SourceCode/Bond/BondEq/AlarmMonitor.cpp
@@ -30,6 +30,11 @@ item.second->release(); } m_mapAlarming.clear(); for (auto item : m_alarms) { item->release(); } m_alarms.clear(); } std::string& CAlarmMonitor::getClassName() @@ -91,6 +96,7 @@ if (!findAlarm(alarmIds, iter->first)) { // 消除警告, 同时将信息发出,以使界面显示和历史记录保存 iter->second->alarmOff(); addAlarmToHistoryRecord(iter->second); LOGE("消除了警告:%s", iter->second->toString().c_str()); SendBroadcast(&CIntent(BC_CODE_ALARM_OFF, "", iter->second)); @@ -159,7 +165,6 @@ void CAlarmMonitor::Serialize(CArchive& ar) { /* if (ar.IsStoring()) { Lock(); @@ -177,15 +182,12 @@ ar >> count; for (int i = 0; i < count; i++) { CAlarm* pAlarm = new CAlarm(); pAlarm->addRef(); pAlarm->Serialize(ar); AddAlarm(pAlarm); pAlarm->release(); addAlarmToHistoryRecord(pAlarm); LOGE("历史警告:%s", pAlarm->toString().c_str()); } Unlock(); } */ } void CAlarmMonitor::getAlarmingMap(std::map<int, CAlarm*>& alarms) @@ -241,3 +243,14 @@ return FALSE; } void CAlarmMonitor::addAlarmToHistoryRecord(CAlarm* pAlarm) { pAlarm->addRef(); m_alarms.push_back(pAlarm); if (m_alarms.size() > 1000) { CAlarm* pTemp = m_alarms.front(); pTemp->release(); m_alarms.pop_front(); } } SourceCode/Bond/BondEq/AlarmMonitor.h
@@ -29,10 +29,12 @@ 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); private: std::map<int, CAlarm*> m_mapAlarmTemplate; // 这是警告的模板,从文件加载 std::map<int, CAlarm*> m_mapAlarming; // 正在发生的警告 std::list< CAlarm*> m_alarms; // 历史发生的警告信息,考虑保存一定数量 char* m_pRawData; }; SourceCode/Bond/BondEq/Model.cpp
@@ -178,6 +178,11 @@ m_bonder.init(); CString strBonderDataFile; strBonderDataFile.Format(_T("%s\\Bonder.dat"), (LPTSTR)(LPCTSTR)m_strWorkDir); m_bonder.read((LPTSTR)(LPCTSTR)strBonderDataFile); return 0; }