| SourceCode/Bond/BondEq/AlarmMonitor.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/BondEq/AlarmMonitor.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/BondEq/CPageAlarm.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
SourceCode/Bond/BondEq/AlarmMonitor.cpp
@@ -30,11 +30,6 @@ item.second->release(); } m_mapAlarming.clear(); for (auto item : m_alarms) { item->release(); } m_alarms.clear(); } std::string& CAlarmMonitor::getClassName() @@ -169,10 +164,10 @@ if (ar.IsStoring()) { Lock(); int count = (int)m_alarms.size(); int count = (int)m_mapAlarming.size(); ar << count; for (auto item : m_alarms) { item->Serialize(ar); for (auto item : m_mapAlarming) { item.second->Serialize(ar); } Unlock(); } @@ -183,9 +178,10 @@ ar >> count; for (int i = 0; i < count; i++) { CAlarm* pAlarm = new CAlarm(); pAlarm->addRef(); pAlarm->Serialize(ar); addAlarmToHistoryRecord(pAlarm); LOGE("历史警告:%s", pAlarm->toString().c_str()); addAlarming(pAlarm); pAlarm->release(); } Unlock(); } @@ -215,18 +211,6 @@ Unlock(); return iter->second; } std::list< CAlarm*>& CAlarmMonitor::getAlarmRecords() { return m_alarms; } void CAlarmMonitor::getAlarmRecords(std::list< CAlarm*>& list) { Lock(); list = m_alarms; Unlock(); } BOOL CAlarmMonitor::compareData(const char* pScrData, const char* pTarData, int len) @@ -270,11 +254,21 @@ 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(); // 加入数据库 AlarmManager::getInstance().addAlarm( std::to_string(pAlarm->getId()).c_str(), getAlarmText(pAlarm->getId()), CToolUnits::timeToString2(pAlarm->getOnTime()).c_str(), CToolUnits::timeToString2(pAlarm->getOffTime()).c_str()); } BOOL CAlarmMonitor::addAlarming(CAlarm* pAlarm) { auto iter = m_mapAlarming.find(pAlarm->getId()); if (iter != m_mapAlarming.end()) return FALSE; pAlarm->addRef(); m_mapAlarming[pAlarm->getId()] = pAlarm; return TRUE; } SourceCode/Bond/BondEq/AlarmMonitor.h
@@ -25,7 +25,6 @@ BOOL isAlarming(); CAlarm* getActiveAlarm(); void getAlarmRecords(std::list< CAlarm*>& list); std::list< CAlarm*>& getAlarmRecords(); private: BOOL compareData(const char* pScrData, const char* pTarData, int len); @@ -33,11 +32,11 @@ 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; // 正在发生的警告 std::list< CAlarm*> m_alarms; // 历史发生的警告信息,考虑保存一定数量 char* m_pRawData; }; SourceCode/Bond/BondEq/CPageAlarm.cpp
@@ -157,20 +157,17 @@ { CAlarmMonitor* pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR); // 当前正在发生的报警 pMonitor->Lock(); #if 0 std::map<int, CAlarm*>& alarmings = pMonitor->getAlarmingMap(); std::list< CAlarm*>& alarms = pMonitor->getAlarmRecords(); for (auto item : alarmings) { AddAlarm(pMonitor, item.second); } for (auto item : alarms) { AddAlarm(pMonitor, item); } #else // 获取报警数据 pMonitor->Unlock(); // 获取历史报警数据 auto vecData = AlarmManager::getInstance().getAllAlarms(); // 填充数据 @@ -182,9 +179,6 @@ pListCtrl->SetItemText(0, 3, item[2].c_str()); pListCtrl->SetItemText(0, 4, item[3].c_str()); } #endif // 0 pMonitor->Unlock(); } void CPageAlarm::AddAlarm(CAlarmMonitor* pMonitor, CAlarm* pAlarm) @@ -202,12 +196,6 @@ if (pAlarm->getOffTime() > 0) { pListCtrl->SetItemText(0, 4, CToolUnits::timeToString2(pAlarm->getOffTime()).c_str()); } AlarmManager::getInstance().addAlarm( std::to_string(pAlarm->getId()).c_str(), pMonitor->getAlarmText(pAlarm->getId()), CToolUnits::timeToString2(pAlarm->getOnTime()).c_str(), CToolUnits::timeToString2(pAlarm->getOffTime()).c_str()); } void CPageAlarm::UpdateAlarm(CAlarmMonitor* pMonitor, CAlarm* pAlarm) @@ -220,12 +208,6 @@ if (pListCtrl->GetItemData(i) == (DWORD_PTR)pAlarm) { if (pAlarm->getOffTime() > 0) { pListCtrl->SetItemText(i, 4, CToolUnits::timeToString2(pAlarm->getOffTime()).c_str()); AlarmManager::getInstance().updateAlarmEndTime( std::to_string(pAlarm->getId()).c_str(), pMonitor->getAlarmText(pAlarm->getId()), CToolUnits::timeToString2(pAlarm->getOnTime()).c_str(), CToolUnits::timeToString2(pAlarm->getOffTime()).c_str()); } } }