lidar_driver.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifndef LIDAR_DRIVER_H_
  2. #define LIDAR_DRIVER_H_
  3. #include <free_lidar/lidar_struct.h>
  4. #include <string>
  5. #include <deque>
  6. namespace free_optics {
  7. class LidarDriver
  8. {
  9. public:
  10. LidarDriver() {};
  11. virtual ~LidarDriver() {};
  12. virtual bool connect(const std::string hostname, int port) {};
  13. virtual bool connect(const std::string portname) {};
  14. virtual void disconnect()=0;
  15. bool isConnected() {return is_connected_;}
  16. virtual bool getDeviceState(uint8_t &state)=0;
  17. virtual bool getDeviceName(std::string &name)=0;
  18. virtual bool getFirmwareVersion(uint32_t &version)=0;
  19. virtual bool getSerialNumber(uint32_t &sn)=0;
  20. virtual bool login(uint8_t &state)=0;
  21. virtual bool getScanAngle(int32_t &start_angle, int32_t &stop_angle)=0;
  22. virtual bool setScanAngle(int32_t start_angle, int32_t stop_angle)=0;
  23. virtual bool setScanConfig(uint16_t frequency, uint16_t resolution)=0;
  24. virtual bool getMeasureRange(float &range_min, float &range_max)=0;
  25. virtual bool getScanData(uint8_t state)=0;
  26. virtual bool scanDataReceiver()=0;
  27. virtual bool getBaudrate() {};
  28. ScanData getFullScan()
  29. {
  30. ScanData data;
  31. if (scan_data_buf_.size() > 0) {
  32. data = scan_data_buf_[0];
  33. scan_data_buf_.pop_front();
  34. }
  35. return data;
  36. };
  37. std::size_t getFullScanAvailable() const
  38. {
  39. return scan_data_buf_.size();
  40. };
  41. bool is_full_;
  42. bool is_connected_;
  43. bool is_capturing_;
  44. ScanData scan_data_;
  45. std::deque<ScanData> scan_data_buf_;
  46. std::deque<uint8_t> data;
  47. uint16_t byte_count_;
  48. };
  49. }
  50. #endif