camera.h
Go to the documentation of this file.
1 /*
2  * BSD 3-Clause License
3  *
4  * Copyright (c) 2019, Analog Devices, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice, this
11  * list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright notice,
14  * this list of conditions and the following disclaimer in the documentation
15  * and/or other materials provided with the distribution.
16  *
17  * 3. Neither the name of the copyright holder nor the names of its
18  * contributors may be used to endorse or promote products derived from
19  * this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 #ifndef CAMERA_H
33 #define CAMERA_H
34 
35 #include "aditof/adsd_errs.h"
36 #include "camera_definitions.h"
37 #include "sdk_exports.h"
38 #include "status_definitions.h"
39 
40 #include <functional>
41 #include <map>
42 #include <string>
43 #include <vector>
44 
45 namespace aditof {
46 
47 class Frame;
48 class DepthSensorInterface;
49 
54 class SDK_API Camera {
55  public:
59  virtual ~Camera() = default;
60 
68  virtual Status initialize(const std::string &configFilepath = {}) = 0;
69 
75  virtual Status start() = 0;
76 
81  virtual Status stop() = 0;
82 
88  virtual Status setMode(const uint8_t &mode) = 0;
89 
95  virtual Status
96  getFrameProcessParams(std::map<std::string, std::string> &params) = 0;
97 
103  virtual Status
104  setFrameProcessParams(std::map<std::string, std::string> &params) = 0;
105 
111  virtual Status
112  getAvailableModes(std::vector<uint8_t> &availableModes) const = 0;
113 
119  virtual Status requestFrame(Frame *frame) = 0;
120 
132  virtual void normalizeABBuffer(uint16_t *abBuffer, uint16_t abWidth,
133  uint16_t abHeight, bool advanceScaling,
134  bool useLogScaling) = 0;
135 
145  virtual aditof::Status normalizeABFrame(aditof::Frame *frame,
146  bool advanceScaling,
147  bool useLogScaling) = 0;
148 
154  virtual Status getDetails(CameraDetails &details) const = 0;
155 
161  virtual Status
162  getAvailableControls(std::vector<std::string> &controls) const = 0;
163 
170  virtual Status setControl(const std::string &control,
171  const std::string &value) = 0;
172 
179  virtual Status getControl(const std::string &control,
180  std::string &value) const = 0;
181 
187  virtual std::shared_ptr<DepthSensorInterface> getSensor() = 0;
188 
196  virtual Status enableXYZframe(bool enable) = 0;
197 
204  virtual Status saveModuleCFG(const std::string &filepath) const = 0;
205 
212  virtual Status saveModuleCCB(const std::string &filepath) = 0;
213 
220  virtual Status enableDepthCompute(bool enable) = 0;
221 
228  virtual Status adsd3500UpdateFirmware(const std::string &fwFilePath) = 0;
229 
235  virtual Status adsd3500SetToggleMode(int mode) = 0;
236 
241  virtual Status adsd3500ToggleFsync() = 0;
242 
248  virtual Status adsd3500SetABinvalidationThreshold(int threshold) = 0;
249 
255  virtual Status adsd3500GetABinvalidationThreshold(int &threshold) = 0;
256 
262  virtual Status adsd3500SetConfidenceThreshold(int threshold) = 0;
263 
269  virtual Status adsd3500GetConfidenceThreshold(int &threshold) = 0;
270 
276  virtual Status adsd3500SetJBLFfilterEnableState(bool enable) = 0;
277 
283  virtual Status adsd3500GetJBLFfilterEnableState(bool &enabled) = 0;
284 
290  virtual Status adsd3500SetJBLFfilterSize(int size) = 0;
291 
297  virtual Status adsd3500GetJBLFfilterSize(int &size) = 0;
298 
304  virtual Status adsd3500SetRadialThresholdMin(int threshold) = 0;
305 
311  virtual Status adsd3500GetRadialThresholdMin(int &threshold) = 0;
312 
318  virtual Status adsd3500SetRadialThresholdMax(int threshold) = 0;
319 
325  virtual Status adsd3500GetRadialThresholdMax(int &threshold) = 0;
326 
332  virtual Status adsd3500GetSensorTemperature(uint16_t &tmpValue) = 0;
333 
339  virtual Status adsd3500GetLaserTemperature(uint16_t &tmpValue) = 0;
340 
346  virtual Status adsd3500GetFirmwareVersion(std::string &fwVersion,
347  std::string &fwHash) = 0;
348 
354  virtual Status adsd3500SetMIPIOutputSpeed(uint16_t speed) = 0;
355 
361  virtual Status adsd3500GetMIPIOutputSpeed(uint16_t &speed) = 0;
362 
368  virtual Status adsd3500GetImagerErrorCode(uint16_t &errcode) = 0;
369 
375  virtual Status adsd3500SetVCSELDelay(uint16_t delay) = 0;
376 
382  virtual Status adsd3500GetVCSELDelay(uint16_t &delay) = 0;
383 
389  virtual Status adsd3500SetJBLFMaxEdgeThreshold(uint16_t threshold) = 0;
390 
396  virtual Status adsd3500SetJBLFABThreshold(uint16_t threshold) = 0;
397 
403  virtual Status adsd3500SetJBLFGaussianSigma(uint16_t value) = 0;
404 
410  virtual Status adsd3500GetJBLFGaussianSigma(uint16_t &value) = 0;
411 
417  virtual Status adsd3500SetJBLFExponentialTerm(uint16_t value) = 0;
418 
424  virtual Status adsd3500GetJBLFExponentialTerm(uint16_t &value) = 0;
425 
431  virtual Status adsd3500GetFrameRate(uint16_t &fps) = 0;
432 
438  virtual Status adsd3500SetFrameRate(uint16_t fps) = 0;
439 
445  virtual Status adsd3500SetEnableEdgeConfidence(uint16_t value) = 0;
446 
452  virtual Status
453  adsd3500GetTemperatureCompensationStatus(uint16_t &value) = 0;
454 
460  virtual Status adsd3500SetEnablePhaseInvalidation(uint16_t value) = 0;
461 
467  virtual Status adsd3500SetEnableTemperatureCompensation(uint16_t value) = 0;
468 
474  virtual aditof::Status adsd3500SetEnableMetadatainAB(uint16_t value) = 0;
475 
481  virtual aditof::Status adsd3500GetEnableMetadatainAB(uint16_t &value) = 0;
482 
489  virtual Status adsd3500SetGenericTemplate(uint16_t reg, uint16_t value) = 0;
490 
497  virtual Status adsd3500GetGenericTemplate(uint16_t reg,
498  uint16_t &value) = 0;
505  virtual Status adsd3500GetStatus(int &chipStatus, int &imagerStatus) = 0;
506 
512  virtual Status adsd3500DisableCCBM(bool disable) = 0;
513 
519  virtual Status adsd3500IsCCBMsupported(bool &supported) = 0;
520 
527  virtual aditof::Status
528  adsd3500setEnableDynamicModeSwitching(bool enable) = 0;
529 
548  virtual aditof::Status adsds3500setDynamicModeSwitchingSequence(
549  const std::vector<std::pair<uint8_t, uint8_t>> &sequence) = 0;
550 
559  virtual Status readSerialNumber(std::string &serialNumber,
560  bool useCacheValue = false) = 0;
561 
567  virtual Status getImagerType(ImagerType &imagerType) const = 0;
568 
574  virtual aditof::Status
575  saveDepthParamsToJsonFile(const std::string &savePathFile) = 0;
576 
584  virtual aditof::Status loadDepthParamsFromJsonFile(
585  const std::string &pathFileloadDepthParamsFromJsonFile,
586  const int16_t mode_in_use = -1) = 0;
587 
593  virtual aditof::Status
594  adsd3500ResetIniParamsForMode(const uint16_t mode) = 0;
595 
602  virtual aditof::Status
603  setSensorConfiguration(const std::string &sensorConf) = 0;
604 
610  virtual void dropFirstFrame(bool dropFrame) = 0;
611 };
612 
613 } // namespace aditof
614 
615 #endif // CAMERA_H
aditof::Camera
Manipulates the underlying camera system.
Definition: camera.h:54
mode
GLenum mode
Definition: glcorearb.h:2764
camera_definitions.h
string
GLsizei const GLchar *const * string
Definition: glcorearb.h:3083
adsd_errs.h
enabled
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glcorearb.h:4174
aditof
Namespace aditof.
Definition: adsd_errs.h:40
start
GLuint start
Definition: glcorearb.h:2858
aditof::ImagerType
ImagerType
Types of imagers.
Definition: camera_definitions.h:200
params
GLenum const GLfloat * params
Definition: glcorearb.h:2770
SDK_API
#define SDK_API
Definition: sdk_exports.h:42
aditof::CameraDetails
Describes the properties of a camera.
Definition: camera_definitions.h:132
aditof::Status
Status
Status of any operation that the TOF sdk performs.
Definition: status_definitions.h:48
sdk_exports.h
size
GLsizeiptr size
Definition: glcorearb.h:2943
initialize
ROSCONSOLE_DECL void initialize()
aditof::Frame
Frame of a camera.
Definition: frame.h:50
status_definitions.h
value
GLsizei const GLfloat * value
Definition: glcorearb.h:3093
aditof::imagerType
const std::map< ImagerType, std::string > imagerType
Types of imagers.
Definition: camera_definitions.h:218


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:48