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
00501
00502
00503
00516 virtual Status setTriggerSource (TriggerSource s) = 0;
00517
00532 virtual Status setMotorSpeed (float rpm) = 0;
00533
00545 virtual Status getLightingConfig (lighting::Config& c) = 0;
00546
00558 virtual Status setLightingConfig (const lighting::Config& c) = 0;
00559
00569 virtual Status getSensorVersion (VersionType& version) = 0;
00570
00580 virtual Status getApiVersion (VersionType& version) = 0;
00581
00593 virtual Status getVersionInfo (system::VersionInfo& v) = 0;
00594
00606 virtual Status getImageConfig (image::Config& c) = 0;
00607
00619 virtual Status setImageConfig (const image::Config& c) = 0;
00620
00633 virtual Status getImageCalibration (image::Calibration& c) = 0;
00634
00646 virtual Status setImageCalibration (const image::Calibration& c) = 0;
00647
00660 virtual Status getLidarCalibration (lidar::Calibration& c) = 0;
00661
00673 virtual Status setLidarCalibration (const lidar::Calibration& c) = 0;
00674
00691 virtual Status getImageHistogram (int64_t frameId,
00692 image::Histogram& histogram) = 0;
00693
00694
00707 virtual Status getDeviceModes (std::vector<system::DeviceMode>& m) = 0;
00708
00724 virtual Status getMtu (int32_t& mtu) = 0;
00725
00735 virtual Status setMtu (int32_t mtu) = 0;
00736
00749 virtual Status getNetworkConfig (system::NetworkConfig& c) = 0;
00750
00761 virtual Status setNetworkConfig (const system::NetworkConfig& c) = 0;
00762
00775 virtual Status getDeviceInfo (system::DeviceInfo& info) = 0;
00776
00791 virtual Status setDeviceInfo (const std::string& key,
00792 const system::DeviceInfo& i) = 0;
00793
00807 virtual Status flashBitstream (const std::string& file) = 0;
00808
00822 virtual Status flashFirmware (const std::string& file) = 0;
00823
00834 virtual Status verifyBitstream (const std::string& file) = 0;
00835
00846 virtual Status verifyFirmware (const std::string& file) = 0;
00847
00848
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870
00886 virtual Status getImuInfo (uint32_t& maxSamplesPerMesage,
00887 std::vector<imu::Info>& info) = 0;
00888
00905 virtual Status getImuConfig (uint32_t& samplesPerMessage,
00906 std::vector<imu::Config>& c) = 0;
00907
00928 virtual Status setImuConfig (bool storeSettingsInFlash,
00929 uint32_t samplesPerMessage,
00930 const std::vector<imu::Config>& c) = 0;
00931
00949 virtual Status getLargeBufferDetails(uint32_t& bufferCount,
00950 uint32_t& bufferSize) = 0;
00971 virtual Status setLargeBuffers (const std::vector<uint8_t*>& buffers,
00972 uint32_t bufferSize) = 0;
00973
00983 virtual Status getLocalUdpPort(uint16_t& port) = 0;
00984 };
00985
00986
00987 };
00988 };
00989
00990 #endif // LibMultiSense_MultiSenseChannel_hh