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 
93  static void Destroy(Channel *instanceP);
94 
98  virtual ~Channel() {};
99 
108  static const char *statusString(Status status);
109 
110 
150  virtual Status addIsolatedCallback(image::Callback callback,
151  DataSource imageSourceMask,
152  void *userDataP=NULL) = 0;
153 
178  virtual Status addIsolatedCallback(lidar::Callback callback,
179  void *userDataP=NULL) = 0;
180 
204  virtual Status addIsolatedCallback(pps::Callback callback,
205  void *userDataP=NULL) = 0;
206 
232  virtual Status addIsolatedCallback(imu::Callback callback,
233  void *userDataP=NULL) = 0;
234 
235 
246  virtual Status removeIsolatedCallback(image::Callback callback) = 0;
247 
258  virtual Status removeIsolatedCallback(lidar::Callback callback) = 0;
259 
270  virtual Status removeIsolatedCallback(pps::Callback callback) = 0;
271 
282  virtual Status removeIsolatedCallback(imu::Callback callback) = 0;
283 
302  virtual void *reserveCallbackBuffer() = 0;
303 
316  virtual Status releaseCallbackBuffer(void *referenceP) = 0;
317 
339  virtual Status networkTimeSynchronization(bool enabled) = 0;
340 
361  virtual Status ptpTimeSynchronization(bool enabled) = 0;
362 
382  virtual Status startStreams (DataSource mask) = 0;
383 
398  virtual Status stopStreams (DataSource mask) = 0;
399 
410  virtual Status getEnabledStreams(DataSource& mask) = 0;
411 
412 
435  virtual Status startDirectedStream(const DirectedStream& stream) = 0;
436 
459  virtual Status startDirectedStreams(const std::vector<DirectedStream>& streams) = 0;
460 
470  virtual Status stopDirectedStream (const DirectedStream& stream) = 0;
471 
482  virtual Status getDirectedStreams (std::vector<DirectedStream>& streams) = 0;
483 
496  virtual Status maxDirectedStreams (uint32_t& maximum) = 0;
497 
510  virtual Status setTriggerSource (TriggerSource s) = 0;
511 
526  virtual Status setMotorSpeed (float rpm) = 0;
527 
539  virtual Status getLightingConfig (lighting::Config& c) = 0;
540 
552  virtual Status setLightingConfig (const lighting::Config& c) = 0;
553 
560  virtual Status getLightingSensorStatus (lighting::SensorStatus& status) = 0;
561 
571  virtual Status getSensorVersion (VersionType& version) = 0;
572 
582  virtual Status getApiVersion (VersionType& version) = 0;
583 
595  virtual Status getVersionInfo (system::VersionInfo& v) = 0;
596 
608  virtual Status getImageConfig (image::Config& c) = 0;
609 
621  virtual Status setImageConfig (const image::Config& c) = 0;
622 
635  virtual Status getImageCalibration (image::Calibration& c) = 0;
636 
648  virtual Status setImageCalibration (const image::Calibration& c) = 0;
649 
661  virtual Status getSensorCalibration (image::SensorCalibration& c) = 0;
662 
673  virtual Status setSensorCalibration (const image::SensorCalibration& c) = 0;
674 
684  virtual Status getTransmitDelay (image::TransmitDelay& c) = 0;
685 
696  virtual Status setTransmitDelay (const image::TransmitDelay& c) = 0;
697 
710  virtual Status getLidarCalibration (lidar::Calibration& c) = 0;
711 
723  virtual Status setLidarCalibration (const lidar::Calibration& c) = 0;
724 
741  virtual Status getImageHistogram (int64_t frameId, // from last 20 images, left only
742  image::Histogram& histogram) = 0;
743 
756  virtual Status getPtpStatus(int64_t frameId,
757  system::PtpStatus &ptpStatus) = 0;
758 
759 
772  virtual Status getDeviceModes (std::vector<system::DeviceMode>& m) = 0;
773 
789  virtual Status getMtu (int32_t& mtu) = 0;
790 
803  virtual Status getMotorPos (int32_t& mtu) = 0;
804 
814  virtual Status setMtu (int32_t mtu) = 0;
815 
828  virtual Status getNetworkConfig (system::NetworkConfig& c) = 0;
829 
840  virtual Status setNetworkConfig (const system::NetworkConfig& c) = 0;
841 
854  virtual Status getDeviceInfo (system::DeviceInfo& info) = 0;
855 
870  virtual Status setDeviceInfo (const std::string& key,
871  const system::DeviceInfo& i) = 0;
872 
882  virtual Status getDeviceStatus (system::StatusMessage& status) = 0;
883 
892  virtual Status getExternalCalibration (system::ExternalCalibration& calibration) = 0;
893 
902  virtual Status setExternalCalibration (const system::ExternalCalibration& calibration) = 0;
903 
917  virtual Status flashBitstream (const std::string& file) = 0;
918 
932  virtual Status flashFirmware (const std::string& file) = 0;
933 
944  virtual Status verifyBitstream (const std::string& file) = 0;
945 
956  virtual Status verifyFirmware (const std::string& file) = 0;
957 
958  //
959  // IMU configuration.
960  //
961  // Detailed info may be queried, and configuration may be queried or set.
962  //
963  // See imu::Details and imu::Config classes for more information.
964  //
965  // 'samplesPerMessage' is the number of samples (aggregate from all IMU types)
966  // that the sensor will queue internally before putting on the wire.
967  // Note that low settings combined with high IMU sensor rates may interfere
968  // with the acquisition and transmission of image and lidar data.
969  //
970  // For setImuConfig():
971  //
972  // Set 'storeSettingsInFlash' to true to have the configuration saved in
973  // non-volatile flash on the sensor head.
974  //
975  // Set 'samplesPerMessage' to zero for the sensor to keep its current
976  // samplesPerMessage setting.
977  //
978  // IMU streams must be restarted for any configuration changes to be
979  // reflected.
980 
996  virtual Status getImuInfo (uint32_t& maxSamplesPerMesage,
997  std::vector<imu::Info>& info) = 0;
998 
1015  virtual Status getImuConfig (uint32_t& samplesPerMessage,
1016  std::vector<imu::Config>& c) = 0;
1017 
1038  virtual Status setImuConfig (bool storeSettingsInFlash,
1039  uint32_t samplesPerMessage,
1040  const std::vector<imu::Config>& c) = 0;
1041 
1059  virtual Status getLargeBufferDetails(uint32_t& bufferCount,
1060  uint32_t& bufferSize) = 0;
1081  virtual Status setLargeBuffers (const std::vector<uint8_t*>& buffers,
1082  uint32_t bufferSize) = 0;
1083 
1093  virtual Status getLocalUdpPort(uint16_t& port) = 0;
1094 };
1095 
1096 
1097 } // namespace multisense
1098 } // namespace crl
1099 
1100 #endif // LibMultiSense_MultiSenseChannel_hh
void(* Callback)(const Header &header, void *userDataP)
std::string * frameId(M &m)
void(* Callback)(const Header &header, void *userDataP)
Definition: channel.cc:56
#define MULTISENSE_API
Definition: Portability.hh:89
void(* Callback)(const Header &header, void *userDataP)
void(* Callback)(const Header &header, void *userDataP)


multisense_lib
Author(s):
autogenerated on Sun Mar 14 2021 02:34:50