message.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #ifndef __MESSAGE_HPP__
  2. #define __MESSAGE_HPP__
  3. #include <stdint.h>
  4. #include <time.h>
  5. #include "worker.h"
  6. struct zistream;
  7. #define CHAR_LOCATEDATA_TOF_EXTEND 0x843b // TOF实时定位数据,请求、应答
  8. #define CHAR_LOCATEDATASMALL_TOF_EXTEND 0x753b // TOF实时小分站定位数据,请求、应答
  9. #define CHAR_LOCATEDATAHIS_TOF_EXTEND 0x853b // TOF历史定位数据,请求、应答
  10. #define CHAR_LOCATEDATA_TDOA_EXTEND 0x863b // TDOA实时定位数据,请求、应答
  11. #define CHAR_LOCATEDATAHIS_TDOA_EXTEND 0x873b // TDOA历史定位数据,请求、应答
  12. #define CHAR_TDOA_READER_SYNC_TIME 0xa78d // TDOA分站时间同步
  13. #define CHAR_ADHOC 0x803b // 上传自组网数据
  14. #define CHAR_CTRL_READER_CMD 0x804c // 向分站发送控制指令,控制分站向上位机发送数据
  15. #define CHAR_VIRTUAL_DATA_PUSH_CMD 0x699a //虚拟数据推送
  16. #define CHAR_LOCATEDATA_TOF_OPTIMIZE 0x753d // TOF优化协议
  17. // 分站传上来的卡定位数据,包括tof,tdoa
  18. struct message_locinfo:task
  19. {
  20. uint64_t m_time_stamp; // 分站时间戳
  21. time_t m_site_time; // 分站时间
  22. uint64_t m_tof;
  23. uint32_t m_site_id; // 分站号
  24. uint32_t m_card_type; // 卡类型
  25. uint32_t m_card_id; // 卡id
  26. uint16_t m_card_ct; // 卡报文时间戳
  27. uint8_t m_batty_status;// 电池状态
  28. uint8_t m_callinfo; // 0x80-呼救,0x01-一般呼叫,0x02-紧急呼叫
  29. uint8_t m_rav; // 角速度
  30. uint8_t m_acc; // 加速度
  31. uint8_t m_ant_id; // 天线号
  32. uint16_t m_sync_ct; // 同步序列号
  33. int16_t m_rssi; //
  34. //优化协议
  35. float m_distance;
  36. void zero_this();
  37. void load(zistream&is,bool tdoa);
  38. void set_rav(uint8_t rav){m_rav=rav;}
  39. static std::vector<task*> load_opt(zistream&is);
  40. static task* clone(message_locinfo* ml);
  41. int64_t long_id()const
  42. {
  43. return (((int64_t)m_card_type)<<32)|m_card_id;
  44. }
  45. };
  46. //tdoa分站同步数据
  47. struct message_tdoasync:task
  48. {
  49. uint32_t m_local_site_id; // 本地分站号
  50. uint32_t m_parent_site_id; // 上一级分站号
  51. uint16_t m_local_ant_id; // 分站分站天线号
  52. uint16_t m_parent_ant_id; // 上一级分站天线号
  53. uint16_t m_sync_ct; // 同步序列号
  54. uint16_t m_local_level; // 分站本地层级
  55. uint64_t m_recv_time; // 接收时间
  56. uint64_t m_send_time; // 发送时间
  57. void zero_this();
  58. void load(zistream&is);
  59. };
  60. #endif