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,
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
00934
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950
00951
00952
00953
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 };
01072 };
01073
01074 #endif // LibMultiSense_MultiSenseChannel_hh