ws_common.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. /**
  2. * @brief
  3. websocket公共头文件
  4. * @version
  5. V 1.0.0
  6. * @author
  7. * @date
  8. 创建时间: 2018-08-17\n
  9. * @note
  10. 2018-08-17 初次创建。\n
  11. * @warning
  12. * @bug
  13. */
  14. #ifndef _WS_COMMON_INC_H_
  15. #define _WS_COMMON_INC_H_
  16. #include <map>
  17. namespace sys
  18. {
  19. const int MIN_SEND_INTERVAL = 1;//最小发送时间间隔
  20. /**
  21. * @brief
  22. 线程配置结构体。
  23. */
  24. struct _THREAD_CONFIG_
  25. {
  26. int SendInterval;//发送间隔(单位:秒)
  27. void Clear()
  28. {
  29. SendInterval = 0;
  30. }
  31. _THREAD_CONFIG_()
  32. {
  33. Clear();
  34. }
  35. };
  36. // 传感器,加速度,角速度
  37. struct sensor{
  38. double m_acc; // 加速度
  39. double m_ang; // 角速度
  40. double m_tri_acc[3]; // 三轴,0-x,1-y,2-z轴
  41. double m_tri_ang[3]; // 三轴,
  42. uint8_t m_walking_step; // 行进步数
  43. uint8_t m_jump_count; // 跳跃次数
  44. double m_hang_time; // 滞空时间
  45. double m_hang_height; // 滞空高度
  46. sensor(): m_acc(0.0), m_ang(0.0),m_walking_step(0), m_jump_count(0),m_hang_time(0), m_hang_height(0)
  47. {
  48. m_tri_acc[0] = m_tri_acc[1] = m_tri_acc[2] = m_tri_ang[0] = m_tri_ang[1] = m_tri_ang[2] = 0.0;
  49. }
  50. };
  51. /**
  52. * @brief
  53. 基础卡信息结构体。
  54. */
  55. struct _BASE_CARD_: public sensor
  56. {
  57. int Type; //卡类型
  58. int ID; //卡ID
  59. double x; //x坐标
  60. double y; //y坐标
  61. double z; //z坐标
  62. double down_time; //入井时间戳
  63. double enter_area_time; //进入区域时间戳
  64. double rec_time; //最后接收时间戳
  65. double work_time; //工作时长
  66. int map_id; //地图编号
  67. int area_id; //区域ID
  68. int dept_id; //部门编号
  69. int stat; //状态
  70. int running_stat; //运行状态: 包括上猴车状态
  71. int biz_stat; //业务状态
  72. double speed; //速度
  73. double m_freq; // 卡频率
  74. _BASE_CARD_()
  75. {
  76. Type = 0;
  77. ID = 0;
  78. x = 0;
  79. y = 0;
  80. z = 0;
  81. down_time = 0;
  82. enter_area_time = 0;
  83. rec_time = 0;
  84. work_time = 0;
  85. map_id = 0;
  86. area_id = 0;
  87. dept_id = 0;
  88. stat = 0;
  89. running_stat = 0;
  90. biz_stat = 0;
  91. speed = 0.0;
  92. m_freq = 0.0;
  93. }
  94. };
  95. /**
  96. * @brief
  97. 卡位置结构体。
  98. */
  99. struct _CARD_POS_ : public _BASE_CARD_
  100. {
  101. std::map<int,std::tuple<int,int,int,double,uint64_t>> area_info;
  102. int landmark_id; //地标编号
  103. int lm_direction; //地标方向
  104. int landmark_dis; //距离地标的距离
  105. int level_id; //级别编号
  106. int is_on_duty; //车辆是否是当天出勤的标识(1:出勤,0:不出勤)
  107. int display; //是否显示(1:显示,0:不显示)
  108. int battery_stat; //卡电量状态
  109. int battery_val; //卡电量值
  110. void Clear()
  111. {
  112. landmark_id = 0;
  113. lm_direction = 0;
  114. landmark_dis = 0;
  115. level_id = 0;
  116. is_on_duty = 0;
  117. display = 1;//默认显示
  118. battery_stat = 0;
  119. battery_val = 10;
  120. }
  121. _CARD_POS_()
  122. {
  123. Clear();
  124. }
  125. };
  126. /**
  127. * @brief
  128. 统计部门结构体。
  129. */
  130. struct _STAT_DEPT_ITEM_
  131. {
  132. int DeptID;//部门ID
  133. std::map<int, int> Area;//区域数量列表(key是区域ID,value是区域里的卡数)
  134. std::map<int, int> Dept;//部门数量列表(key是区域ID,value是部门里的卡数)
  135. std::map<int, int> OcptLvl;//职务级别数量列表(key是区域ID,value是职务级别里的卡数)
  136. int Sum;//卡总数
  137. _STAT_DEPT_ITEM_()
  138. {
  139. DeptID = 0;
  140. Sum = 0;
  141. }
  142. };
  143. struct light_state{
  144. int m_group_id;
  145. int m_light_id;
  146. int m_light_state;
  147. std::string m_card_id;
  148. light_state(): m_group_id(0), m_light_id(0), m_light_state(0), m_card_id("")
  149. {}
  150. light_state(const int& gid, const int& lid, const int& state, const std::string& cid)
  151. : m_group_id(gid),
  152. m_light_id(lid),
  153. m_light_state(state),
  154. m_card_id(cid)
  155. {}
  156. };
  157. // 设备状态信息,基站类设备
  158. struct device_state{
  159. uint32_t m_id; // 设备ID
  160. uint8_t m_type; // 设备类型
  161. uint8_t m_state; // 设备状态
  162. uint64_t m_cur_time; // 接收时间
  163. device_state(uint32_t id, uint8_t type, uint8_t state, uint64_t ctime)
  164. : m_id(id)
  165. , m_type(type)
  166. , m_state(state)
  167. , m_cur_time(ctime)
  168. {}
  169. device_state()
  170. : m_id(0)
  171. , m_type(0)
  172. , m_state(0)
  173. , m_cur_time(0)
  174. {}
  175. };
  176. }
  177. #endif