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 
360  virtual Status startStreams (DataSource mask) = 0;
361 
376  virtual Status stopStreams (DataSource mask) = 0;
377 
388  virtual Status getEnabledStreams(DataSource& mask) = 0;
389 
390 
418  virtual Status startDirectedStream(const DirectedStream& stream) = 0;
419 
447  virtual Status startDirectedStreams(const std::vector<DirectedStream>& streams) = 0;
448 
463  virtual Status stopDirectedStream (const DirectedStream& stream) = 0;
464 
480  virtual Status getDirectedStreams (std::vector<DirectedStream>& streams) = 0;
481 
499  virtual Status maxDirectedStreams (uint32_t& maximum) = 0;
500 
513  virtual Status setTriggerSource (TriggerSource s) = 0;
514 
529  virtual Status setMotorSpeed (float rpm) = 0;
530 
542  virtual Status getLightingConfig (lighting::Config& c) = 0;
543 
555  virtual Status setLightingConfig (const lighting::Config& c) = 0;
556 
563  virtual Status getLightingSensorStatus (lighting::SensorStatus& status) = 0;
564 
574  virtual Status getSensorVersion (VersionType& version) = 0;
575 
585  virtual Status getApiVersion (VersionType& version) = 0;
586 
598  virtual Status getVersionInfo (system::VersionInfo& v) = 0;
599 
611  virtual Status getImageConfig (image::Config& c) = 0;
612 
624  virtual Status setImageConfig (const image::Config& c) = 0;
625 
638  virtual Status getImageCalibration (image::Calibration& c) = 0;
639 
651  virtual Status setImageCalibration (const image::Calibration& c) = 0;
652 
664  virtual Status getSensorCalibration (image::SensorCalibration& c) = 0;
665 
676  virtual Status setSensorCalibration (const image::SensorCalibration& c) = 0;
677 
687  virtual Status getTransmitDelay (image::TransmitDelay& c) = 0;
688 
699  virtual Status setTransmitDelay (const image::TransmitDelay& c) = 0;
700 
713  virtual Status getLidarCalibration (lidar::Calibration& c) = 0;
714 
726  virtual Status setLidarCalibration (const lidar::Calibration& c) = 0;
727 
744  virtual Status getImageHistogram (int64_t frameId, // from last 20 images, left only
745  image::Histogram& histogram) = 0;
746 
747 
760  virtual Status getDeviceModes (std::vector<system::DeviceMode>& m) = 0;
761 
777  virtual Status getMtu (int32_t& mtu) = 0;
778 
788  virtual Status setMtu (int32_t mtu) = 0;
789 
802  virtual Status getNetworkConfig (system::NetworkConfig& c) = 0;
803 
814  virtual Status setNetworkConfig (const system::NetworkConfig& c) = 0;
815 
828  virtual Status getDeviceInfo (system::DeviceInfo& info) = 0;
829 
844  virtual Status setDeviceInfo (const std::string& key,
845  const system::DeviceInfo& i) = 0;
846 
856  virtual Status getDeviceStatus (system::StatusMessage& status) = 0;
857 
866  virtual Status getExternalCalibration (system::ExternalCalibration& calibration) = 0;
867 
876  virtual Status setExternalCalibration (const system::ExternalCalibration& calibration) = 0;
877 
891  virtual Status flashBitstream (const std::string& file) = 0;
892 
906  virtual Status flashFirmware (const std::string& file) = 0;
907 
918  virtual Status verifyBitstream (const std::string& file) = 0;
919 
930  virtual Status verifyFirmware (const std::string& file) = 0;
931 
932  //
933  // IMU configuration.
934  //
935  // Detailed info may be queried, and configuration may be queried or set.
936  //
937  // See imu::Details and imu::Config classes for more information.
938  //
939  // 'samplesPerMessage' is the number of samples (aggregate from all IMU types)
940  // that the sensor will queue internally before putting on the wire.
941  // Note that low settings combined with high IMU sensor rates may interfere
942  // with the acquisition and transmission of image and lidar data.
943  //
944  // For setImuConfig():
945  //
946  // Set 'storeSettingsInFlash' to true to have the configuration saved in
947  // non-volatile flash on the sensor head.
948  //
949  // Set 'samplesPerMessage' to zero for the sensor to keep its current
950  // samplesPerMessage setting.
951  //
952  // IMU streams must be restarted for any configuration changes to be
953  // reflected.
954 
970  virtual Status getImuInfo (uint32_t& maxSamplesPerMesage,
971  std::vector<imu::Info>& info) = 0;
972 
989  virtual Status getImuConfig (uint32_t& samplesPerMessage,
990  std::vector<imu::Config>& c) = 0;
991 
1012  virtual Status setImuConfig (bool storeSettingsInFlash,
1013  uint32_t samplesPerMessage,
1014  const std::vector<imu::Config>& c) = 0;
1015 
1033  virtual Status getLargeBufferDetails(uint32_t& bufferCount,
1034  uint32_t& bufferSize) = 0;
1055  virtual Status setLargeBuffers (const std::vector<uint8_t*>& buffers,
1056  uint32_t bufferSize) = 0;
1057 
1067  virtual Status getLocalUdpPort(uint16_t& port) = 0;
1068 };
1069 
1070 
1071 }; // namespace multisense
1072 }; // namespace crl
1073 
1074 #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:76
void(* Callback)(const Header &header, void *userDataP)
void(* Callback)(const Header &header, void *userDataP)


multisense_lib
Author(s):
autogenerated on Sat Apr 6 2019 02:16:46