MultiSenseChannel.hh
Go to the documentation of this file.
1 
37 #ifndef LibMultiSense_MultiSenseChannel_hh
38 #define LibMultiSense_MultiSenseChannel_hh
39 
40 #include <stdint.h>
41 #include <string>
42 #include <vector>
43 
44 #include "MultiSenseTypes.hh"
45 
46 namespace crl {
47 namespace multisense {
48 
70 public:
71 
83  static Channel* Create(const std::string& sensorAddress);
84 
99  static Channel* Create(const std::string& sensorAddress, const RemoteHeadChannel& cameraId);
111  static Channel* Create(const std::string& sensorAddress, const std::string& interfaceName);
112 
128  static Channel* Create(const std::string& sensorAddress, const RemoteHeadChannel& cameraId, const std::string& interfaceName);
129 
138  static void Destroy(Channel* instanceP);
139 
143  virtual ~Channel() {};
144 
153  static const char *statusString(Status status);
154 
155 
195  virtual Status addIsolatedCallback(image::Callback callback,
196  DataSource imageSourceMask,
197  void *userDataP=NULL) = 0;
198 
223  virtual Status addIsolatedCallback(lidar::Callback callback,
224  void *userDataP=NULL) = 0;
225 
249  virtual Status addIsolatedCallback(pps::Callback callback,
250  void *userDataP=NULL) = 0;
251 
276  virtual Status addIsolatedCallback(imu::Callback callback,
277  void *userDataP=NULL) = 0;
278 
279 
298  virtual Status addIsolatedCallback(compressed_image::Callback callback,
299  DataSource imageSourceMask,
300  void *userDataP=NULL) = 0;
301 
325  virtual Status addIsolatedCallback(ground_surface::Callback callback,
326  void *userDataP=NULL) = 0;
327 
351  virtual Status addIsolatedCallback(apriltag::Callback callback,
352  void *userDataP=NULL) = 0;
353 
364  virtual Status removeIsolatedCallback(image::Callback callback) = 0;
365 
376  virtual Status removeIsolatedCallback(lidar::Callback callback) = 0;
377 
388  virtual Status removeIsolatedCallback(pps::Callback callback) = 0;
389 
400  virtual Status removeIsolatedCallback(imu::Callback callback) = 0;
401 
412  virtual Status removeIsolatedCallback(compressed_image::Callback callback) = 0;
413 
424  virtual Status removeIsolatedCallback(ground_surface::Callback callback) = 0;
425 
436  virtual Status removeIsolatedCallback(apriltag::Callback callback) = 0;
437 
456  virtual void *reserveCallbackBuffer() = 0;
457 
470  virtual Status releaseCallbackBuffer(void *referenceP) = 0;
471 
493  virtual Status networkTimeSynchronization(bool enabled) = 0;
494 
515  virtual Status ptpTimeSynchronization(bool enabled) = 0;
516 
536  virtual Status startStreams (DataSource mask) = 0;
537 
552  virtual Status stopStreams (DataSource mask) = 0;
553 
564  virtual Status getEnabledStreams(DataSource& mask) = 0;
565 
566 
579  virtual Status setTriggerSource (TriggerSource s) = 0;
580 
595  virtual Status setMotorSpeed (float rpm) = 0;
596 
608  virtual Status getLightingConfig (lighting::Config& c) = 0;
609 
621  virtual Status setLightingConfig (const lighting::Config& c) = 0;
622 
629  virtual Status getLightingSensorStatus (lighting::SensorStatus& status) = 0;
630 
640  virtual Status getSensorVersion (VersionType& version) = 0;
641 
651  virtual Status getApiVersion (VersionType& version) = 0;
652 
664  virtual Status getVersionInfo (system::VersionInfo& v) = 0;
665 
677  virtual Status getImageConfig (image::Config& c) = 0;
678 
690  virtual Status setImageConfig (const image::Config& c) = 0;
691 
701  virtual Status setRemoteHeadConfig (const image::RemoteHeadConfig& c) = 0;
702 
713  virtual Status getRemoteHeadConfig (image::RemoteHeadConfig& c) = 0;
714 
726  virtual Status getAuxImageConfig (image::AuxConfig& c) = 0;
727 
739  virtual Status setAuxImageConfig (const image::AuxConfig& c) = 0;
740 
753  virtual Status getImageCalibration (image::Calibration& c) = 0;
754 
766  virtual Status setImageCalibration (const image::Calibration& c) = 0;
767 
777  virtual Status getTransmitDelay (image::TransmitDelay& c) = 0;
778 
789  virtual Status setTransmitDelay (const image::TransmitDelay& c) = 0;
790 
803  virtual Status getLidarCalibration (lidar::Calibration& c) = 0;
804 
816  virtual Status setLidarCalibration (const lidar::Calibration& c) = 0;
817 
834  virtual Status getImageHistogram (int64_t frameId, // from last 20 images, left only
835  image::Histogram& histogram) = 0;
836 
849  virtual Status getPtpStatus(int64_t frameId,
850  system::PtpStatus &ptpStatus) = 0;
851 
852 
865  virtual Status getDeviceModes (std::vector<system::DeviceMode>& m) = 0;
866 
882  virtual Status getMtu (int32_t& mtu) = 0;
883 
896  virtual Status getMotorPos (int32_t& mtu) = 0;
897 
907  virtual Status setMtu (int32_t mtu) = 0;
908 
921  virtual Status getNetworkConfig (system::NetworkConfig& c) = 0;
922 
933  virtual Status setNetworkConfig (const system::NetworkConfig& c) = 0;
934 
947  virtual Status getDeviceInfo (system::DeviceInfo& info) = 0;
948 
963  virtual Status setDeviceInfo (const std::string& key,
964  const system::DeviceInfo& i) = 0;
965 
975  virtual Status getDeviceStatus (system::StatusMessage& status) = 0;
976 
985  virtual Status getExternalCalibration (system::ExternalCalibration& calibration) = 0;
986 
995  virtual Status setExternalCalibration (const system::ExternalCalibration& calibration) = 0;
996 
1005  virtual Status setGroundSurfaceParams (const system::GroundSurfaceParams& params) = 0;
1006 
1015  virtual Status setApriltagParams (const system::ApriltagParams& params) = 0;
1016 
1030  virtual Status flashBitstream (const std::string& file) = 0;
1031 
1045  virtual Status flashFirmware (const std::string& file) = 0;
1046 
1057  virtual Status verifyBitstream (const std::string& file) = 0;
1058 
1069  virtual Status verifyFirmware (const std::string& file) = 0;
1070 
1071  //
1072  // IMU configuration.
1073  //
1074  // Detailed info may be queried, and configuration may be queried or set.
1075  //
1076  // See imu::Details and imu::Config classes for more information.
1077  //
1078  // 'samplesPerMessage' is the number of samples (aggregate from all IMU types)
1079  // that the sensor will queue internally before putting on the wire.
1080  // Note that low settings combined with high IMU sensor rates may interfere
1081  // with the acquisition and transmission of image and lidar data.
1082  //
1083  // For setImuConfig():
1084  //
1085  // Set 'storeSettingsInFlash' to true to have the configuration saved in
1086  // non-volatile flash on the sensor head.
1087  //
1088  // Set 'samplesPerMessage' to zero for the sensor to keep its current
1089  // samplesPerMessage setting.
1090  //
1091  // IMU streams must be restarted for any configuration changes to be
1092  // reflected.
1093 
1109  virtual Status getImuInfo (uint32_t& maxSamplesPerMesage,
1110  std::vector<imu::Info>& info) = 0;
1111 
1128  virtual Status getImuConfig (uint32_t& samplesPerMessage,
1129  std::vector<imu::Config>& c) = 0;
1130 
1151  virtual Status setImuConfig (bool storeSettingsInFlash,
1152  uint32_t samplesPerMessage,
1153  const std::vector<imu::Config>& c) = 0;
1154 
1172  virtual Status getLargeBufferDetails(uint32_t& bufferCount,
1173  uint32_t& bufferSize) = 0;
1194  virtual Status setLargeBuffers (const std::vector<uint8_t*>& buffers,
1195  uint32_t bufferSize) = 0;
1196 
1206  virtual Status getLocalUdpPort(uint16_t& port) = 0;
1207 };
1208 
1209 
1210 } // namespace multisense
1211 } // namespace crl
1212 
1213 #endif // LibMultiSense_MultiSenseChannel_hh
void(* Callback)(const Header &header, void *userDataP)
std::string * frameId(M &m)
void(* Callback)(const Header &header, void *userDataP)
void(* Callback)(const Header &header, void *userDataP)
void(* Callback)(const Header &header, void *userDataP)
Definition: channel.cc:58
#define MULTISENSE_API
Definition: Portability.hh:87
void(* Callback)(const Header &header, void *userDataP)
void(* Callback)(const Header &header, void *userDataP)
void(* Callback)(const Header &header, void *userDataP)


multisense_lib
Author(s):
autogenerated on Sat Jun 24 2023 03:01:21