loc_tool.h 2.8 KB

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