module_other_alarm.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef MODULE_OTHER_ALARM_H
  2. #define MODULE_OTHER_ALARM_H
  3. /**
  4. * @brief 简要说明
  5. * @author 戴月腾
  6. * @date 2018-10-11
  7. */
  8. #include <string>
  9. #include <memory>
  10. #include <atomic>
  11. #include <mutex>
  12. #include <map>
  13. #include "module_const.h"
  14. class module_other_alarm:public singleton_base<module_other_alarm>
  15. {
  16. private:
  17. friend class singleton_base<module_other_alarm>;
  18. module_other_alarm()
  19. {
  20. }
  21. public:
  22. static void power_lower_serious(std::shared_ptr<card_location_base> card_ptr)
  23. {
  24. auto ev_ptr = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_CARD_LOW_POWER_SERIOUS);
  25. if(ev_ptr)
  26. {
  27. event_list::copy_event(card_ptr, ev_ptr);
  28. }
  29. else//从没有告警状态转化为告警状态
  30. {
  31. ev_ptr = event_list::create_event_card(card_ptr->m_id, card_ptr->m_type, ET_CARD_LOW_POWER_SERIOUS);
  32. event_list::copy_event(card_ptr, ev_ptr);
  33. //保存到数据库
  34. event_list::save_event(ev_ptr);
  35. event_list::instance()->add(ev_ptr->get_list_id(),ev_ptr);
  36. log_info("电量极低告警开始:卡id=%d,卡type=%d", card_ptr->m_id, card_ptr->m_type);
  37. }
  38. }
  39. static void power_nomarl(std::shared_ptr<card_location_base> card_ptr)
  40. {
  41. auto ev_ptr = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_CARD_LOW_POWER_SERIOUS);
  42. if(ev_ptr && !ev_ptr->is_end())
  43. {
  44. event_list::copy_event(card_ptr, ev_ptr);
  45. ev_ptr->m_status = ES_END;
  46. //保存到数据库
  47. event_list::save_event(ev_ptr);
  48. log_info("电量极低告警结束:卡id=%d,卡type=%d", card_ptr->m_id, card_ptr->m_type);
  49. }
  50. }
  51. };
  52. #endif // MODULE_OTHER_ALARM_H