LibMultiSense/include/MultiSense/MultiSenseChannel.hh
Go to the documentation of this file.
1 
37 #pragma once
38 
39 #include <functional>
40 #include <optional>
41 
42 #include "MultiSenseTypes.hh"
43 
44 namespace multisense {
45 
47 public:
53  {
57  LEGACY
58  };
59 
66  {
70  size_t num_small_buffers = 100;
74  size_t small_buffer_size = 1500;
78  size_t num_large_buffers = 16;
82  size_t large_buffer_size = 1920*1200*3;
83  };
84 
85  struct Config
86  {
90  std::string ip_address = "10.66.171.21";
91 
97  std::optional<int16_t> mtu = static_cast<uint16_t>(1500);
98 
103  std::optional<std::chrono::milliseconds> receive_timeout = std::chrono::milliseconds(500);
104 
109  uint16_t command_port{9001};
110 
114  std::optional<std::string> interface = std::nullopt;
115 
120  ReceiveBufferConfig receive_buffer_configuration{};
121 
125  bool connect_on_initialization = true;
126  };
127 
132  static std::unique_ptr<Channel> create(const Config &config,
133  const ChannelImplementation &impl = ChannelImplementation::LEGACY);
134 
135  Channel() = default;
136 
140  Channel(const Channel&) = delete;
141  Channel& operator=(const Channel&) = delete;
142 
146  Channel(Channel&&) noexcept = default;
147  Channel& operator=(Channel&&) noexcept = default;
148 
149  virtual ~Channel() = default;
150 
154  virtual Status start_streams(const std::vector<DataSource> &sources) = 0;
155 
160  virtual Status stop_streams(const std::vector<DataSource> &sources) = 0;
161 
165  virtual void add_image_frame_callback(std::function<void(const ImageFrame&)> callback) = 0;
166 
170  virtual void add_imu_frame_callback(std::function<void(const ImuFrame&)> callback) = 0;
171 
175  virtual Status connect(const Config &config) = 0;
176 
180  virtual void disconnect() = 0;
181 
190  virtual std::optional<ImageFrame> get_next_image_frame() = 0;
191 
200  virtual std::optional<ImuFrame> get_next_imu_frame() = 0;
201 
205  virtual MultiSenseConfig get_config() = 0;
206 
210  virtual Status set_config(const MultiSenseConfig &config) = 0;
211 
216  virtual StereoCalibration get_calibration() = 0;
217 
222  virtual Status set_calibration(const StereoCalibration &calibration) = 0;
223 
227  virtual MultiSenseInfo get_info() = 0;
228 
233  virtual Status set_device_info(const MultiSenseInfo::DeviceInfo &device_info, const std::string &key) = 0;
234 
238  virtual std::optional<MultiSenseStatus> get_system_status() = 0;
239 
247  virtual Status set_network_config(const MultiSenseInfo::NetworkInfo &config,
248  const std::optional<std::string> &broadcast_interface) = 0;
249 };
250 
251 }
multisense::MultiSenseConfig
Complete configuration object for configuring the MultiSense. Can be updated during camera operation.
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:478
multisense::StereoCalibration
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:166
multisense::Status
Status
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:67
multisense::Channel::ChannelImplementation
ChannelImplementation
Identifiers for the different Channel implementations. Used for selecting a implementation at runtime...
Definition: LibMultiSense/include/MultiSense/MultiSenseChannel.hh:52
multisense::ImageFrame
A frame containing multiple images (indexed by DataSource).
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:300
MultiSenseTypes.hh
multisense::Channel::Config
Definition: LibMultiSense/include/MultiSense/MultiSenseChannel.hh:85
multisense::ImuFrame
A collection of IMU samples from the camera.
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:418
multisense::DataSource
DataSource
Identifies which camera or data source the image is from.
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:83
multisense::Channel
Definition: LibMultiSense/include/MultiSense/MultiSenseChannel.hh:46
multisense
Definition: factory.cc:39
MULTISENSE_API
#define MULTISENSE_API
Definition: Legacy/include/MultiSense/details/utility/Portability.hh:87
std
multisense::MultiSenseInfo
Static status info for the MultiSense. Will not change during camera operation.
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:1262
multisense::Channel::ReceiveBufferConfig
Certain implementations may use a fixed set of internal buffers to manage incoming camera data....
Definition: LibMultiSense/include/MultiSense/MultiSenseChannel.hh:65
change_ip_utility.default
default
Definition: change_ip_utility.py:80
multisense::MultiSenseStatus
Consolidated status information which can be queried on demand from the MultiSense....
Definition: LibMultiSense/include/MultiSense/MultiSenseTypes.hh:1082


multisense_lib
Author(s):
autogenerated on Thu Apr 17 2025 02:49:09