site_area.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "site_area.h"
  2. #include "card.h"
  3. #include "ant.h"
  4. //每张卡包含这样一个对象,保存最后一个分站区域
  5. //1、记录卡进出分站的时间,地点
  6. //2、用于考勤
  7. std::shared_ptr<site> site_area_hover::get_site()
  8. {
  9. return sit_list::instance()->get(m_site_id);
  10. }
  11. void site_area_hover::on_point(uint32_t card_id,int site_id,const point*pt,int32_t type)
  12. {
  13. if(pt!=nullptr)
  14. {
  15. if(m_enter_point.empty())
  16. m_enter_point=*pt;
  17. m_last_point=*pt;
  18. }
  19. else
  20. {
  21. if(m_site_id==site_id)
  22. {
  23. m_last_time=time(0);
  24. return;
  25. }
  26. int last_id = m_site_id;
  27. m_site_id = site_id;
  28. //离开现有分站处理,记录现有分站的进出时间和地点
  29. leave_site(card_id,last_id,type);
  30. //进入分站覆盖区域处理,考勤
  31. enter_site(card_id,site_id,type);
  32. //m_site_id=site_id;
  33. m_enter_time=m_last_time=time(nullptr);
  34. m_enter_point.set(0,0);
  35. m_last_point.set(0,0);
  36. }
  37. }
  38. void site_area_hover::enter_site(uint32_t card_id,int enter_site,int32_t type)
  39. {
  40. }
  41. void site_area_hover::leave_site(uint32_t card_id,int enter_site,int32_t type)
  42. {
  43. }
  44. int site_area_hover::get_att_type() const
  45. {
  46. int id = -1;
  47. const auto &s = sit_list::instance()->get(m_site_id);
  48. if(s)
  49. if(s->m_reader_type_id == READER_TYPE_ID_DOWN)
  50. id=0;
  51. return id;
  52. }