System_Manager.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // Created by zx on 2020/1/3.
  3. //
  4. #ifndef SYSTEM_MANAGER_H
  5. #define SYSTEM_MANAGER_H
  6. #include "../laser/Laser.h"
  7. #include "../plc/plc_communicator.h"
  8. #include "../locate/locater.h"
  9. #include "../terminor/terminal_command_executor.h"
  10. #include "../verify/Verify_result.h"
  11. #include "../wj_lidar/fence_controller.h"
  12. class System_Manager
  13. {
  14. public:
  15. System_Manager();
  16. ~System_Manager();
  17. //初始化各个模块,包括雷达,plc,locater,terminor
  18. //1,读取运行环境下setting目录下的laser.prototxt,plc.prototxt,locater.prototxt,terminal.prototxt
  19. //2,根据配置创建雷达,plc,locater,terminal
  20. Error_manager init();
  21. //读取protobuf 配置文件
  22. //file:文件
  23. //parameter:要读取的配置
  24. static bool read_proto_param(std::string file, ::google::protobuf::Message& parameter);
  25. protected:
  26. //plc指令回调函数,当plc收到测量指令后,调用此回调函数
  27. //terminal_id:收到指令的终端编号
  28. //owner:this指针
  29. static Error_manager plc_command_callback(int terminal_id,void* owner);
  30. protected:
  31. std::vector<Laser_base*> m_laser_vector;
  32. std::vector<Terminor_Command_Executor*> m_terminal_vector;
  33. Locater* mp_locater;
  34. Plc_Communicator* mp_plc;
  35. //结果检验工具
  36. Verify_result* mp_verify_result_tool;
  37. ///terminoal 配置
  38. Terminal::Terminor_parameter_all m_terminal_parameter_all;
  39. //万集雷达管理对象
  40. Fence_controller* mp_wj_controller;
  41. };
  42. #endif //SYSTEM_MANAGER_H