loc_tool.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef __loc_tool_hpp__
  2. #define __loc_tool_hpp__
  3. struct ant;
  4. struct message_locinfo;
  5. struct loc_tool
  6. {
  7. //将基础信息送入工具类,目前考虑各种算法输出不同的实时日志
  8. virtual void on_loc_message(ant*a, const message_locinfo&m){};
  9. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm)=0;
  10. virtual int index()
  11. {
  12. return -1;
  13. }
  14. virtual ~loc_tool(){}
  15. };
  16. struct loc_tool_tdoa_3_base:loc_tool
  17. {
  18. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  19. virtual int index();
  20. };
  21. struct loc_tool_tdoa_2_base:loc_tool
  22. {
  23. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  24. virtual int index();
  25. };
  26. struct loc_tool_tdoa_1_base:loc_tool
  27. {
  28. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  29. virtual int index();
  30. };
  31. struct loc_tool_tof_3_base:loc_tool
  32. {
  33. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  34. virtual int index();
  35. };
  36. struct loc_tool_tof_2_base:loc_tool
  37. {
  38. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  39. virtual int index();
  40. };
  41. struct loc_tool_tof_1_base:loc_tool
  42. {
  43. virtual std::vector<point> calc_location(const std::vector<loc_message>&locm);
  44. virtual void on_loc_message(ant*a, const message_locinfo&m);
  45. virtual int index();
  46. };
  47. struct loc_tool_main:loc_tool
  48. {
  49. loc_tool* g_tool[6];
  50. loc_tool_main();
  51. ~loc_tool_main();
  52. void set_tool(loc_tool*tool);
  53. loc_tool* get_tool(int index);
  54. void on_loc_message(ant*a, const message_locinfo&m);
  55. std::vector<point> calc_location(const std::vector<loc_message>&locm);
  56. };
  57. #endif