LAPTOP-SNT8I5JK\Boounion
2024-12-13 d2ba3866de12f3b64b054fcb0b7a08778dd02b8c
SourceCode/Bond/BondEq/AlarmMonitor.cpp
@@ -9,8 +9,8 @@
CAlarmMonitor::CAlarmMonitor()
{
   m_pRawData = new char[200];
   memset(m_pRawData, 0, 200);
   m_pRawData = new char[512];
   memset(m_pRawData, 0, 512);
}
@@ -54,7 +54,7 @@
   if (MONITOR_ID_ALARM != id) {
      return;
   }
   // 比较有没有变化
   if (compareData(m_pRawData, (const char*)pData, size)) {
      return;
@@ -95,13 +95,14 @@
   for (auto iter = m_mapAlarming.begin(); iter != m_mapAlarming.end();/* iter++*/) {
      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));
         iter->second->release();
         CAlarm* pAlarm = iter->second;
         pAlarm->alarmOff();
         addAlarmToHistoryRecord(pAlarm);
         m_mapAlarming.erase(iter++);
         LOGE("消除了警告:%s", pAlarm->toString().c_str());
         SendBroadcast(&CIntent(BC_CODE_ALARM_OFF, "", pAlarm));
         pAlarm->release();
      }
      else {
         iter++;
@@ -190,11 +191,9 @@
   }
}
void CAlarmMonitor::getAlarmingMap(std::map<int, CAlarm*>& alarms)
std::map<int, CAlarm*>& CAlarmMonitor::getAlarmingMap()
{
   Lock();
   alarms = m_mapAlarming;
   Unlock();
   return m_mapAlarming;
}
BOOL CAlarmMonitor::isAlarming()
@@ -205,6 +204,31 @@
   return bAlarming;
}
CAlarm* CAlarmMonitor::getActiveAlarm()
{
   Lock();
   if (m_mapAlarming.empty()) {
      Unlock();
      return nullptr;
   }
   auto iter = m_mapAlarming.begin();
   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)
{
   for (int i = 0; i < len; i++) {