lidar_manager.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "lidar_manager.h"
  2. Error_manager ClampLidarManager::Init(const std::string &file) {
  3. Error_manager ret = loadProtobufFile(file, m_config);
  4. if (ret != SUCCESS) {
  5. LOG(WARNING) << ret.to_string();
  6. return ret;
  7. } else {
  8. LOG(INFO) << "\n======================================== "
  9. "Load Clamp Lida Config Success "
  10. "========================================\n";
  11. }
  12. for (auto &device: m_config.devices()) {
  13. Point2D_tool::Polar_coordinates_box t_polar_coordinates_box;
  14. Point2D_tool::Point2D_transform t_point2D_transform;
  15. t_polar_coordinates_box.angle_min = device.angle_min();
  16. t_polar_coordinates_box.angle_max = device.angle_max();
  17. t_polar_coordinates_box.distance_min = device.range_min();
  18. t_polar_coordinates_box.distance_max = device.range_max();
  19. Point2D_tool::Point2D_box t_point2D_box;
  20. t_point2D_box.x_min = device.scan_box_limit().minx();
  21. t_point2D_box.x_max = device.scan_box_limit().maxx();
  22. t_point2D_box.y_min = device.scan_box_limit().miny();
  23. t_point2D_box.y_max = device.scan_box_limit().maxy();
  24. auto *wj = new Wanji_716N_lidar_device();
  25. Error_manager code = wj->init(device.ip_address(),
  26. device.port(),
  27. t_polar_coordinates_box,
  28. t_point2D_box,
  29. t_point2D_transform);
  30. if (code != SUCCESS) {
  31. LOG(ERROR) << code.get_error_description();
  32. return code;
  33. } else {
  34. mp_wj_device.insert(std::pair<std::string, Wanji_716N_lidar_device*>(device.ip_address(), wj));
  35. // clamps[i].safety_statu.set_timeout(0.3);
  36. }
  37. }
  38. LOG(INFO) << "\n======================================== "
  39. "Clamp Lida Config Init End "
  40. "========================================\n";
  41. for (auto &device: mp_wj_device) {
  42. std::thread(&ClampLidarManager::thread_func, this, device.first);
  43. }
  44. return {};
  45. }
  46. void ClampLidarManager::thread_func(const std::string &ip_address) {
  47. // while (true) {
  48. // clamp->mutex.lock();
  49. // Safety_status safety_t;
  50. // if (run(&(clamp->lidar), &(clamp->detector), &safety_t)) {
  51. // clamp->safety_statu = safety_t;
  52. // }
  53. // clamp->mutex.unlock();
  54. //
  55. // usleep(100 * 1000);
  56. // }
  57. }