1
0

loc_tool.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #ifndef __loc_tool_hpp__
  2. #define __loc_tool_hpp__
  3. #include "loc_message.h"
  4. struct ant;
  5. struct message_locinfo;
  6. /*
  7. struct loc_tool
  8. {
  9. //将基础信息送入工具类,目前考虑各种算法输出不同的实时日志
  10. virtual void on_loc_message(ant*a, const message_locinfo&m){};
  11. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm)=0;
  12. virtual int index()
  13. {
  14. return -1;
  15. }
  16. virtual ~loc_tool(){}
  17. };
  18. struct loc_tool_tdoa_3_base:loc_tool
  19. {
  20. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  21. virtual int index();
  22. };
  23. struct loc_tool_tdoa_2_base:loc_tool
  24. {
  25. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  26. virtual int index();
  27. };
  28. struct loc_tool_tdoa_1_base:loc_tool
  29. {
  30. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  31. virtual int index();
  32. };
  33. struct loc_tool_tof_3_base:loc_tool
  34. {
  35. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  36. virtual int index();
  37. };
  38. struct loc_tool_tof_2_base:loc_tool
  39. {
  40. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  41. virtual int index();
  42. };
  43. struct loc_tool_tof_1_base:loc_tool
  44. {
  45. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  46. virtual void on_loc_message(ant*a, const message_locinfo&m);
  47. virtual int index();
  48. };
  49. struct loc_tool_main:loc_tool
  50. {
  51. loc_tool* g_tool[6];
  52. loc_tool_main();
  53. ~loc_tool_main();
  54. void set_tool(loc_tool*tool);
  55. loc_tool* get_tool(int index);
  56. void on_loc_message(ant*a, const message_locinfo&m);
  57. std::vector<point> calc_location(const std::vector<loc_message>&locm);
  58. };
  59. */
  60. struct loc_tool
  61. {
  62. virtual std::vector<point> calc_location(std::vector<loc_message>&locm)=0;
  63. virtual int index()
  64. {
  65. return -1;
  66. }
  67. virtual ~loc_tool(){}
  68. };
  69. struct loc_tool_tdoa_3_base:loc_tool
  70. {
  71. virtual std::vector<point> calc_location(std::vector<loc_message>&locm);
  72. virtual int index();
  73. };
  74. struct loc_tool_tdoa_2_base:loc_tool
  75. {
  76. virtual std::vector<point> calc_location(std::vector<loc_message>&locm);
  77. virtual int index();
  78. };
  79. struct loc_tool_tdoa_1_base:loc_tool
  80. {
  81. virtual std::vector<point> calc_location(std::vector<loc_message>&locm);
  82. virtual int index();
  83. };
  84. struct loc_tool_tof_3_base:loc_tool
  85. {
  86. virtual std::vector<point> calc_location(std::vector<loc_message>&locm);
  87. virtual int index();
  88. };
  89. struct loc_tool_tof_2_base:loc_tool
  90. {
  91. virtual std::vector<point> calc_location(std::vector<loc_message>&locm);
  92. virtual int index();
  93. };
  94. struct loc_tool_tof_1_base:loc_tool
  95. {
  96. virtual std::vector<point> calc_location(std::vector<loc_message>&locm);
  97. virtual int index();
  98. };
  99. struct loc_tool_main:loc_tool
  100. {
  101. static loc_tool* g_tool[6];
  102. loc_tool_main();
  103. ~loc_tool_main();
  104. static void set_tool(loc_tool*tool);
  105. std::vector<point> calc_location( std::vector<loc_message>&locm);
  106. };
  107. #endif