1
0

loc_point.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #include <memory.h>
  2. #include "loc_point.h"
  3. #include "ant.h"
  4. #include "log.h"
  5. #include "loc_message.h"
  6. loc_point::loc_point()
  7. :m_time(0)
  8. ,m_ct(-1)
  9. ,m_cid(-1)
  10. ,m_sid(-1)
  11. ,m_acc(0)
  12. ,m_rav(0)
  13. ,m_cred_level(0)
  14. ,m_dist(0)
  15. ,m_speed(0)
  16. ,m_stat(0)
  17. ,m_useless(false)
  18. ,m_dist1(0)
  19. ,m_dist2(0)
  20. ,m_smooth_x(0)
  21. ,m_smooth_y(0)
  22. {
  23. memset(&m_tof,0,sizeof(m_tof));
  24. //memset(&m_rsp,0,sizeof(m_rsp));
  25. }
  26. loc_point& loc_point::reset()
  27. {
  28. memset(this,0,sizeof(*this));
  29. return *this;
  30. }
  31. inline const char* now(char*date_str,uint64_t time)
  32. {
  33. time_t ntime=time/1000;
  34. struct tm buff;
  35. const struct tm*t=localtime_r(&ntime, &buff);
  36. sprintf(date_str,"%d-%02d-%02d %02d:%02d:%02d.%03d" ,
  37. t->tm_year+1900,t->tm_mon+1,t->tm_mday,
  38. t->tm_hour,t->tm_min,t->tm_sec,(int)(time%1000));
  39. return date_str;
  40. }
  41. void loc_point::debug_out(const char *str)const
  42. {
  43. char time_buff[128];
  44. #if 1
  45. log_info("[%s]t=%s,sit=%d,card=%d,ct=%d,cred=%d,"
  46. "tof1=%d,tof2=%d,pt=(%.2lf,"
  47. "%.2lf),rsp=1,acc=%.2f,dist=%.2lf,dist1=%.2lf,dist2=%.2lf,rav=%.2f,speed:%.2f\n",
  48. str,now(time_buff,m_time), m_sid,
  49. m_cid,
  50. m_ct, m_cred_level,
  51. m_tof[0], m_tof[1], x,
  52. //y ,(int)(m_rsp[0]+m_rsp[1])/2,m_acc,
  53. y ,m_acc,
  54. m_dist1,m_dist,m_dist2, m_rav,m_speed
  55. );
  56. #else
  57. printf("[%s]t=%s,sit=%d,ct=%d,cred=%d,"
  58. "tof1=%d,tof2=%d,pt=(%.2lf,"
  59. "%.2lf),rsp=,acc=%.2f,dist=%.2lf,dist1=%.2lf,dist2=%.2lf,rav=%.2f,speed=%.2f\n",
  60. str,now(time_buff,m_time), m_sid, m_ct, m_cred_level,
  61. m_tof[0], m_tof[1], m_smooth_x,
  62. m_smooth_y ,m_acc,
  63. m_dist1,m_dist,m_dist2, m_rav, m_speed
  64. );
  65. #endif
  66. }
  67. int loc_point::inc_cl(int cred_level)
  68. {
  69. return m_cred_level+=cred_level;
  70. }
  71. int loc_point::set_cl(int cred_level)
  72. {
  73. return m_cred_level=cred_level;
  74. }
  75. int loc_point::cl()const
  76. {
  77. return m_cred_level;
  78. }
  79. void loc_point::set_source(const loc_message&li,const loc_message&li2)
  80. {
  81. m_sid = li.m_sit->m_id;
  82. m_cid = li.m_card_id;
  83. m_time=std::min(li.m_loc_time,li2.m_loc_time);
  84. m_ct=li.m_card_ct;
  85. m_acc=li.m_acc *10;// 1270.;
  86. m_rav=li.m_rav;
  87. m_tof[li.m_ant_id]=li.m_num_ticks;
  88. m_tof[li2.m_ant_id]=li2.m_num_ticks;
  89. m_step=0;
  90. }
  91. void loc_point::set_source(const loc_message&li)
  92. {
  93. m_sid = li.m_sit->m_id;
  94. m_cid = li.m_card_id;
  95. m_time=li.m_loc_time;
  96. m_ct=li.m_card_ct;
  97. m_acc=li.m_acc *10;// 1270.;
  98. m_rav=li.m_rav;
  99. m_tof[li.m_ant_id]=li.m_num_ticks;
  100. m_tof[li.m_ant_id?0:1]=0;
  101. m_step=0;
  102. }