MultiSenseChannel.hh
Go to the documentation of this file.
00001 
00037 #ifndef LibMultiSense_MultiSenseChannel_hh
00038 #define LibMultiSense_MultiSenseChannel_hh
00039 
00040 #include <stdint.h>
00041 #include <string>
00042 #include <vector>
00043 
00044 #include "MultiSenseTypes.hh"
00045 
00046 namespace crl {
00047 namespace multisense {
00048 
00069 class MULTISENSE_API Channel {
00070 public:
00071 
00083     static Channel* Create(const std::string& sensorAddress);
00084 
00093     static void Destroy(Channel *instanceP);
00094 
00098     virtual ~Channel() {};
00099 
00108     static const char *statusString(Status status);
00109 
00110 
00150     virtual Status addIsolatedCallback(image::Callback callback,
00151                                        DataSource      imageSourceMask,
00152                                        void           *userDataP=NULL) = 0;
00153 
00178     virtual Status addIsolatedCallback(lidar::Callback callback,
00179                                        void           *userDataP=NULL) = 0;
00180 
00204     virtual Status addIsolatedCallback(pps::Callback   callback,
00205                                        void           *userDataP=NULL) = 0;
00206 
00232     virtual Status addIsolatedCallback(imu::Callback   callback,
00233                                        void           *userDataP=NULL) = 0;
00234 
00235 
00246     virtual Status removeIsolatedCallback(image::Callback callback) = 0;
00247 
00258     virtual Status removeIsolatedCallback(lidar::Callback callback) = 0;
00259 
00270     virtual Status removeIsolatedCallback(pps::Callback   callback) = 0;
00271 
00282     virtual Status removeIsolatedCallback(imu::Callback   callback) = 0;
00283 
00302     virtual void  *reserveCallbackBuffer()                 = 0;
00303 
00316     virtual Status releaseCallbackBuffer(void *referenceP) = 0;
00317 
00339     virtual Status networkTimeSynchronization(bool enabled) = 0;
00340 
00360     virtual Status startStreams     (DataSource mask)  = 0;
00361 
00376     virtual Status stopStreams      (DataSource mask)  = 0;
00377 
00388     virtual Status getEnabledStreams(DataSource& mask) = 0;
00389 
00390 
00418     virtual Status startDirectedStream(const DirectedStream& stream) = 0;
00419 
00447     virtual Status startDirectedStreams(const std::vector<DirectedStream>& streams) = 0;
00448 
00463     virtual Status stopDirectedStream (const DirectedStream& stream) = 0;
00464 
00480     virtual Status getDirectedStreams (std::vector<DirectedStream>& streams) = 0;
00481 
00499     virtual Status maxDirectedStreams (uint32_t& maximum) = 0;
00500 
00513     virtual Status setTriggerSource    (TriggerSource s)                    = 0;
00514 
00529     virtual Status setMotorSpeed       (float rpm)                          = 0;
00530 
00542     virtual Status getLightingConfig   (lighting::Config& c)                = 0;
00543 
00555     virtual Status setLightingConfig   (const lighting::Config& c)          = 0;
00556 
00563     virtual Status getLightingSensorStatus (lighting::SensorStatus& status) = 0;
00564 
00574     virtual Status getSensorVersion    (VersionType& version)               = 0;
00575 
00585     virtual Status getApiVersion       (VersionType& version)               = 0;
00586 
00598     virtual Status getVersionInfo      (system::VersionInfo& v)             = 0;
00599 
00611     virtual Status getImageConfig      (image::Config& c)                   = 0;
00612 
00624     virtual Status setImageConfig      (const image::Config& c)             = 0;
00625 
00638     virtual Status getImageCalibration (image::Calibration& c)              = 0;
00639 
00651     virtual Status setImageCalibration (const image::Calibration& c)        = 0;
00652 
00664     virtual Status getSensorCalibration (image::SensorCalibration& c)              = 0;
00665 
00676         virtual Status setSensorCalibration (const image::SensorCalibration& c)        = 0;
00677 
00687     virtual Status getTransmitDelay (image::TransmitDelay& c)              = 0;
00688 
00699         virtual Status setTransmitDelay (const image::TransmitDelay& c)        = 0;
00700 
00713     virtual Status getLidarCalibration (lidar::Calibration& c)              = 0;
00714 
00726     virtual Status setLidarCalibration (const lidar::Calibration& c)        = 0;
00727 
00744     virtual Status getImageHistogram   (int64_t frameId,  // from last 20 images, left only
00745                                         image::Histogram& histogram)        = 0;
00746 
00747 
00760     virtual Status getDeviceModes      (std::vector<system::DeviceMode>& m) = 0;
00761 
00777     virtual Status getMtu              (int32_t& mtu)                       = 0;
00778 
00788     virtual Status setMtu              (int32_t mtu)                        = 0;
00789 
00802     virtual Status getNetworkConfig    (system::NetworkConfig& c)           = 0;
00803 
00814     virtual Status setNetworkConfig    (const system::NetworkConfig& c)     = 0;
00815 
00828     virtual Status getDeviceInfo       (system::DeviceInfo& info)           = 0;
00829 
00844     virtual Status setDeviceInfo       (const std::string& key,
00845                                         const system::DeviceInfo& i)        = 0;
00846 
00856     virtual Status getDeviceStatus     (system::StatusMessage& status) = 0;
00857 
00866     virtual Status getExternalCalibration (system::ExternalCalibration& calibration) = 0;
00867 
00876     virtual Status setExternalCalibration (const system::ExternalCalibration& calibration) = 0;
00877 
00891     virtual Status flashBitstream      (const std::string& file)            = 0;
00892 
00906     virtual Status flashFirmware       (const std::string& file)            = 0;
00907 
00918     virtual Status verifyBitstream     (const std::string& file)            = 0;
00919 
00930     virtual Status verifyFirmware      (const std::string& file)            = 0;
00931 
00932     //
00933     // IMU configuration.
00934     //
00935     // Detailed info may be queried, and configuration may be queried or set.
00936     //
00937     // See imu::Details and imu::Config classes for more information.
00938     //
00939     // 'samplesPerMessage' is the number of samples (aggregate from all IMU types)
00940     // that the sensor will queue internally before putting on the wire.
00941     // Note that low settings combined with high IMU sensor rates may interfere
00942     // with the acquisition and transmission of image and lidar data.
00943     //
00944     // For setImuConfig():
00945     //
00946     //    Set 'storeSettingsInFlash' to true to have the configuration saved in
00947     //    non-volatile flash on the sensor head.
00948     //
00949     //    Set 'samplesPerMessage' to zero for the sensor to keep its current
00950     //    samplesPerMessage setting.
00951     //
00952     //    IMU streams must be restarted for any configuration changes to be
00953     //    reflected.
00954 
00970     virtual Status getImuInfo          (uint32_t& maxSamplesPerMesage,
00971                                         std::vector<imu::Info>& info)       = 0;
00972 
00989     virtual Status getImuConfig        (uint32_t& samplesPerMessage,
00990                                         std::vector<imu::Config>& c)        = 0;
00991 
01012     virtual Status setImuConfig        (bool storeSettingsInFlash,
01013                                         uint32_t samplesPerMessage,
01014                                         const std::vector<imu::Config>& c)  = 0;
01015 
01033     virtual Status getLargeBufferDetails(uint32_t& bufferCount,
01034                                          uint32_t& bufferSize) = 0;
01055     virtual Status setLargeBuffers      (const std::vector<uint8_t*>& buffers,
01056                                          uint32_t                     bufferSize) = 0;
01057 
01067     virtual Status getLocalUdpPort(uint16_t& port) = 0;
01068 };
01069 
01070 
01071 }; // namespace multisense
01072 }; // namespace crl
01073 
01074 #endif // LibMultiSense_MultiSenseChannel_hh


multisense_lib
Author(s):
autogenerated on Fri Apr 5 2019 02:28:24