xvsdk  3.2.0
xv-sdk.h
1 #pragma once
2 
3 #include <map>
4 #include <functional>
5 #if defined( __ANDROID__ )
6 #include "jni.h"
7 #endif
8 #include "xv-types.h"
9 
10 namespace xv {
11 
12 class Device;
13 
14 
18 template <typename T>
19 class Stream {
20 public:
21 
22  using Data = T;
23 
27  virtual bool start() = 0;
31  virtual bool stop() = 0;
32 
36  virtual int registerCallback(std::function<void (T)>) = 0;
40  virtual bool unregisterCallback(int callbackId) = 0;
41 
42 };
43 
47 class Camera {
48 public:
49 
55  virtual const std::vector<Calibration>& calibration();
56 
57  // TODO add more settings like AWB in later release
58  virtual bool setResolution( int resolution );
59  virtual bool setFramerate( float framerate );
60  // aecMode 0:auto 1:manual
67  virtual bool setExposure( int aecMode = 0, int exposureGain = 0, float exposureTimeMs = 0.0 );
68 
73  virtual bool setBrightness( int brightness );
74 
75  virtual ~Camera(){}
76 };
77 
81 class ImuSensor : virtual public Stream<Imu const &> {
82 public:
83 
84  virtual ~ImuSensor(){}
85 };
86 
128 class EventStream : virtual public Stream<Event const &> {
129 public:
130 
131  virtual ~EventStream(){}
132 };
133 
137 class OrientationStream : virtual public Stream<Orientation const &> {
138 public:
139 
149  virtual bool get(Orientation& pose, double prediction = 0.) = 0;
150 
160  virtual bool getAt(Orientation& pose, double timestamp) = 0;
161  virtual ~OrientationStream(){}
162 };
163 
169 class FisheyeCameras : virtual public Stream<FisheyeImages const &>, virtual public Camera {
170 public:
171  virtual int registerAntiDistortionCallback(std::function<void (FisheyeImages const &)> cb ) = 0;
172  virtual bool unregisterAntiDistortionCallback( int callbackID ) = 0;
173 
174  virtual bool checkAntiDistortionSupport() = 0;
175 
176  virtual ~FisheyeCameras(){}
177 };
178 
182 class Display {
183 public:
184 
190  virtual const std::vector<Calibration>& calibration() = 0;
191 
195  virtual bool open() = 0;
196 
200  virtual bool close() = 0;
201 
207  virtual bool setBrightnessLevel( int level ) = 0;
208 };
209 
213 class ColorCamera : virtual public Stream<ColorImage const &>, virtual public Camera {
214 public:
215  enum class Resolution {
216  RGB_1920x1080 = 0,
217  RGB_1280x720 = 1,
218  RGB_640x480 = 2,
219  RGB_320x240 = 3,
220  RGB_2560x1920 = 4,
221  RGB_3840x2160 = 5,
222  };
223 
224  enum class Mode {
225  AF,
226  MF,
227  Unknown
228  };
229 
230  virtual bool setCompensation(int compensation) = 0;
231  virtual bool setAwb(int awb) = 0;
232  virtual bool setResolution( const Resolution &resolution ) = 0;
233  virtual bool isSupportAFRGB() = 0;
234  virtual bool setRGBMode(const Mode &mode) = 0;
235  virtual bool setRGBFocalDistance(unsigned char distance) = 0;
236  virtual bool startCameras(int camIndex = 1) = 0;
237  virtual bool stopCameras(int camIndex = 1) = 0;
238  virtual bool setCamsResolution(const xv::ColorCamera::Resolution & resolution, int camIndex = 1) = 0;
239  virtual bool setCamsFramerate(float framerate, int camIndex = 1) = 0;
240  virtual int registerCam2Callback(std::function<void (ColorImage const &)> c ) = 0;
241  virtual bool unregisterCam2Callback( int callbackID ) = 0;
242 
243  virtual ~ColorCamera(){}
244 };
245 
249 class TofCamera : virtual public Stream<DepthImage const &>, virtual public Camera {
250 public:
251  enum class StreamMode { DepthOnly = 0, CloudOnly, DepthAndCloud, None, CloudOnLeftHandSlam};
252  enum class DistanceMode { Short = 0, Middle, Long };
253  enum class SonyTofLibMode { IQMIX_DF ,IQMIX_SF, LABELIZE_DF ,LABELIZE_SF ,M2MIX_DF ,M2MIX_SF };
254  enum class Framerate{ FPS_5 ,FPS_10 ,FPS_15 ,FPS_20 ,FPS_25 ,FPS_30 };
255  enum class Resolution{ Unknown = -1,VGA = 0 ,QVGA ,HQVGA};
256  enum class Manufacturer {Unknown = -1, Pmd = 0, Sony};
257 
261  virtual int registerColorDepthImageCallback(std::function<void(const DepthColorImage&)>) = 0;
262  virtual bool unregisterColorDepthImageCallback(int callbackId) = 0;
263 
269  virtual std::shared_ptr<PointCloud> depthImageToPointCloud(DepthImage const &) const = 0;
270 
275  virtual std::shared_ptr<PointCloud> formatPmdCloudToPointCloudStruct(DepthImage const &) const = 0;
276 
280  virtual bool setStreamMode(StreamMode mode) = 0;
281 
292  virtual bool setDistanceMode(DistanceMode mode) = 0;
293 
298  virtual Resolution getResolution() = 0;
299 
304  virtual Manufacturer getManufacturer() = 0;
305 
316  virtual bool setLibWorkMode(SonyTofLibMode mode) = 0;
317 
321  virtual bool enableTofIr(bool enable) = 0;
322 
326  virtual bool setMode(int mode) = 0;
327 
331  virtual bool setSonyTofSetting(SonyTofLibMode mode, Resolution resolution, Framerate frameRate) = 0;
332 
333  virtual void setTofIrGamma(double gamma) = 0;
334 
338  virtual void setFilterFile(std::string filePath) = 0;
339 
340  virtual ~TofCamera() {}
341 };
342 
348 class Slam : virtual public Stream<Pose const&> {
349 
350 public:
351  enum class Mode { Edge = 0, Mixed, EdgeFusionOnHost };
352 
357  virtual Mode mode() const = 0;
358 
362  virtual bool start() override = 0;
363 
369  virtual bool start(Mode mode) = 0;
370 
375  virtual bool reset() = 0;
376 
381  virtual bool pause() = 0;
382 
387  virtual bool resume() = 0;
388 
399  virtual bool getPose(Pose& pose, double prediction = 0.) = 0;
400 
411  virtual bool getPoseAt(Pose& pose, double timestamp) = 0;
412 
417  virtual int registerVisualPoseCallback(std::function<void (const Pose&)> lostCallback) = 0;
418  virtual bool unregisterVisualPoseCallback(int callbackId) = 0;
419  #define XVSDK_HAS_SLAM_VISUAL_POSE_CALLBACK
420 
425  virtual int registerLostCallback(std::function<void ()> lostCallback) = 0;
426  virtual bool unregisterLostCallback(int callbackId) = 0;
427 
435  virtual int registerStereoPlanesCallback(std::function<void (std::shared_ptr<const std::vector<Plane>>)> planeCallback) = 0;
436  virtual bool unregisterStereoPlanesCallback(int callbackId) = 0;
437  virtual bool clearStereoPlanes() = 0;
438 
452  virtual int registerTofPlanesCallback(std::function<void (std::shared_ptr<const std::vector<Plane>>)> planeCallback) = 0;
453  virtual bool unregisterTofPlanesCallback(int callbackId) = 0;
454  virtual bool clearTofPlanes() = 0;
455 
456 
461  virtual int registerMapCallback(std::function<void (std::shared_ptr<const xv::SlamMap>)> mapCallback) = 0;
462  virtual bool unregisterMapCallback(int callbackId) = 0;
463 
474  virtual bool loadMapAndSwitchToCslam(std::streambuf& mapStream, std::function<void(int /* status of load map */)> done_callback, std::function<void(float)> localized_on_reference_map={}) = 0;
485  virtual bool saveMapAndSwitchToCslam(std::streambuf& mapStream, std::function<void(int /* status of save map */, int /* map quality */)> done_callback, std::function<void(float)> localized_on_reference_map={}) = 0;
486 
493  virtual Pose poseScaleCalibration(const Pose& pose) = 0;
494 
498  virtual void poseReset() = 0;
499 
500  virtual ~Slam() {}
501 };
502 
506 class ObjectDetector : virtual public Stream<std::vector<Object> const&> {
507 public:
508  enum class Source { LEFT = 0, RIGHT, RGB, TOF };
509 
510  virtual bool setDescriptor( const std::string &filepath ) = 0;
511  virtual bool setModel( const std::string &filepath ) = 0;
512  virtual bool setSource( const Source &source ) = 0;
513  virtual xv::ObjectDetector::Source getSource() const = 0;
514  virtual xv::ObjectDescriptor getDescriptor() const = 0;
515 
516  virtual int registerCnnRawCallback(std::function<void (std::shared_ptr<CnnRawWrapper> const&)> poseCallback) = 0;
517  virtual bool unregisterCnnRawCallback(int callbackId) = 0;
518 
519  virtual ~ObjectDetector() {}
520 };
521 
525 class ObjectDetectorRKNN3588 : virtual public Stream<std::vector<Det2dObject> const&> {
526 public:
527  virtual bool setModel( const std::string &filepath ) = 0;
528  virtual ~ObjectDetectorRKNN3588() {}
529 };
530 
534 class SgbmCamera : virtual public Stream<SgbmImage const &>, virtual public Camera {
535 public:
536  enum class Resolution {
537  SGBM_640x480 = 0,
538  SGBM_1280x720 = 1,
539  };
540  enum class Mode { Hardware = 0, Software };
544  virtual Mode mode() const = 0;
545 
546  virtual bool start(const std::string &sgbmConfig) = 0;
547  virtual bool start(const sgbm_config &sgbmConfig) = 0;
548  virtual bool setConfig(const std::string &sgbmConfig) = 0;
549  virtual bool setSgbmResolution(const xv::SgbmCamera::Resolution & resolution) = 0;
550  virtual xv::SgbmCamera::Resolution getSgbmResolution() = 0;
559  virtual std::shared_ptr<PointCloud> depthImageToPointCloud(SgbmImage const &sgbmImage) const = 0;
560  virtual ~SgbmCamera() {}
561 };
562 
566 class ThermalCamera : virtual public Stream<ThermalImage const &>, virtual public Camera {
567 public:
568 
569  enum class Mode { TEMPERATURE = 0, TEMPERTURE = 0, GREY };
570  virtual bool setMode( Mode mode ) = 0;
571  virtual ~ThermalCamera() {}
572 };
573 
577 class EyetrackingCamera : virtual public Stream<EyetrackingImage const &>, virtual public Camera {
578 public:
579 
588  virtual bool setExposure( int leftGain, float leftTimeMs, int rightGain, float rightTimeMs ) = 0;
589 
597  virtual bool setLedBrighness( int eye, int led, int brightness ) = 0;
598 
599  virtual ~EyetrackingCamera() {}
600 };
601 
605 class GazeStream : virtual public Stream<XV_ET_EYE_DATA_EX const &>{
606 public:
607 
613  virtual void setConfigPath(std::string config) = 0;
614 
615  virtual ~GazeStream() {}
616 };
617 
621 class IrisStream : virtual public Stream<XV_IRIS_DATA const &>{
622 public:
623 
624 #if defined( __ANDROID__ )
625  virtual bool start(JNIEnv* env, jobject thiz, std::string offlineS) = 0;
626 
627  virtual const char* onlineActive(JNIEnv *env, jobject context, const char* initLicense, const char* userId, const char* secret, int &activeResult) = 0;
628 #endif
634  virtual void setUserName(std::string name) = 0;
635 
641  virtual int registerEnrollCallback(std::function<void (XV_IRIS_DATA const &)>) = 0;
642  virtual bool UnregisterEnrollCallback(int callbackID) = 0;
643 
649  virtual int registerIdentifyCallback(std::function<void (XV_IRIS_DATA const &)>) = 0;
650  virtual bool UnregisterIdentifyCallback(int callbackID) = 0;
651 
657  virtual bool loadIrisInfo(unsigned char* iris_features, int size) = 0;
658 
664  virtual void setConfigPath(std::string config) = 0;
665 
666  virtual ~IrisStream() {}
667 };
668 
672 class GestureStream : virtual public Stream<GestureData const &> {
673 public:
674 
680  virtual int registerDynamicGestureCallback(std::function<void (GestureData const &)>) = 0;
681  virtual bool UnregisterDynamicGestureCallback(int callbackID) = 0;
682 
690  virtual int registerKeypointsCallback(std::function<void (std::shared_ptr<const std::vector<keypoint>>)> callback) = 0;
691  virtual bool unregisterKeypointsCallback(int callbackId) = 0;
692 
700  virtual int registerSlamKeypointsCallback(std::function<void (std::shared_ptr<const xv::HandPose>)> callback) = 0;
701  virtual bool unregisterSlamKeypointsCallback(int callbackId) = 0;
702 
703  virtual ~GestureStream() {}
704 
705  virtual bool setPlatform( int platform , bool ego) = 0;
706 };
707 
711 class GPSStream : virtual public Stream<std::vector<unsigned char> const &>{
712 public:
713  virtual ~GPSStream() {}
714 };
715 
719 class GPSDistanceStream : virtual public Stream<GPSDistanceData const &>{
720 public:
721 
722  virtual ~GPSDistanceStream() {}
723 };
724 
728 class TerrestrialMagnetismStream : virtual public Stream<TerrestrialMagnetismData const &>{
729 public:
730 
731  virtual ~TerrestrialMagnetismStream() {}
732 };
733 
737 class ExternalStream : virtual public Stream<xv::Pose const &>{
738 public:
739 
740  virtual int registerRawCallback( std::function<void (xv::ExternalData const &)> rawExternalCallback) = 0;
741  virtual bool unregisterRawCallback( int callbackId ) = 0;
742 
743  virtual int registerFixedPoseCallback( std::function<void (xv::Pose const &)> fixedExternalCallback) = 0;
744  virtual bool unregisterFixedPoseCallback( int callbackId ) = 0;
745 
746  virtual int registerRuntimePoseCallback( std::function<void (xv::Pose const&)> runtimeExternalCallback) = 0;
747  virtual bool unregisterRuntimePoseCallback(int callbackId) = 0;
748 
749  virtual int registerScaledPoseCallback( std::function<void (xv::Pose const&)> scaledExternalCallback) = 0;
750  virtual bool unregisterScaledPoseCallback(int callbackId) = 0;
751 
752  virtual bool getPose(Pose& pose) = 0;
753 
754  virtual void SetScaleArrayRange(int range) = 0;
755  virtual void setScaleRange(double low, double high) = 0;
756 
757  virtual Vector3d rotationToEuler(Matrix3d const& rot) = 0;
758 
759  virtual void setResetStatus(bool status) = 0;
760  virtual void setDeviceStopStatus(bool status) = 0;
761 
762  virtual void setTransform(const xv::Transform& transform) = 0;
763 
764  virtual void resumeLastPose(xv::Pose pose) = 0;
765 
766  virtual ~ExternalStream() {}
767 };
768 
772 class MicStream : virtual public Stream<MicData const &> {
773 public:
774 
775  virtual ~MicStream() {}
776 };
777 
781 class Speaker {
782 public:
783 
784  virtual bool enable() = 0;
785  virtual bool disable() = 0;
789  virtual int send(const std::uint8_t *data, int len) = 0;
790 
794  virtual bool play(const std::string &path) = 0;
798  virtual bool play(const std::uint8_t *data, int len) = 0;
802  virtual bool isPlaying() = 0;
806  virtual int registerPlayEndCallback( std::function<void ()> ) = 0;
807  virtual bool unregisterPlayEndCallback( int callbackId ) = 0;
808 
809  virtual ~Speaker() {}
810 };
811 
1138 class DeviceStatusStream : virtual public Stream<std::vector<unsigned char> const &> {
1139 public:
1140 
1141  virtual ~DeviceStatusStream(){}
1142 };
1143 
1144 
1162 class Device {
1163 
1164 public:
1165 
1166 
1171  virtual std::map<std::string, std::string> info() = 0;
1172 
1176  virtual std::shared_ptr<Slam> slam() = 0;
1177 
1181  virtual std::shared_ptr<ImuSensor> imuSensor() = 0;
1182 
1186  virtual std::shared_ptr<EventStream> eventStream() = 0;
1187 
1191  virtual std::shared_ptr<OrientationStream> orientationStream() = 0;
1192 
1196  virtual std::shared_ptr<FisheyeCameras> fisheyeCameras() = 0;
1197 
1201  virtual std::shared_ptr<ColorCamera> colorCamera() = 0;
1202 
1206  virtual std::shared_ptr<TofCamera> tofCamera() = 0;
1207 
1211  virtual std::shared_ptr<SgbmCamera> sgbmCamera() = 0;
1212 
1216  virtual std::shared_ptr<ThermalCamera> thermalCamera() = 0;
1217 
1221  virtual std::shared_ptr<EyetrackingCamera> eyetracking() = 0;
1222 
1226  virtual std::shared_ptr<GazeStream> gaze() = 0;
1227 
1231  virtual std::shared_ptr<IrisStream> iris() = 0;
1232 
1236  virtual std::shared_ptr<GestureStream> gesture() = 0;
1237 
1241  virtual std::shared_ptr<GPSStream> gpsModule() = 0;
1242 
1246  virtual std::shared_ptr<GPSDistanceStream> gpsDistanceModule() = 0;
1247 
1251  virtual std::shared_ptr<TerrestrialMagnetismStream> terrestrialMagnetismModule() = 0;
1252 
1256  virtual std::shared_ptr<ExternalStream> externalSensor() = 0;
1257 
1261  virtual std::shared_ptr<MicStream> mic() = 0;
1262 
1266  virtual std::shared_ptr<Speaker> speaker() = 0;
1267 
1271  virtual std::shared_ptr<Display> display() = 0;
1272 
1276  virtual std::shared_ptr<ObjectDetector> objectDetector() = 0;
1277 
1281  virtual std::shared_ptr<ObjectDetectorRKNN3588> objectDetectorRKNN3588() = 0;
1282 
1286  virtual std::shared_ptr<DeviceStatusStream> deviceStatus() = 0;
1287 
1291  virtual bool sleep(int level = 0) = 0;
1295  virtual bool wakeup() = 0;
1296 
1300  virtual bool control(const DeviceSetting &setting) = 0;
1301 
1715  virtual bool hidWriteAndRead(const std::vector<unsigned char> &command, std::vector<unsigned char> &result) = 0;
1719  virtual bool uvcWriteAndRead(const std::vector<unsigned char> &command, std::vector<unsigned char> &result) = 0;
1723  virtual bool vscWriteAndRead(const std::vector<unsigned char> &command, std::vector<unsigned char> &result) = 0;
1724 
1728  virtual bool enableSync(bool isEnable) = 0;
1729 
1733  virtual std::string id() const = 0;
1734 
1735  virtual ~Device(){}
1736 
1737 };
1738 
1739 
1749 
1758 std::map<std::string,std::shared_ptr<Device>> getDevices(double timeOut = 0., const std::string& desc = "", bool* stopWaiting = nullptr, xv::SlamStartMode slamStartMode = xv::SlamStartMode::Normal, xv::DeviceSupport deviceSupport = xv::DeviceSupport ::ONLYUSB);
1759 
1767 std::map<std::string,std::shared_ptr<Device>> getDevicesUntilTimeout(double timeOut = 0., const std::string& desc = "", xv::SlamStartMode slamStartMode = xv::SlamStartMode::Normal, xv::DeviceSupport deviceSupport = xv::DeviceSupport ::ONLYUSB);
1768 
1772 void setLogLevel(LogLevel l);
1773 
1778 int registerPlugEventCallback(const std::function<void (std::shared_ptr<Device> device, PlugEventType type)> &Callback, const std::string& desc = "");
1782 bool unregisterHotplugCallback( int callbackID );
1783 
1798 std::shared_ptr<Device> getDevice(int fd);
1805 std::shared_ptr<Device> getDevice(int fd, std::string const& desc, xv::SlamStartMode slamStartMode = xv::SlamStartMode::Normal);
1806 
1810 bool detachDevice(int fd );
1811 
1816 
1821 
1833 bool savePointCloudToPcd(const std::string &path, std::shared_ptr<PointCloud> const & point, int precision = 8, bool removeInvalidPoints = true);
1834 
1835 
1836 }
Camera interface.
Definition: xv-sdk.h:47
virtual const std::vector< Calibration > & calibration()
Get the camera calibration.
virtual bool setExposure(int aecMode=0, int exposureGain=0, float exposureTimeMs=0.0)
Exposure setting.
virtual bool setBrightness(int brightness)
Set output image brightness. Only valid in auto exposure mode.
A class to handle callbacks of the color image.
Definition: xv-sdk.h:213
Resolution
Definition: xv-sdk.h:215
@ RGB_320x240
RGB QVGA (not supported now)
@ RGB_2560x1920
RGB 5m (not supported now)
A class to handle device status event stream.
Definition: xv-sdk.h:1138
Class to get tracking results and raw outputs with a connected device.
Definition: xv-sdk.h:1162
virtual std::shared_ptr< Display > display()=0
Get the display component.
virtual std::shared_ptr< EyetrackingCamera > eyetracking()=0
Get the eyetracking component of the device.
virtual std::shared_ptr< ObjectDetector > objectDetector()=0
Get the object detection component.
virtual std::shared_ptr< FisheyeCameras > fisheyeCameras()=0
Get the stereo cameras component of the device.
virtual std::shared_ptr< Speaker > speaker()=0
Get the speaker component of the device.
virtual std::shared_ptr< ObjectDetectorRKNN3588 > objectDetectorRKNN3588()=0
Get the object detection component. in RKNN3588 platform.
virtual bool uvcWriteAndRead(const std::vector< unsigned char > &command, std::vector< unsigned char > &result)=0
Write UVC control command and read result.
virtual bool sleep(int level=0)=0
Let device sleep.
virtual std::shared_ptr< TerrestrialMagnetismStream > terrestrialMagnetismModule()=0
Get the terrestrial magnetism data of the device.
virtual bool control(const DeviceSetting &setting)=0
Control device.
virtual bool vscWriteAndRead(const std::vector< unsigned char > &command, std::vector< unsigned char > &result)=0
Write VSC control command and read result.
virtual std::shared_ptr< GestureStream > gesture()=0
Get the gesture component.
virtual std::map< std::string, std::string > info()=0
Get informations (Serial Number, version ...) about the device.
virtual std::shared_ptr< MicStream > mic()=0
Get the MIC component of the device.
virtual std::shared_ptr< DeviceStatusStream > deviceStatus()=0
Get the device status component.
virtual std::string id() const =0
Return the serial number of the device.
virtual bool wakeup()=0
Wake up device.
virtual std::shared_ptr< Slam > slam()=0
Get the SLAM component.
virtual std::shared_ptr< GPSDistanceStream > gpsDistanceModule()=0
Get the GPS distance data of the device.
virtual std::shared_ptr< ImuSensor > imuSensor()=0
Get the IMU sensor of the device.
virtual std::shared_ptr< OrientationStream > orientationStream()=0
Get the 3dof component.
virtual bool hidWriteAndRead(const std::vector< unsigned char > &command, std::vector< unsigned char > &result)=0
Write HID control command and read result. HID command list:
virtual std::shared_ptr< EventStream > eventStream()=0
Get the event component.
virtual std::shared_ptr< SgbmCamera > sgbmCamera()=0
Get the SGBM component of the device.
virtual std::shared_ptr< IrisStream > iris()=0
Get the iris data of the device.
virtual std::shared_ptr< GPSStream > gpsModule()=0
Get the GPS data of the device.
virtual bool enableSync(bool isEnable)=0
set enable camera synchronize.
virtual std::shared_ptr< TofCamera > tofCamera()=0
Get the ToF component of the device.
virtual std::shared_ptr< ColorCamera > colorCamera()=0
Get the color camera component of the device.
virtual std::shared_ptr< ExternalStream > externalSensor()=0
Get the external stream component.
virtual std::shared_ptr< GazeStream > gaze()=0
Get the gaze data of the device.
virtual std::shared_ptr< ThermalCamera > thermalCamera()=0
Get the thermal component of the device.
The class to handle informations about the display (if device can display like a HMD)
Definition: xv-sdk.h:182
virtual bool close()=0
Turn off the display.
virtual const std::vector< Calibration > & calibration()=0
Get calibrations.
virtual bool setBrightnessLevel(int level)=0
Set brightness level.
virtual bool open()=0
Turn on the display.
A class to handle callbacks of events.
Definition: xv-sdk.h:128
A class to handle external stream data. Only support in Arm now.
Definition: xv-sdk.h:737
A class to handle callbacks of the eyetracking camera.
Definition: xv-sdk.h:577
virtual bool setLedBrighness(int eye, int led, int brightness)=0
Set eyetracking led brightness (in s)
virtual bool setExposure(int leftGain, float leftTimeMs, int rightGain, float rightTimeMs)=0
Set eyetracking exposure.
The class to handle callbacks of the multi cameras for the visual SLAM.
Definition: xv-sdk.h:169
A class to handle callbacks of the GPS distance data.
Definition: xv-sdk.h:719
A class to handle callbacks of the GPS data.
Definition: xv-sdk.h:711
A class to handle callbacks of the gaze data.
Definition: xv-sdk.h:605
virtual void setConfigPath(std::string config)=0
Set coe configuration file path.
A class to handle gusture.
Definition: xv-sdk.h:672
virtual int registerDynamicGestureCallback(std::function< void(GestureData const &)>)=0
Callback to get the dynamic gesture information.
virtual int registerSlamKeypointsCallback(std::function< void(std::shared_ptr< const xv::HandPose >)> callback)=0
Callback to get the keypoints 21Dof information based on slam position.
virtual int registerKeypointsCallback(std::function< void(std::shared_ptr< const std::vector< keypoint >>)> callback)=0
Callback to get the keypoints 21Dof information.
The class to give access to data provided by the IMU sensor.
Definition: xv-sdk.h:81
A class to handle callbacks of the Iris data.
Definition: xv-sdk.h:621
virtual bool loadIrisInfo(unsigned char *iris_features, int size)=0
Load the iris features the identify information.
virtual void setUserName(std::string name)=0
Set user name.
virtual void setConfigPath(std::string config)=0
Set coe configuration file path.
virtual int registerEnrollCallback(std::function< void(XV_IRIS_DATA const &)>)=0
Callback to get the enroll information.
virtual int registerIdentifyCallback(std::function< void(XV_IRIS_DATA const &)>)=0
Callback to get the identify information.
A class to handle MIC. Adjust volumn through source.
Definition: xv-sdk.h:772
A class to handle callbacks of the object detector (CNN) in RKNN3588 platform.
Definition: xv-sdk.h:525
A class to handle callbacks of the object detector (CNN)
Definition: xv-sdk.h:506
The class to give access to 3dof data which converted from raw IMU data.
Definition: xv-sdk.h:137
virtual bool getAt(Orientation &pose, double timestamp)=0
Get the orientation of the device at a given timestamp.
virtual bool get(Orientation &pose, double prediction=0.)=0
Get the current orientation of the device.
Orientation only (3dof) of the pose.
Definition: xv-types.h:852
A class to handle callbacks of the SGBM.
Definition: xv-sdk.h:534
virtual Mode mode() const =0
Must be called befor start.
Resolution
Definition: xv-sdk.h:536
virtual std::shared_ptr< PointCloud > depthImageToPointCloud(SgbmImage const &sgbmImage) const =0
convert DepthImage to pointCloud .
The class to represent the component doing the 6dof tracking with SLAM algorithm on host.
Definition: xv-sdk.h:348
virtual bool start(Mode mode)=0
Start slam of specific mode.
virtual int registerStereoPlanesCallback(std::function< void(std::shared_ptr< const std::vector< Plane >>)> planeCallback)=0
Callback to get the detected planes using stereo cameras and SLAM.
virtual bool getPoseAt(Pose &pose, double timestamp)=0
Get the 6dof pose of the device at a given timestamp.
virtual bool resume()=0
Resume the 6dof tracker (SLAM)
virtual int registerMapCallback(std::function< void(std::shared_ptr< const xv::SlamMap >)> mapCallback)=0
Callback to get the SLAM map updates.
virtual bool saveMapAndSwitchToCslam(std::streambuf &mapStream, std::function< void(int, int)> done_callback, std::function< void(float)> localized_on_reference_map={})=0
Save a SLAM map and use it as an immutable reference map.
virtual bool start() override=0
Start slam of current mode.
virtual int registerTofPlanesCallback(std::function< void(std::shared_ptr< const std::vector< Plane >>)> planeCallback)=0
Callback to get the detected planes using ToF camera and SLAM.
virtual Mode mode() const =0
Get #Mode.
virtual bool getPose(Pose &pose, double prediction=0.)=0
Get the current 6dof pose of the device.
virtual bool pause()=0
Pause the 6dof tracker (SLAM)
virtual int registerVisualPoseCallback(std::function< void(const Pose &)> lostCallback)=0
Register a callback called when visual SLAM compute a new unfiltered pose.
virtual Pose poseScaleCalibration(const Pose &pose)=0
slam pose scale calibration.
virtual void poseReset()=0
Reset the 6dof pose coordinate (SLAM)
virtual bool loadMapAndSwitchToCslam(std::streambuf &mapStream, std::function< void(int)> done_callback, std::function< void(float)> localized_on_reference_map={})=0
Load a SLAM map and use it as an immutable reference map.
virtual int registerLostCallback(std::function< void()> lostCallback)=0
Register a callback called when SLAM is lost.
virtual bool reset()=0
Reset the 6dof tracker (SLAM)
A class to handle speaker. Adjust the sound source(PCM) volume to adjust the volume.
Definition: xv-sdk.h:781
virtual bool play(const std::string &path)=0
Async play sound file in new thread.
virtual bool play(const std::uint8_t *data, int len)=0
Async play buffer in new thread.
virtual bool isPlaying()=0
If async playing.
virtual int registerPlayEndCallback(std::function< void()>)=0
Rigster a callback for async play end.
virtual int send(const std::uint8_t *data, int len)=0
Send a small time slice of sound data.
Stream interface.
Definition: xv-sdk.h:19
virtual bool unregisterCallback(int callbackId)=0
Unregister callback.
virtual bool start()=0
start streaming.
virtual int registerCallback(std::function< void(T)>)=0
Register callback to receive data.
virtual bool stop()=0
stop streaming.
A class to handle callbacks of the terrestrial magnetism data.
Definition: xv-sdk.h:728
A class to handle callbacks of the thermal camera.
Definition: xv-sdk.h:566
A class to handle callbacks of the ToF camera.
Definition: xv-sdk.h:249
virtual bool setDistanceMode(DistanceMode mode)=0
Set distance mode.
virtual bool setStreamMode(StreamMode mode)=0
Set which stream will be reported. Not work with sony TOF.
virtual std::shared_ptr< PointCloud > depthImageToPointCloud(DepthImage const &) const =0
Convert a depth image to point cloud for sony TOF.
virtual bool setMode(int mode)=0
Set work mode.
virtual int registerColorDepthImageCallback(std::function< void(const DepthColorImage &)>)=0
Gives access to composed image with RBG color on depth images.
virtual Resolution getResolution()=0
Get current resolution.
virtual Manufacturer getManufacturer()=0
Get tof Manufacturer.
virtual std::shared_ptr< PointCloud > formatPmdCloudToPointCloudStruct(DepthImage const &) const =0
format a depth image to point cloud for pmd TOF(Cloud Only).
virtual bool enableTofIr(bool enable)=0
Enable tof ir.
virtual bool setLibWorkMode(SonyTofLibMode mode)=0
Set lib mode.
virtual bool setSonyTofSetting(SonyTofLibMode mode, Resolution resolution, Framerate frameRate)=0
SonyTof Settings.
virtual void setFilterFile(std::string filePath)=0
set SonyTof filter file
std::shared_ptr< Device > getDevice(int fd, std::string const &desc, xv::SlamStartMode slamStartMode=xv::SlamStartMode::Normal)
Retrieve #Device by given descriptor. Only for Android.
bool detachDevice(int fd)
Tell sdk device has disconnected. Only for Android.
std::string getDefaultDescription()
Retrieve default device description.
void getUTCTIme(DateTime *utc)
Get UTC time.
bool unregisterHotplugCallback(int callbackID)
Unregister a plug callback.
int registerPlugEventCallback(const std::function< void(std::shared_ptr< Device > device, PlugEventType type)> &Callback, const std::string &desc="")
Register the callback for hotplug.
void setLogLevel(LogLevel l)
Change the log level.
std::map< std::string, std::shared_ptr< Device > > getDevices(double timeOut=0., const std::string &desc="", bool *stopWaiting=nullptr, xv::SlamStartMode slamStartMode=xv::SlamStartMode::Normal, xv::DeviceSupport deviceSupport=xv::DeviceSupport ::ONLYUSB)
Retrieve all the detected XVisio devices. If no device is found after the timeout is reached,...
Version version()
Get xvsdk version.
std::map< std::string, std::shared_ptr< Device > > getDevicesUntilTimeout(double timeOut=0., const std::string &desc="", xv::SlamStartMode slamStartMode=xv::SlamStartMode::Normal, xv::DeviceSupport deviceSupport=xv::DeviceSupport ::ONLYUSB)
Retrieve all the detected XVisio devices. If no device is found after the timeout is reached,...
Definition: xv-types.h:1525
Definition: xv-types.h:1124
An image provided by a TOF camera.
Definition: xv-types.h:1108
Device setting.
Definition: xv-types.h:86
Definition: xv-types.h:1572
Images coming from xv::FisheyeCameras sensor system used for visual SLAM.
Definition: xv-types.h:1027
Gesture data.
Definition: xv-types.h:1271
Definition: xv-types.h:1192
Class representing a 6dof pose at a timestamp with a linear model for prediction.
Definition: xv-types.h:796
SGBM data.
Definition: xv-types.h:1207
Represents a transformation (or pose) with translation and rotation matrix.
Definition: xv-types.h:639
The Version struct.
Definition: xv-types.h:126
Definition: xv-types.h:1514
SGBM CONFIG STRUCT.
Definition: xv-types.h:1066