diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..815357ef --- /dev/null +++ b/.clang-format @@ -0,0 +1,112 @@ +--- +BasedOnStyle: LLVM +IndentWidth: 4 +--- +Language: Cpp +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Right +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: true +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: '(Test)?$' +IndentCaseLabels: false +IndentPPDirectives: None +IndentWidth: 4 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 4 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +ReflowComments: false +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 8 +UseTab: Never +... diff --git a/.clangformatignore b/.clangformatignore new file mode 100644 index 00000000..a48c6209 --- /dev/null +++ b/.clangformatignore @@ -0,0 +1,11 @@ +apps/uvc-app/include +apps/uvc-app/lib +bindings/python/pybind11 +dependencies/third-party +drivers/ +examples/data_collect/third_party +examples/data_collect/adi +examples/tof-viewer/external +examples/tof-viewer/include/stb_image.h +examples/tof-viewer/include/linmath.h +sdk/src/cameras/itof-camera/tofi diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2f8eefe6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +build/ + +sdk/include/aditof/version.h + +*deps/ +*.temp/ +.vscode/ +.vs/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..503f75ba --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,163 @@ +cmake_minimum_required(VERSION 3.0) +project(adi_tof_project) + +####################### Disable In-source builds ############################## +if( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} ) + message(FATAL_ERROR "In-source builds are not allowed. \ + Consider making a separate build folder and run cmake \ + from there using this command: + cmake ${CMAKE_SOURCE_DIR}") +endif() + +############################### Version ####################################### +set(ADITOF_VERSION_MAJOR 5) +set(ADITOF_VERSION_MINOR 0) +set(ADITOF_VERSION_PATCH 0) + +set(VERSION "${ADITOF_VERSION_MAJOR}.${ADITOF_VERSION_MINOR}.${ADITOF_VERSION_PATCH}") + +############################### Options ####################################### +option(WITH_DOC "Build documentation?" OFF) +option(WITH_NETWORK "Build network interface?" ON) +option(WITH_OFFLINE "Build offline interface?" OFF) +option(WITH_GLOG_DEPENDENCY "Build with GLOG dependency to be used for logging?" ON) +option(CI_BUILD "Build for CI" OFF) + +######################### Target based Options ################################ +option(NXP "Set to ON when building on NXP" OFF) +option(NVIDIA "Set to ON when building on NVIDIA" OFF) +option(WITH_PROTOBUF_DEPENDENCY "Build with PROTOBUF dependency?" ON) +option(USE_DEPTH_COMPUTE_OPENSOURCE "Use an open source implementation?" OFF) + +################################## Git ######################################## +include(FindGit OPTIONAL) +if (GIT_FOUND) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --show-toplevel + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE ADITOFSDK_GIT_REPO + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + + if ("${ADITOFSDK_GIT_REPO}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE ADITOFSDK_GIT_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE ADITOFSDK_GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif() +endif() + +add_definitions(-DADITOFSDK_GIT_COMMIT="${ADITOFSDK_GIT_COMMIT}") +add_definitions(-DADITOFSDK_GIT_BRANCH="${ADITOFSDK_GIT_BRANCH}") + +############################## Rest of cmake ################################## + +# Check whether we configure things for remote or we're on target +set(SELECTED_PLATFORMS 0) +set(ALL_PLATFORMS NXP;NVIDIA) +foreach(platform IN LISTS ALL_PLATFORMS) + if(${platform}) + math(EXPR SELECTED_PLATFORMS "${SELECTED_PLATFORMS}+1") + endif() +endforeach() + +set(ON_TARGET FALSE) +if(${SELECTED_PLATFORMS} GREATER 1) + message(FATAL_ERROR "More than one platform was selected. \nPlease select a single platform. CMake will exit.") +elseif(${SELECTED_PLATFORMS} EQUAL 1) + add_definitions(-DTARGET) + set(ON_TARGET TRUE) +endif() + +if(NOT ON_TARGET AND USE_DEPTH_COMPUTE_OPENSOURCE) + message (STATUS "USE_DEPTH_COMPUTE_OPENSOURCE is not used on host") +endif() + +if(CI_BUILD) + set(USE_DEPTH_COMPUTE_OPENSOURCE ON) +endif() + +if (WITH_NETWORK) + add_definitions(-DHAS_NETWORK) +endif() + +set(RESOURCES_DIR "${CMAKE_BINARY_DIR}/resources") +make_directory(${RESOURCES_DIR}) + +if (WITH_OFFLINE) + add_definitions(-DHAS_OFFLINE) + + set(RESOURCES_OFFLINE_DIR "${RESOURCES_DIR}/offline") + make_directory(${RESOURCES_OFFLINE_DIR}) + + set(MODE_FILE "lr-native.bin" "sr-native.bin" "lr-qnative.bin" "sr-qnative.bin" "lr-mixed.bin" "sr-mixed.bin") + message("Downloading raw frames into ${RESOURCES_OFFLINE_DIR}") + foreach(MODE IN LISTS MODE_FILE) + set(MODE_URL "swdownloads.analog.com/cse/aditof/resources/itof/frames/${MODE}") + set(MODE_PATH "${RESOURCES_OFFLINE_DIR}/${MODE}") + + if (NOT EXISTS ${MODE_PATH}) + file(DOWNLOAD "${MODE_URL}" "${MODE_PATH}") + endif() + endforeach() + + if (ON_TARGET) + make_directory("${RESOURCES_OFFLINE_DIR}/adsd3500_raw") + + message("Downloading raw frames into ${RESOURCES_OFFLINE_DIR}/adsd3500_raw") + foreach(MODE IN LISTS MODE_FILE) + set(MODE_URL "swdownloads.analog.com/cse/aditof/resources/itof/offline/adsd3500_raw/${MODE}") + set(MODE_PATH "${RESOURCES_OFFLINE_DIR}/adsd3500_raw/${MODE}") + + if (NOT EXISTS ${MODE_PATH}) + file(DOWNLOAD "${MODE_URL}" "${MODE_PATH}") + endif() + endforeach() + endif() +endif() + +if(WITH_GLOG_DEPENDENCY) + add_definitions(-DUSE_GLOG) +endif() + +if(NOT WITH_PROTOBUF_DEPENDENCY) + if(NOT ON_TARGET) + message(FATAL_ERROR "SDK can be built without protobuf only on target builds!") + endif() +else() + add_definitions(-DUSE_PROTOBUF) +endif() + +if(${ON_TARGET}) + if(USE_DEPTH_COMPUTE_OPENSOURCE) + set(LIBTOFI_LIBDIR_PATH "${CMAKE_BINARY_DIR}/sdk/common/adi/depth-compute-opensource") + else() + set(LIBTOFI_LIBDIR_PATH "${CMAKE_SOURCE_DIR}/../libs") + endif() +endif() + +set(CONFIG_DIR_NAME "config") +add_definitions(-DCONFIG_DIR_NAME="${CONFIG_DIR_NAME}") +add_definitions(-DRESOURCES="${RESOURCES_DIR}") + +add_subdirectory(dependencies) +add_subdirectory(sdk) + +if (WITH_DOC) + add_subdirectory(doc) +endif() + +############################### Installer ####################################### +configure_file(cmake/aditof-setup.iss.cmakein ${CMAKE_CURRENT_BINARY_DIR}/aditof-setup.iss @ONLY) + +############################### Version ####################################### +configure_file(cmake/version.h.cmakein ${CMAKE_SOURCE_DIR}/sdk/include/aditof/version.h @ONLY) diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..7b6b4fac --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Analog Devices, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..0fba43ed --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# Analog Devices 3D ToF software suite + +## Overview +The **ADI ToF SDK** is a cross platform library for the Analog Devices depth cameras based on the ADSD3100 TOF Signal Processor. It provides support for data processing on the embedded processor platform as well as for USB, Ethernet, Offline or Wi-Fi to connect to a host computer. This flexibility enables evaluation across a wide range of use cases and environments. + +The SDK provides an API to control the ToF camera, AB stream and depth data. Windows support are built into the SDK as well as sample code and wrappers for various languages including Python and C/C++. + +License : [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) +Platform details : [![Hardware](https://img.shields.io/badge/hardware-wiki-green.svg)]() + +## Supported Host Platforms + +For more details on building the SDK on a host platform please check the **User Guide** specified below:. + +| Operating System | Documentation | GitHub main status | Downloads | +| --------- | ----------- | ----------- | ----------- | +| Windows | [Build Instructions](scripts/windows) | [![Build status](https://dev.azure.com/AnalogDevices/3DToF-rework/_apis/build/status/analogdevicesinc.ToF?branchName=main)](https://dev.azure.com/AnalogDevices/3DToF-rework/_build?view=runs&branchFilter=3310) | [![ToF evaluation kit installer](https://img.shields.io/badge/release-ToF_evaluation_kit_installer-blue.svg)](https://github.com/analogdevicesinc/ToF/releases/latest) | +| Linux | [Build Instructions](doc/itof/linux_build_instructions.md) | [![Build status](https://dev.azure.com/AnalogDevices/3DToF-rework/_apis/build/status/analogdevicesinc.ToF?branchName=main)](https://dev.azure.com/AnalogDevices/3DToF-rework/_build?view=runs&branchFilter=3310) | [![ToF evaluation kit installer](https://img.shields.io/badge/release-ToF_evaluation_kit_installer-blue.svg)](https://github.com/analogdevicesinc/ToF/releases/latest) | + +### Requirements + +Host Platform: + +* Windows 10 or +* Ubuntu 20.04 or +* Ubuntu 22.04 + +Other +* Python 3.10 + +## Supported Embedded Platforms + +For more details on building the SDK on an embedded platform please check the **User Guide** specified below: +### ITOF camera +| Operating system | Evaluation boards | Documentation | GitHub main status | +| --------- | ----------- | ----------- | ----------- | +| NXP | [EVAL-ADTF3175D-NXZ](https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175d-nxz) | [Build instructions](doc/itof/nxp_build_instructions.md) | [![Build status](https://dev.azure.com/AnalogDevices/3DToF-rework/_apis/build/status/analogdevicesinc.ToF?branchName=main)](https://dev.azure.com/AnalogDevices/3DToF-rework/_build?view=runs&branchFilter=3310) | + +[How to write the SD card image onto the SD card?](doc/sdcard_burn.md) + +## SDK Documentation + +From an architectural point of view, the SDK consists of two layers. One layer is the high level API that allows clients to easily grab a camera object, configure it and request frames. The other layer is the low level API which exposes the interface through which low level operations can be made to the camera hardware. + +For more details about the SDK check the links below: + +[Software stack documentation](sdk/readme.md) + +[API Doxygen documentation](https://analogdevicesinc.github.io/ToF/) + +[Building and installing the SDK](cmake) + +## SDK Examples +The list of examples can be found at [this link.](https://github.com/analogdevicesinc/ToF?tab=readme-ov-file#sdk-examples) + +## Directory Structure +| Directory | Description | +| --------- | ----------- | +| ci | Useful scripts for continuous integration | +| cmake | Helper files for cmake | +| dependencies | Contains third-party and owned libraries | +| doc | Documentation | +| sdk | SDK source code | + +--- +**Known issues** + +On a PC where Linux kernel version 5.13 is installed, a USB connected camera cannot be detected. The v4l device name that we expect is not being set properly. However it works for older and newer versions. + +--- diff --git a/adsd__errs_8h_source.html b/adsd__errs_8h_source.html new file mode 100644 index 00000000..6802f9f0 --- /dev/null +++ b/adsd__errs_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +Time-of-Flight-SDK: /home/vsts/work/1/s/sdk/include/aditof/adsd_errs.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
adsd_errs.h
+
+
+
1 /*
2  * BSD 3-Clause License
3  *
4  * Copyright (c) 2023, 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 
33 #ifndef ADSD3500_DEFS
34 #define ADSD3500_DEFS
35 
36 #include <cstdint>
37 #include <string>
38 #include <unordered_map>
39 
40 namespace aditof {
41 
51 class ADSDErrors {
52  public:
53  ADSDErrors() {
54  m_ADSD3100ErrLookup = {
55  {ADSD3100_ERR_MODE_USECASE, "Invalid mode selection."},
56  {ADSD3100_ERR_MODE_MODE_DRIVER, "Invalid LD mode selection."},
57  {ADSD3100_ERR_PLLLOCK_LOCK1, "PLLLOCK error location 1."},
58  {ADSD3100_ERR_PLLLOCK_LOCK2, "PLLLOCK error location 2."},
59  {ADSD3100_ERR_PLLLOCK_LOCK3, "PLLLOCK error location 3."},
60  {ADSD3100_ERR_OVERHEAT_IMAGER, "Imager sensor overheat."},
61  {ADSD3100_ERR_OVERHEAT_LD, "Laser driver overheat."},
62  {ADSD3100_ERR_LASER_CHIPID, "Laser driver invalid chip ID."},
63  {ADSD3100_ERR_LASER_LPS, "Corrupted laser driver data."},
64  {ADSD3100_ERR_LASER_NO_DIFFUSER, "Laser diffuser problem."},
65  {ADSD3100_ERR_LASER_SHORT, "Laser driver shorted to GND."},
66  {ADSD3100_ERR_LVDS_HIGH_DC, "Laser driver duty cycle too large."},
68  "Laser driver active time too long."},
70  "Laser driver input open or short detected."},
72  "Laser driver enabled for too long of time."},
74  "Laser driver disabled for too short of time."},
75  {ADSD3100_ERR_LASER_LPS_READ, "Laser driver corrupted data."},
76  {ADSD3100_ERR_LASER_VLD_LOW, "Laser driver supply too low."},
77  {ADSD3100_ERR_LASER_VLD_HIGH, "Laser driver supply too high."}};
78 
79  m_ADSD3500StatusLookup = {
80  {ADSD3500_STATUS_INVALID_MODE, "Mode selected is invalid."},
82  "The JBLF filter size speficied is incorrect."},
84  "An unsupported command was sent to the ASDD3500."},
86  "A register write or read operation does not match any valid "
87  "region."},
89  "The ADSD3500 firmware CRC check failed."},
91  "The imager firmware is not valid."},
92  {ADSD3500_STATUS_INVALID_CCB, "The imager CCB file is not valid."},
93  {ADSD3500_STATUS_FLASH_HEADER_PARSE_ERROR, "Flash update error."},
94  {ADSD3500_STATUS_FLASH_FILE_PARSE_ERROR, "Flash update error."},
96  "SPI Master error occured, which this impacts the ADSD3500 - "
97  "image communication."},
98  {ADSD3500_STATUS_INVALID_CHIPID, "The image chip ID is invalid."},
100  "SPI Master error occured during communication between the "
101  "ASDSD3500 and the imager."},
102  {ADSD3500_STATUS_IMAGER_BOOT_FAILURE, "Unable to boot the imager."},
103  {ADSD3500_STATUS_IMAGER_ERROR, "The imager reported an error."},
105  "This is when timer is expired but ADSD3500 is not able to send "
106  "out frame due to some error."},
108  "Dynamic mode switching is being set, but it is not enabled."},
110  "The selected dyanamic mode configuration is not valid."},
112  "An incorrect phase invalid value specified."},
114  "Firmware update is complete."},
115  {ADSD3500_STATUS_NVM_WRITE_COMPLETE, "NVM update is complete."}};
116  }
117 
123  std::string GetStringADSD3500(uint16_t value) {
124 
125  std::string ret = "";
126 
127  auto it = m_ADSD3500StatusLookup.find(value);
128 
129  if (it != m_ADSD3500StatusLookup.end()) {
130  ret = m_ADSD3500StatusLookup[value];
131  }
132 
133  return ret;
134  }
135 
141  std::string GetStringADSD3100(uint16_t value) {
142 
143  std::string ret = "";
144 
145  auto it = m_ADSD3100ErrLookup.find(value);
146 
147  if (it != m_ADSD3100ErrLookup.end()) {
148  ret = m_ADSD3100ErrLookup[value];
149  }
150 
151  return ret;
152  }
153 
159  std::string GetStringADSD3030(uint16_t value) {
160 
161  std::string ret = "";
162 
163  return ret;
164  }
165 
166  public:
167  // ADSD3500 error codes read via the "Get Status" (0x0020) command
171  const uint16_t ADSD3500_STATUS_INVALID_MODE = 0x0001;
179  const uint16_t ADSD3500_STATUS_UNSUPPORTED_CMD = 0x0003;
183  const uint16_t ADSD3500_STATUS_INVALID_MEMORY_REGION = 0x0004;
187  const uint16_t ADSD3500_STATUS_INVALID_FIRMWARE_CRC = 0x0005;
191  const uint16_t ADSD3500_STATUS_INVALID_IMAGER = 0x0006;
195  const uint16_t ADSD3500_STATUS_INVALID_CCB = 0x0007;
203  const uint16_t ADSD3500_STATUS_FLASH_FILE_PARSE_ERROR = 0x0009;
207  const uint16_t ADSD3500_STATUS_SPIM_ERROR = 0x000A;
211  const uint16_t ADSD3500_STATUS_INVALID_CHIPID = 0x000B;
219  const uint16_t ADSD3500_STATUS_IMAGER_BOOT_FAILURE = 0x000D;
223  const uint16_t ADSD3500_STATUS_IMAGER_ERROR = 0x0010;
227  const uint16_t ADSD3500_STATUS_TIMEOUT_ERROR = 0x0011;
240 
241  // ADSD3500 status codes read via the "Get Status" (0x0020) command
249  const uint16_t ADSD3500_STATUS_NVM_WRITE_COMPLETE = 0x000F;
250 
256  const uint16_t ADSD3100_ERR_MODE_USECASE = 0x0001;
262  const uint16_t ADSD3100_ERR_MODE_MODE_DRIVER = 0x0002;
268  const uint16_t ADSD3100_ERR_PLLLOCK_LOCK1 = 0x0004;
274  const uint16_t ADSD3100_ERR_PLLLOCK_LOCK2 =
275  0x0008; // PLLLOCK error location 2.
281  const uint16_t ADSD3100_ERR_PLLLOCK_LOCK3 =
282  0x000C; // PLLLOCK error location 3.
288  const uint16_t ADSD3100_ERR_OVERHEAT_IMAGER = 0x0010;
294  const uint16_t ADSD3100_ERR_OVERHEAT_LD = 0x0020;
300  const uint16_t ADSD3100_ERR_LASER_CHIPID = 0x0040;
306  const uint16_t ADSD3100_ERR_LASER_LPS = 0x0080;
312  const uint16_t ADSD3100_ERR_LASER_NO_DIFFUSER = 0x0100;
318  const uint16_t ADSD3100_ERR_LASER_SHORT = 0x0140;
324  const uint16_t ADSD3100_ERR_LVDS_HIGH_DC = 0x0180;
330  const uint16_t ADSD3100_ERR_LVDS_PULSE_LONG = 0x01C0;
336  const uint16_t ADSD3100_ERR_LVDS_OPEN_SHORT = 0x0200;
342  const uint16_t ADSD3100_ERR_LASER_LONG_LEN_ON = 0x0240;
348  const uint16_t ADSD3100_ERR_LASER_SHORT_LEN_OFF = 0x0280;
354  const uint16_t ADSD3100_ERR_LASER_LPS_READ = 0x02C0;
360  const uint16_t ADSD3100_ERR_LASER_VLD_LOW = 0x0300;
366  const uint16_t ADSD3100_ERR_LASER_VLD_HIGH = 0x0340;
367 
368  private:
369  std::unordered_map<uint16_t, std::string> m_ADSD3500StatusLookup;
370  std::unordered_map<uint16_t, std::string> m_ADSD3100ErrLookup;
371 };
372 
373 } // namespace aditof
374 #endif //ADSD3500_DEFS
const uint16_t ADSD3500_STATUS_SPIM_ERROR
SPI Master error occured, which this impacts the ADSD3500 - image communication.
Definition: adsd_errs.h:207
+
const uint16_t ADSD3100_ERR_LASER_VLD_LOW
Laser driver supply too low. Imager error codes read via "Get Imager Error Code" (0x0038) command Not...
Definition: adsd_errs.h:360
+
const uint16_t ADSD3500_STATUS_INVALID_CCB
The imager CCB file is not valid.
Definition: adsd_errs.h:195
+
Namespace aditof.
Definition: frame.h:44
+
const uint16_t ADSD3500_STATUS_UNSUPPORTED_CMD
An unsupported command was sent to the ASDD3500.
Definition: adsd_errs.h:179
+
const uint16_t ADSD3100_ERR_LVDS_PULSE_LONG
Laser driver active time too long. Imager error codes read via "Get Imager Error Code" (0x0038) comma...
Definition: adsd_errs.h:330
+
const uint16_t ADSD3500_STATUS_INVALID_DYNAMIC_MODE_COMPOSITIONS
The selected dyanamic mode configuration is not valid.
Definition: adsd_errs.h:235
+
const uint16_t ADSD3100_ERR_LASER_CHIPID
Laser driver invalid chip ID. Imager error codes read via "Get Imager Error Code" (0x0038) command No...
Definition: adsd_errs.h:300
+
const uint16_t ADSD3500_STATUS_FIRMWARE_UPDATE_COMPLETE
Firmware update is complete.
Definition: adsd_errs.h:245
+
const uint16_t ADSD3500_STATUS_TIMEOUT_ERROR
This is when timer is expired but ADSD3500 is not able to send out frame due to some error.
Definition: adsd_errs.h:227
+
std::string GetStringADSD3030(uint16_t value)
Returns a string for a given target (adsdType) and error code for the ADSD3030.
Definition: adsd_errs.h:159
+
const uint16_t ADSD3500_STATUS_INVALID_FIRMWARE_CRC
The ADSD3500 firmware CRC check failed.
Definition: adsd_errs.h:187
+
std::string GetStringADSD3500(uint16_t value)
Returns a string for a given target (adsdType) and error code for the ADSD3500.
Definition: adsd_errs.h:123
+
const uint16_t ADSD3500_STATUS_INVALID_MEMORY_REGION
TODO.
Definition: adsd_errs.h:183
+
const uint16_t ADSD3500_STATUS_IMAGER_ERROR
The imager reported an error.
Definition: adsd_errs.h:223
+
const uint16_t ADSD3100_ERR_OVERHEAT_IMAGER
Imager sensor overheat. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:288
+
const uint16_t ADSD3500_STATUS_INVALID_PHASE_INVALID_VALUE
An incorrect phase invalid value specified.
Definition: adsd_errs.h:239
+
const uint16_t ADSD3500_STATUS_NVM_WRITE_COMPLETE
NVM update is complete.
Definition: adsd_errs.h:249
+
const uint16_t ADSD3100_ERR_LASER_SHORT_LEN_OFF
Laser driver disabled for too short of time. Imager error codes read via "Get Imager Error Code" (0x0...
Definition: adsd_errs.h:348
+
const uint16_t ADSD3100_ERR_LASER_NO_DIFFUSER
Laser diffuser problem. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:312
+
const uint16_t ADSD3100_ERR_OVERHEAT_LD
Laser driver overheat. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:294
+
const uint16_t ADSD3100_ERR_LVDS_HIGH_DC
Laser driver duty cycle too large. Imager error codes read via "Get Imager Error Code" (0x0038) comma...
Definition: adsd_errs.h:324
+
const uint16_t ADSD3500_STATUS_FLASH_FILE_PARSE_ERROR
Flash update error.
Definition: adsd_errs.h:203
+
const uint16_t ADSD3500_STATUS_INVALID_JBLF_FILTER_SIZE
The JBLF filter size speficied is incorrect.
Definition: adsd_errs.h:175
+
const uint16_t ADSD3100_ERR_LASER_LPS_READ
Laser driver corrupted data. Imager error codes read via "Get Imager Error Code" (0x0038) command Not...
Definition: adsd_errs.h:354
+
const uint16_t ADSD3100_ERR_LASER_LPS
Corrupted laser driver data. Imager error codes read via "Get Imager Error Code" (0x0038) command Not...
Definition: adsd_errs.h:306
+
const uint16_t ADSD3100_ERR_MODE_MODE_DRIVER
Invalid LD mode selection. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:262
+
const uint16_t ADSD3100_ERR_LVDS_OPEN_SHORT
Laser driver input open or short detected. Imager error codes read via "Get Imager Error Code" (0x003...
Definition: adsd_errs.h:336
+
const uint16_t ADSD3500_STATUS_INVALID_IMAGER
The imager firmware is not valid.
Definition: adsd_errs.h:191
+
const uint16_t ADSD3500_STATUS_IMAGER_BOOT_FAILURE
Unable to boot the imager.
Definition: adsd_errs.h:219
+
const uint16_t ADSD3100_ERR_LASER_VLD_HIGH
Laser driver supply too high. Imager error codes read via "Get Imager Error Code" (0x0038) command No...
Definition: adsd_errs.h:366
+
const uint16_t ADSD3500_STATUS_DYNAMIC_MODE_SWITCHING_NOT_ENABLED
Dynamic mode switching is being set, but it is not enabled.
Definition: adsd_errs.h:231
+
const uint16_t ADSD3100_ERR_LASER_SHORT
Laser driver shorted to GND. Imager error codes read via "Get Imager Error Code" (0x0038) command Not...
Definition: adsd_errs.h:318
+
const uint16_t ADSD3100_ERR_LASER_LONG_LEN_ON
Laser driver enabled for too long of time. Imager error codes read via "Get Imager Error Code" (0x003...
Definition: adsd_errs.h:342
+
const uint16_t ADSD3100_ERR_PLLLOCK_LOCK2
PLLLOCK error location 2. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:274
+
const uint16_t ADSD3500_STATUS_IMAGER_COMMUNICATION_ERROR
SPI Master error occured during communication between the ASDSD3500 and the imager.
Definition: adsd_errs.h:215
+
const uint16_t ADSD3100_ERR_MODE_USECASE
Invalid mode selection. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:256
+
const uint16_t ADSD3100_ERR_PLLLOCK_LOCK3
PLLLOCK error location 3. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:281
+
const uint16_t ADSD3500_STATUS_INVALID_MODE
Mode selected is invalid.
Definition: adsd_errs.h:171
+
Error codes from the ADSD3500, ADSD3100, ADSD3030 Usage: Included with aditof/camera....
Definition: adsd_errs.h:51
+
std::string GetStringADSD3100(uint16_t value)
Returns a string for a given target (adsdType) and error code for the ADSD3100.
Definition: adsd_errs.h:141
+
const uint16_t ADSD3500_STATUS_INVALID_CHIPID
The imager chip ID is invalid.
Definition: adsd_errs.h:211
+
const uint16_t ADSD3500_STATUS_FLASH_HEADER_PARSE_ERROR
Flash update error.
Definition: adsd_errs.h:199
+
const uint16_t ADSD3100_ERR_PLLLOCK_LOCK1
PLLLOCK error location 1. Imager error codes read via "Get Imager Error Code" (0x0038) command Note,...
Definition: adsd_errs.h:268
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..7eb32968 --- /dev/null +++ b/annotated.html @@ -0,0 +1,98 @@ + + + + + + + +Time-of-Flight-SDK: Class List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + +
 NaditofNamespace aditof
 CADSDErrorsError codes from the ADSD3500, ADSD3100, ADSD3030 Usage: Included with aditof/camera.h For example: ADSDErrors err; LOG(INFO) << err.GetStringADSD3500(0x0001);
 CCameraManipulates the underlying camera system
 CCameraDetailsDescribes the properties of a camera
 CDepthSensorInterfaceProvides access to the low level functionality of the camera sensor. This includes sensor configuration as well as analog front end(AFE) configuration
 CDepthSensorModeDetailsDescribes the type of entire frame that a depth sensor can capture and transmit
 CDriverConfigurationDescribes the configuration of the used driver
 CFrameFrame of a camera
 CFrameDataDetailsDescribes the properties of a data that embedded within the frame
 CFrameDetailsDescribes the properties of a frame
 CFrameHandlerHandles operations on a frame such as saving it to file and creating a new frame with content read from file
 CIntrinsicParametersDescribes the intrinsic parameters of a camera
 CMetadataContains all of the metadata components
 CPoint3I_sdkHolds the xyz values of a frame
 CSensorDetailsProvides details about the device
 CSensorEnumeratorFactoryProvides the means to construct different types of sensors enumerators. Based on the connection type (on target, USB, Network), different enumerators need to be used
 CSensorEnumeratorInterfaceCan search for sensors and retrieve sensors by category
 CSystemThe TOF system that manages the cameras
+
+
+ + + + diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000..f91a5ea0 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,137 @@ +trigger: + branches: + exclude: + - no_ci_* + +variables: + WORK_DIR: "$(Agent.BuildDirectory)/s" + BUILD_DIR: "$(WORK_DIR)/build" + DEPS_DIR: "$(BUILD_DIR)/deps" + DEFAULT_CMAKE_FLAGS: "-DWITH_NETWORK=1 \ + -DWITH_DOC=0 \ + -DCI_BUILD=1" + NUM_JOBS: 4 + IS_PULL_REQUEST: ${{ eq('$(Build.Reason)', 'PullRequest') }} + BRANCH_NAME: $(Build.SourceBranchName) + REPO_SLUG: $(Build.Repository.Name) + CURRENT_COMMIT: $(Build.SourceVersion) + + +jobs: +- job: LinuxBuilds + strategy: + matrix: + + #PC + ubuntu_20_04_x86_64: + imageName: 'ubuntu-20.04' + + ubuntu_22_04_x86_64: + imageName: 'ubuntu-22.04' + + ubuntu_22_04_x86_64_offline: + imageName: 'ubuntu-22.04' + EXTRA_CMAKE_FLAGS: "-DWITH_OFFLINE=on" + + #IMX + ubuntu_20_04_imx: + imageName: 'ubuntu-20.04' + DOCKER: "septimiuvana/tof-imx8-docker" + EXTRA_CMAKE_FLAGS: "-DNXP=1" + + #NVIDIA + ubuntu_20_04_nvidia: + imageName: 'ubuntu-20.04' + DOCKER: "adismartcamtest/tof_nvidia:4.0" + EXTRA_CMAKE_FLAGS: "-DNVIDIA=1" + + #code quality, TO DO: once entire code is formatted enable clang-format + clang_format: + imageName: 'ubuntu-22.04' + BUILD_TYPE: "clang_format" + + cppcheck: + imageName: 'ubuntu-20.04' + BUILD_TYPE: "cppcheck" + + deploy_doxygen: + imageName: 'ubuntu-20.04' + BUILD_TYPE: "deploy_doxygen" + + pool: + vmImage: $(imageName) + steps: + - checkout: self + fetchDepth: 1 + clean: true + persistCredentials: true + + - task: Cache@2 + condition: and( + eq(variables['DOCKER'], ''), + ne(variables['BUILD_TYPE'], 'clang_format'), + ne(variables['BUILD_TYPE'], 'cppcheck'), + ne(variables['BUILD_TYPE'], 'deploy_doxygen') + ) + + inputs: + key: mykeyx | "$(imageName)" + restoreKeys: mykeyx | "$(imageName)" + path: $(DEPS_DIR) + cacheHitVar: CACHE_RESTORED + + - script: ./ci/azure/deps.sh + condition: or( + eq(variables.CACHE_RESTORED, 'false'), + eq(variables['BUILD_TYPE'], 'clang_format'), + eq(variables['BUILD_TYPE'], 'cppcheck'), + eq(variables['BUILD_TYPE'], 'deploy_doxygen') + ) + + displayName: "Install Dependencies" + + - script: ./ci/azure/run_build.sh + displayName: "Build" + +- job: WindowsBuild + strategy: + matrix: + + VS2019_Win64: + imageName: 'windows-2019' + COMPILER: 'Visual Studio 16 2019' + ARCH: 'x64' + artifactName: 'Windows-VS-16-2019-x64' + + VS2022_Win64: + imageName: 'windows-2022' + COMPILER: 'Visual Studio 17 2022' + ARCH: 'x64' + artifactName: 'Windows-VS-17-2022-x64' + + pool: + vmImage: $[ variables['imageName'] ] + steps: + - checkout: self + fetchDepth: 1 + clean: true + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.9' + - task: Cache@2 + inputs: + key: deps_windows | "$(imageName)" + restoreKeys: deps_windows | "$(imageName)" + path: $(Agent.BuildDirectory)/s/deps_installed + cacheHitVar: CACHE_RESTORED + - task: PowerShell@2 + inputs: + targetType: 'filePath' + filePath: ./ci/azure/windows-build/install_deps.ps1 + condition: eq(variables.CACHE_RESTORED, 'false') + displayName: "Install Dependencies" + - task: PowerShell@2 + inputs: + targetType: 'filePath' + filePath: ./ci/azure/windows-build/build_sdk.ps1 + displayName: "Build" diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 00000000..224b29aa Binary files /dev/null and b/bc_s.png differ diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 00000000..940a0b95 Binary files /dev/null and b/bdwn.png differ diff --git a/camera_8h_source.html b/camera_8h_source.html new file mode 100644 index 00000000..27e3ecf3 --- /dev/null +++ b/camera_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Time-of-Flight-SDK: /home/vsts/work/1/s/sdk/include/aditof/camera.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
camera.h
+
+
+
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 
129  virtual aditof::Status normalizeABdata(aditof::Frame *frame,
130  bool useLogScaling) = 0;
131 
137  virtual Status getDetails(CameraDetails &details) const = 0;
138 
144  virtual Status
145  getAvailableControls(std::vector<std::string> &controls) const = 0;
146 
153  virtual Status setControl(const std::string &control,
154  const std::string &value) = 0;
155 
162  virtual Status getControl(const std::string &control,
163  std::string &value) const = 0;
164 
170  virtual std::shared_ptr<DepthSensorInterface> getSensor() = 0;
171 
179  virtual Status enableXYZframe(bool enable) = 0;
180 
187  virtual Status saveModuleCFG(const std::string &filepath) const = 0;
188 
195  virtual Status saveModuleCCB(const std::string &filepath) = 0;
196 
203  virtual Status enableDepthCompute(bool enable) = 0;
204 
211  virtual Status adsd3500UpdateFirmware(const std::string &fwFilePath) = 0;
212 
218  virtual Status adsd3500SetToggleMode(int mode) = 0;
219 
224  virtual Status adsd3500ToggleFsync() = 0;
225 
231  virtual Status adsd3500SetABinvalidationThreshold(int threshold) = 0;
232 
238  virtual Status adsd3500GetABinvalidationThreshold(int &threshold) = 0;
239 
245  virtual Status adsd3500SetConfidenceThreshold(int threshold) = 0;
246 
252  virtual Status adsd3500GetConfidenceThreshold(int &threshold) = 0;
253 
259  virtual Status adsd3500SetJBLFfilterEnableState(bool enable) = 0;
260 
266  virtual Status adsd3500GetJBLFfilterEnableState(bool &enabled) = 0;
267 
273  virtual Status adsd3500SetJBLFfilterSize(int size) = 0;
274 
280  virtual Status adsd3500GetJBLFfilterSize(int &size) = 0;
281 
287  virtual Status adsd3500SetRadialThresholdMin(int threshold) = 0;
288 
294  virtual Status adsd3500GetRadialThresholdMin(int &threshold) = 0;
295 
301  virtual Status adsd3500SetRadialThresholdMax(int threshold) = 0;
302 
308  virtual Status adsd3500GetRadialThresholdMax(int &threshold) = 0;
309 
315  virtual Status adsd3500GetSensorTemperature(uint16_t &tmpValue) = 0;
316 
322  virtual Status adsd3500GetLaserTemperature(uint16_t &tmpValue) = 0;
323 
329  virtual Status adsd3500GetFirmwareVersion(std::string &fwVersion,
330  std::string &fwHash) = 0;
331 
337  virtual Status adsd3500SetMIPIOutputSpeed(uint16_t speed) = 0;
338 
344  virtual Status adsd3500GetMIPIOutputSpeed(uint16_t &speed) = 0;
345 
351  virtual Status adsd3500GetImagerErrorCode(uint16_t &errcode) = 0;
352 
358  virtual Status adsd3500SetVCSELDelay(uint16_t delay) = 0;
359 
365  virtual Status adsd3500GetVCSELDelay(uint16_t &delay) = 0;
366 
372  virtual Status adsd3500SetJBLFMaxEdgeThreshold(uint16_t threshold) = 0;
373 
379  virtual Status adsd3500SetJBLFABThreshold(uint16_t threshold) = 0;
380 
386  virtual Status adsd3500SetJBLFGaussianSigma(uint16_t value) = 0;
387 
393  virtual Status adsd3500GetJBLFGaussianSigma(uint16_t &value) = 0;
394 
400  virtual Status adsd3500SetJBLFExponentialTerm(uint16_t value) = 0;
401 
407  virtual Status adsd3500GetJBLFExponentialTerm(uint16_t &value) = 0;
408 
414  virtual Status adsd3500GetFrameRate(uint16_t &fps) = 0;
415 
421  virtual Status adsd3500SetFrameRate(uint16_t fps) = 0;
422 
428  virtual Status adsd3500SetEnableEdgeConfidence(uint16_t value) = 0;
429 
435  virtual Status
436  adsd3500GetTemperatureCompensationStatus(uint16_t &value) = 0;
437 
443  virtual Status adsd3500SetEnablePhaseInvalidation(uint16_t value) = 0;
444 
450  virtual Status adsd3500SetEnableTemperatureCompensation(uint16_t value) = 0;
451 
457  virtual aditof::Status adsd3500SetEnableMetadatainAB(uint16_t value) = 0;
458 
464  virtual aditof::Status adsd3500GetEnableMetadatainAB(uint16_t &value) = 0;
465 
472  virtual Status adsd3500SetGenericTemplate(uint16_t reg, uint16_t value) = 0;
473 
480  virtual Status adsd3500GetGenericTemplate(uint16_t reg,
481  uint16_t &value) = 0;
488  virtual Status adsd3500GetStatus(int &chipStatus, int &imagerStatus) = 0;
489 
495  virtual Status adsd3500DisableCCBM(bool disable) = 0;
496 
502  virtual Status adsd3500IsCCBMsupported(bool &supported) = 0;
503 
510  virtual aditof::Status
511  adsd3500setEnableDynamicModeSwitching(bool enable) = 0;
512 
531  virtual aditof::Status adsds3500setDynamicModeSwitchingSequence(
532  const std::vector<std::pair<uint8_t, uint8_t>> &sequence) = 0;
533 
542  virtual Status readSerialNumber(std::string &serialNumber,
543  bool useCacheValue = false) = 0;
544 
550  virtual Status getImagerType(ImagerType &imagerType) const = 0;
551 
557  virtual aditof::Status
558  saveDepthParamsToJsonFile(const std::string &savePathFile) = 0;
559 
566  virtual aditof::Status
567  loadDepthParamsFromJsonFile(const std::string &pathFile) = 0;
568 
574  virtual aditof::Status
575  adsd3500ResetIniParamsForMode(const uint16_t mode) = 0;
576 
583  virtual aditof::Status
584  setSensorConfiguration(const std::string &sensorConf) = 0;
585 
591  virtual void dropFirstFrame(bool dropFrame) = 0;
592 };
593 
594 } // namespace aditof
595 
596 #endif // CAMERA_H
Namespace aditof.
Definition: frame.h:44
+
Manipulates the underlying camera system.
Definition: camera.h:54
+
ImagerType
Types of imagers.
+
Frame of a camera.
Definition: frame.h:50
+
Status
Status of any operation that the TOF sdk performs.
+
Describes the properties of a camera.
+
+ + + + diff --git a/camera__definitions_8h_source.html b/camera__definitions_8h_source.html new file mode 100644 index 00000000..91265c3f --- /dev/null +++ b/camera__definitions_8h_source.html @@ -0,0 +1,115 @@ + + + + + + + +Time-of-Flight-SDK: /home/vsts/work/1/s/sdk/include/aditof/camera_definitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
camera_definitions.h
+
+
+
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_DEFINITIONS_H
33 #define CAMERA_DEFINITIONS_H
34 
35 #include "connections.h"
36 #include "frame_definitions.h"
37 #include "status_definitions.h"
38 
39 #include <functional>
40 #include <memory>
41 #include <string>
42 #include <vector>
43 
47 namespace aditof {
48 
49 class Frame;
50 
59  float fx;
60 
64  float fy;
65 
69  float cx;
70 
74  float cy;
75 
79  float codx;
80 
84  float cody;
85 
89  float k1;
90 
94  float k2;
95 
99  float k3;
100 
104  float k4;
105 
109  float k5;
110 
114  float k6;
115 
119  float p2;
120 
124  float p1;
125 };
126 
135  std::string cameraId;
136 
140  std::uint8_t mode;
141 
146 
151 
156 
161  int maxDepth;
162 
167  int minDepth;
168 
172  int bitCount;
173 
177  std::string uBootVersion;
178 
182  std::string kernelVersion;
183 
187  std::string sdCardImageVersion;
188 
192  std::string serialNumber;
193 };
194 
199 enum class ImagerType {
200  UNSET,
201  ADSD3100,
202  ADSD3030,
203 };
204 
205 } // namespace aditof
206 
207 #endif // CAMERA_DEFINITIONS_H
std::string cameraId
Camera identification.
+ +
Namespace aditof.
Definition: frame.h:44
+ + +
Value for when the type is unset.
+
int maxDepth
The maximum distance (in millimeters) the camera can measure in the current operating mode....
+ + +
int minDepth
The minimum distance (in millimeters) the camera can measure in the current operating mode....
+
The ADSD3030 imager.
+
ImagerType
Types of imagers.
+
std::string uBootVersion
The U-Boot version that is installed on the embedded system that the camera is attached to.
+
Describes the intrinsic parameters of a camera.
+ + +
ConnectionType
Types of connections.
Definition: connections.h:44
+ +
ConnectionType connection
The type of connection with the camera.
+
std::string sdCardImageVersion
The SD card image version on the embedded system that the camera is attached to.
+
The ADSD3100 imager.
+ +
std::string kernelVersion
The kernel version that is installed on the embedded system that the camera is attached to.
+ +
std::uint8_t mode
The mode in which the camera operates.
+
int bitCount
The number of bits used for representing one pixel data. This is currently unused!
+ +
std::string serialNumber
The serial number of camera.
+ +
Describes the properties of a camera.
+ +
Describes the properties of a frame.
+ +
FrameDetails frameType
Details about the frames that camera is capturing.
+
IntrinsicParameters intrinsics
Details about the intrinsic parameters of the camera.
+
+ + + + diff --git a/ci/azure/build_docker_image.sh b/ci/azure/build_docker_image.sh new file mode 100755 index 00000000..1933b6e0 --- /dev/null +++ b/ci/azure/build_docker_image.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Build the given dockerfile with the given name + +. ci/azure/lib.sh + +mkdir -p temp_deps + +get_deps_source_code temp_deps + +dockername=$1 +dockerfilepath=$2 + +docker build -t ${dockername} -f ${dockerfilepath} . + +rm -rf temp_deps diff --git a/ci/azure/deps.sh b/ci/azure/deps.sh new file mode 100755 index 00000000..d1387346 --- /dev/null +++ b/ci/azure/deps.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +set -ex + +. ci/azure/lib.sh + + +deps_default() { + sudo apt-get update + mkdir -p ${DEPS_DIR} + + pushd ${BUILD_DIR} + + get_deps_source_code "${DEPS_DIR}" + build_and_install_glog "${DEPS_DIR}/glog" "${DEPS_DIR}/installed/glog" + build_and_install_protobuf "${DEPS_DIR}/protobuf" "${DEPS_DIR}/installed/protobuf" + build_and_install_websockets "${DEPS_DIR}/libwebsockets" "${DEPS_DIR}/installed/websockets" + build_and_install_opencv "${DEPS_DIR}/opencv-${OPENCV}" "${DEPS_DIR}/installed/opencv" + + if [[ ${CMAKE_OPTIONS} == *"WITH_OPEN3D=on"* ]]; then + build_and_install_open3d "${DEPS_DIR}/Open3D" "${DEPS_DIR}/installed/Open3D" + fi + + popd +} + +deps_cppcheck() { + sudo apt-get install cppcheck + echo_green "Cppcheck version: " `cppcheck --version` + cppcheck --version +} + +deps_clang_format() { + sudo apt-get install clang-format + echo_green "Clang-format version: " `/usr/bin/clang-format --version` +} + +deps_deploy_doxygen() { + install_doxygen + echo_green "Doxygen version: " `doxygen --version` +} + +deps_${BUILD_TYPE:-default} diff --git a/ci/azure/imx8-docker/Dockerfile b/ci/azure/imx8-docker/Dockerfile new file mode 100644 index 00000000..30061d07 --- /dev/null +++ b/ci/azure/imx8-docker/Dockerfile @@ -0,0 +1,19 @@ +FROM arm64v8/ubuntu:20.04 + +RUN mkdir -p aditof-deps +WORKDIR aditof-deps + +ENV TZ=Asia/Dubai +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +COPY ci/azure/lib.sh /aditof-deps +COPY ci/azure/setup_docker.sh /aditof-deps +ADD temp_deps/ /aditof-deps + +RUN apt update +RUN apt install -y sudo + +RUN sudo apt install -y build-essential cmake python2-dev python3-dev libssl-dev git libopencv-contrib-dev libopencv-dev libgl1-mesa-dev libglfw3-dev + +RUN chmod +x ./setup_docker.sh +RUN ./setup_docker.sh diff --git a/ci/azure/inside_docker.sh b/ci/azure/inside_docker.sh new file mode 100755 index 00000000..9c1eb92e --- /dev/null +++ b/ci/azure/inside_docker.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +project_dir=$1 +pushd ${project_dir} + +GLOG_INSTALL_DIR="/aditof-deps/installed/glog" +PROTOBUF_INSTALL_DIR="/aditof-deps/installed/protobuf" +WEBSOCKETS_INSTALL_DIR="/aditof-deps/installed/websockets" +OPENCV_INSTALL_DIR="/aditof-deps/installed/opencv" +NUM_JOBS=4 +ARGS="$2" + +mkdir -p build +mkdir ../libs + +pushd build +cmake .. ${ARGS} -DCMAKE_PREFIX_PATH="${GLOG_INSTALL_DIR};${PROTOBUF_INSTALL_DIR};${WEBSOCKETS_INSTALL_DIR};${OPENCV_INSTALL_DIR}" +make -j${NUM_JOBS} +popd #build + +popd # ${project_dir} diff --git a/ci/azure/lib.sh b/ci/azure/lib.sh new file mode 100755 index 00000000..46f33658 --- /dev/null +++ b/ci/azure/lib.sh @@ -0,0 +1,353 @@ +#!/bin/bash + +echo_red() { printf "\033[1;31m$*\033[m\n"; } +echo_green() { printf "\033[1;32m$*\033[m\n"; } + +############################################################################ +# Check if the file passed as arguments is ignored or not by clang format +############################################################################ +is_not_ignored() { + local file="$1" + + fileData=`cat .clangformatignore` + + for entry in $fileData; do + if [ -d "${entry}" ]; then + pushd ${entry} + fileName=`basename ${file}` + found=$(find -name ${fileName} | wc -l) + if [ ${found} -gt 0 ]; then + popd + return 1 + else + popd + fi + else + if [ -f "${entry}" ]; then + if [ "${file}" == "${entry}" ]; then + return 1 + fi + fi + fi + done; + return 0 +} + + +############################################################################ +# Check if the file given as input has .h or .cpp extension +############################################################################ +is_source_file() { + local file="$1" + + EXTENSIONS=".h .cpp" + + for extension in $EXTENSIONS; do + [[ "${file: -2}" == "$extension" || "${file: -4}" == "$extension" ]] && return 0 + done; + + return 1 +} + +############################################################################ +# Check if the files modified in the current commit / commit range respect +# the coding style defined in the .clang-format file +############################################################################ +check_clangformat() { + + if [ -z "$TRAVIS_PULL_REQUEST_SHA" ] + then + COMMIT_RANGE=HEAD~1 + fi + + # git diff --name-only --diff-filter=d $COMMIT_RANGE | while read -r file; do + git ls-tree -r --name-only HEAD | while read -r file; do + if is_source_file "$file" && is_not_ignored "$file" + then + /usr/bin/clang-format -i "$file" + fi + + done; + + git diff --exit-code || { + echo_red "The code is not properly formatted." + exit 1 + } + +} + +############################################################################ +# Run the cpp static analysis tool on the sdk +############################################################################ +check_cppcheck() { + cppcheck --quiet --force --enable=warning,performance,portability,style --std=c++11 sdk/ apps/ +} + +############################################################################ +# Check if the documentation will be generated w/o warnings or errors +############################################################################ +check_doxygen() { + pushd ${WORK_DIR}/doc + (cd build && ! make doc 2>&1 | grep -E "warning:|error:") || { + echo_red "Documentation incomplete or errors in the generation of it have occured!" + exit 1 + } + popd + echo_green "Documentation was generated successfully!" +} + +############################################################################ +# If the current build is not a pull request and it is on main the +# documentation will be pushed to the gh-pages branch if changes occurred +# since the last version that was pushed +############################################################################ +deploy_doxygen() { + if [[ "${IS_PULL_REQUEST}" == "False" && "${BRANCH_NAME}" == "main" ]] + then + echo_green "Running Github docs update on commit '$CURRENT_COMMIT'" + + git config --global user.email "cse-ci-notifications@analog.com" + git config --global user.name "CSE-CI" + + git fetch --depth 1 origin +refs/heads/gh-pages:gh-pages + + rm -rf ${DEPS_DIR} + + git checkout gh-pages + + cp -R ${WORK_DIR}/doc/build/doxygen_doc/html/* ${WORK_DIR} + + rm -rf ${WORK_DIR}/doc + + GHPAGES_CURRENT_COMMIT=$(git log -1 --pretty=%B) + if [[ ${GHPAGES_CURRENT_COMMIT:(-7)} != ${CURRENT_COMMIT:0:7} ]] + then + git add --all . + git commit --allow-empty --amend -m "Update documentation to ${CURRENT_COMMIT:0:7}" + git push origin gh-pages -f + else + echo_green "Documentation already up to date!" + fi + + else + echo_green "Documentation will be updated when this commit gets on main!" + fi +} + +############################################################################ +# Build and install v0.6.0 of glog from the specified repository +############################################################################ +build_and_install_glog() { + REPO_DIR=$1 + INSTALL_DIR=$2 + EXTRA_CMAKE_OPTIONS=$3 + LIB_BUILD_DIR=${REPO_DIR}/build_0_6_0 + + mkdir -p ${LIB_BUILD_DIR} + mkdir -p ${INSTALL_DIR} + + pushd ${LIB_BUILD_DIR} + + cmake .. -DWITH_GFLAGS=off -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" ${EXTRA_CMAKE_OPTIONS} + make -j${NUM_JOBS} + make install + + popd +} + +############################################################################ +# Build and install v3.9.0 of protobuf from the specified repository +############################################################################ +build_and_install_protobuf() { + REPO_DIR=$1 + INSTALL_DIR=$2 + EXTRA_CMAKE_OPTIONS=$3 + LIB_BUILD_DIR=${REPO_DIR}/build_3_9_0 + + mkdir -p ${LIB_BUILD_DIR} + mkdir -p ${INSTALL_DIR} + + pushd ${LIB_BUILD_DIR} + + cmake ../cmake/ -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" #${EXTRA_CMAKE_OPTIONS} + make -j${NUM_JOBS} + make install + + popd +} + +############################################################################ +# Build and install v3.1.0 of libwebsockets from the specified repository +############################################################################ +build_and_install_websockets() { + REPO_DIR=$1 + INSTALL_DIR=$2 + EXTRA_CMAKE_OPTIONS=$3 + LIB_BUILD_DIR=${REPO_DIR}/build_3_1_0 + + mkdir -p ${INSTALL_DIR} + mkdir -p ${LIB_BUILD_DIR} + + pushd ${LIB_BUILD_DIR} + + cmake .. -DLWS_WITH_SSL=OFF -DLWS_STATIC_PIC=ON -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" ${EXTRA_CMAKE_OPTIONS} + make -j${NUM_JOBS} + make install + + popd +} + +############################################################################ +# Build and install opencv from the specified repository +############################################################################ +build_and_install_opencv() { + # OpenCV version may be custom so we replace the . with _ to make + # he build folder. example: 3.4.1 => 3_4_1 + OPENCV_BUILD_VERSION=`echo ${OPENCV} | sed -r 's/[.]/_/g'` + REPO_DIR=$1 + INSTALL_DIR=$2 + LIB_BUILD_DIR=${REPO_DIR}/build_${OPENCV_BUILD_VERSION} + + # Install some packages requiered for OpenCV + sudo apt-get install -y build-essential libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev + + mkdir -p ${LIB_BUILD_DIR} + pushd ${LIB_BUILD_DIR} + + cmake -D CMAKE_BUILD_TYPE=RELEASE -DWITH_CUDA=0 -D CMAKE_INSTALL_PREFIX=${INSTALL_DIR} -D WITH_TBB=OFF -D WITH_IPP=OFF -D BUILD_NEW_PYTHON_SUPPORT=OFF -D WITH_V4L=OFF -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF -D WITH_QT=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -DCPU_DISPATCH= .. + make -j${NUM_JOBS} + make install + + sudo sh -c 'echo "${INSTALL_DIR}/lib" > /etc/ld.so.conf.d/opencv.conf' + sudo ldconfig + + popd +} + +############################################################################ +# Build and install open3d from the specified repository +############################################################################ +build_and_install_open3d() { + REPO_DIR=$1 + INSTALL_DIR=$2 + EXTRA_CMAKE_OPTIONS=$3 + LIB_BUILD_DIR=${REPO_DIR}/build_3_1_0 + + chmod +x ${REPO_DIR}/util/scripts/install-deps-ubuntu.sh + bash ${REPO_DIR}/util/scripts/install-deps-ubuntu.sh "assume-yes" + + mkdir -p ${LIB_BUILD_DIR} + pushd ${LIB_BUILD_DIR} + + cmake -D CMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_PYBIND11=off -DBUILD_PYTHON_MODULE=off -DGLIBCXX_USE_CXX11_ABI=on .. + make -j${NUM_JOBS} + + make install +} + +############################################################################ +# Install the latest version of doxygen in the /deps folder +############################################################################ +install_doxygen() { + mkdir -p ${DEPS_DIR} + sudo apt-get install graphviz + DOXYGEN_URL="wget https://sourceforge.net/projects/doxygen/files/rel-1.8.15/doxygen-1.8.15.src.tar.gz" + pushd ${DEPS_DIR} + [ -d "doxygen" ] || { + mkdir doxygen && wget --quiet -O - ${DOXYGEN_URL} | tar --strip-components=1 -xz -C doxygen + } + pushd doxygen + mkdir -p build && cd build + cmake .. + make -j${NUM_JOBS} + sudo make install + popd + popd +} + + + +############################################################################ +# Get source code for dependencies: glog, protobuf, libwebsockets +############################################################################ +get_deps_source_code() { + CLONE_DIRECTORY=$1 + pushd "${CLONE_DIRECTORY}" + + # use opencv 3.4.1 by default if no other version is specified + if [[ "${OPENCV}" == "" ]]; then + export OPENCV="3.4.1" + fi + + [ -d "glog" ] || { + git clone --branch v0.6.0 --depth 1 https://github.com/google/glog + } + + [ -d "protobuf" ] || { + git clone --branch v3.9.0 --depth 1 https://github.com/protocolbuffers/protobuf + } + + [ -d "libwebsockets" ] || { + git clone --branch v3.1-stable --depth 1 https://github.com/warmcat/libwebsockets + } + + [ -d "opencv-${OPENCV}" ] || { + curl -sL https://github.com/Itseez/opencv/archive/${OPENCV}.zip > opencv.zip + unzip -q opencv.zip + } + + if [[ ${CMAKE_OPTIONS} == *"WITH_OPEN3D=on"* ]]; then + [ -d "Open3D" ] || { + git clone --recursive --branch v0.9.0 --depth 1 https://github.com/intel-isl/Open3D.git + } + fi + + popd +} + +############################################################################ +# Pull the docker given as argument from docker hub +############################################################################ +pull_docker() { + docker=$1 + + sudo apt-get -qq update + sudo service docker restart + + docker run --rm --privileged multiarch/qemu-user-static:register --reset + + docker_file=${DEPS_DIR}/docker-image.tar + if [[ -f ${docker_file} ]]; then + echo_green "Found ${docker} in cache!" + docker load -i ${docker_file} + else + echo_green "Pulling ${docker} from docker hub!" + docker pull ${docker} + docker save -o ${docker_file} ${docker} + fi +} + +############################################################################ +# Run the script given as argument 2 inside the docker given as argument 1 +# with the given arguments 3 +############################################################################ +run_docker() { + docker=$1 + script=$2 + script_args="$3" + + sudo apt-get -qq update + + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y qemu \ + qemu binfmt-support qemu-user-static + + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + + sudo service docker restart + sudo docker pull ${docker} + + sudo docker run --rm=true \ + -v `pwd`:/ToF:rw \ + ${docker} \ + /bin/bash -xe ${script} /ToF "${script_args}" +} diff --git a/ci/azure/nvidia-docker/Dockerfile b/ci/azure/nvidia-docker/Dockerfile new file mode 100644 index 00000000..c5b6f1a6 --- /dev/null +++ b/ci/azure/nvidia-docker/Dockerfile @@ -0,0 +1,21 @@ +FROM nvcr.io/nvidia/l4t-base:r35.2.0 +# LABEL io.balena.architecture="aarch64" + +# LABEL io.balena.qemu.version="5.2.0+balena-aarch64" +# COPY qemu-aarch64-static /usr/bin + +RUN mkdir -p aditof-deps +WORKDIR aditof-deps + +COPY ci/azure/lib.sh /aditof-deps +COPY ci/azure/setup_docker.sh /aditof-deps +ADD temp_deps/ /aditof-deps + +RUN apt update +RUN apt install -y sudo + +RUN sudo apt install -y build-essential cmake python-dev python3-dev \ + libssl-dev git libgl1-mesa-dev libglfw3-dev + +RUN chmod +x ./setup_docker.sh +RUN ./setup_docker.sh diff --git a/ci/azure/readme.md b/ci/azure/readme.md new file mode 100644 index 00000000..e0e66228 --- /dev/null +++ b/ci/azure/readme.md @@ -0,0 +1,18 @@ +# Useful scripts +* Building cross platform docker images with limited memory usage: +```console +sudo docker buildx build -m 2g --output=type=docker --memory-swap +2g -t --platform linux/arm64/v8 . +``` + +* Run interactive mode for cross platform docker images +```console +sudo docker run -v /bin/qemu-aarch64-static:/usr/bin/qemu-aarch64- +static --platform linux/arm64/v8 -it bash +``` + +* Tag images +```console +docker image tag +``` + diff --git a/ci/azure/run_build.sh b/ci/azure/run_build.sh new file mode 100755 index 00000000..c9d57bbf --- /dev/null +++ b/ci/azure/run_build.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +set -ex + +. ci/azure/lib.sh + + +build_default() { + + # setup more deps + # TODO cache this + sudo apt-get update + sudo apt-get install -y build-essential libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libgl1-mesa-dev libglfw3-dev + + sudo sh -c 'echo "${DEPS_DIR}/installed/opencv/lib" > /etc/ld.so.conf.d/opencv.conf' + sudo ldconfig + + # setup compiler + if [[ "${COMPILER_CXX}" != "" ]]; then export CXX=${COMPILER_CXX}; fi + if [[ "${COMPILER_CC}" != "" ]]; then export CC=${COMPILER_CC}; fi + + mkdir -p ${BUILD_DIR} + mkdir ../libs + + pushd ${BUILD_DIR} + pwd + cmake ${DEFAULT_CMAKE_FLAGS} ${EXTRA_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH="${DEPS_DIR}/installed/glog;${DEPS_DIR}/installed/protobuf;${DEPS_DIR}/installed/websockets;${DEPS_DIR}/installed/Open3D;${DEPS_DIR}/installed/opencv" .. + make -j${NUM_JOBS} + popd +} + +build_cppcheck() { + check_cppcheck +} + +build_clang_format() { + check_clangformat +} + +build_deploy_doxygen() { + mkdir -p "${WORK_DIR}/doc" + pushd "${WORK_DIR}/doc" + mkdir build && cd build && cmake .. + check_doxygen + popd + + deploy_doxygen +} + +build_docker() { + run_docker ${DOCKER} /ToF/ci/azure/inside_docker.sh "${DEFAULT_CMAKE_FLAGS} ${EXTRA_CMAKE_FLAGS}" +} + +if [[ "${DOCKER}" != "" ]]; then export BUILD_TYPE="docker"; fi + +build_${BUILD_TYPE:-default} diff --git a/ci/azure/setup_docker.sh b/ci/azure/setup_docker.sh new file mode 100644 index 00000000..3f75995b --- /dev/null +++ b/ci/azure/setup_docker.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# This script will install glog, libprotobuf and libwebsockets in an aditof-deps +# folder inside a docker + +. lib.sh + +GLOG_INSTALL_DIR="$PWD/installed/glog" +PROTOBUF_INSTALL_DIR="$PWD/installed/protobuf" +WEBSOCKETS_INSTALL_DIR="$PWD/installed/websockets" +OPENCV_INSTALL_DIR="$PWD/installed/opencv" + +if [[ "${OPENCV}" == "" ]]; then + export OPENCV="3.4.1" +fi + +build_and_install_opencv "opencv-${OPENCV}" ${OPENCV_INSTALL_DIR} +build_and_install_glog "glog" ${GLOG_INSTALL_DIR} +build_and_install_protobuf "protobuf" ${PROTOBUF_INSTALL_DIR} +build_and_install_websockets "libwebsockets" ${WEBSOCKETS_INSTALL_DIR} diff --git a/ci/azure/setup_paths.sh b/ci/azure/setup_paths.sh new file mode 100755 index 00000000..e497e174 --- /dev/null +++ b/ci/azure/setup_paths.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -ex + +#we need to export all those variables from a script because of pwd +setup_absolute_paths() { + export WORK_DIR=$(pwd) + export BUILD_DIR="${WORK_DIR}/build" + export DEPS_DIR="${BUILD_DIR}/deps" +} + +setup_absolute_paths \ No newline at end of file diff --git a/ci/azure/windows-build/build_sdk.ps1 b/ci/azure/windows-build/build_sdk.ps1 new file mode 100644 index 00000000..13db51c8 --- /dev/null +++ b/ci/azure/windows-build/build_sdk.ps1 @@ -0,0 +1,16 @@ +#install OpenCV +choco install opencv --version 3.4.1 + +#build sdk +mkdir build_Release +mkdir build_Debug +mkdir ../libs + +cd build_Release +cmake -DWITH_OPENCV=on -DWITH_PYTHON=on -DCMAKE_PREFIX_PATH="../deps_installed/Release/glog;../deps_installed/Release/protobuf;../deps_installed/Release/websockets" -DOpenCV_DIR="C:/tools/opencv/build/x64/vc15/lib" .. +cmake --build . --target install --config Release -j 4 + +cd ../build_Debug +cmake -DWITH_OPENCV=on -DWITH_PYTHON=on -DCMAKE_PREFIX_PATH="../deps_installed/Debug/glog;../deps_installed/Debug/protobuf;../deps_installed/Debug/websockets" -DOpenCV_DIR="C:/tools/opencv/build/x64/vc15/lib" .. +cmake --build . --target install --config Debug -j 4 + diff --git a/ci/azure/windows-build/install_deps.ps1 b/ci/azure/windows-build/install_deps.ps1 new file mode 100644 index 00000000..6a4cbb3b --- /dev/null +++ b/ci/azure/windows-build/install_deps.ps1 @@ -0,0 +1,57 @@ +$ARCH=$Env:ARCH +$GENERATOR=$Env:COMPILER + +$local_path=$pwd +mkdir deps_installed + +mkdir -p deps_installed/Release/glog +mkdir -p deps_installed/Debug/glog + +mkdir -p deps_installed/Release/protobuf +mkdir -p deps_installed/Debug/protobuf + +mkdir -p deps_installed/Release/websockets +mkdir -p deps_installed/Debug/websockets + +#Install glog +git clone --branch v0.6.0 --depth 1 https://github.com/google/glog +cd glog +mkdir build_0_6_0_Release +mkdir build_0_6_0_Debug + +cd build_0_6_0_Release +cmake -DWITH_GFLAGS=off -DCMAKE_INSTALL_PREFIX="$local_path/deps_installed/Release/glog" -G $GENERATOR .. +cmake --build . --target install --config Release -j 4 + +cd ../build_0_6_0_Debug +cmake -DWITH_GFLAGS=off -DCMAKE_INSTALL_PREFIX="$local_path/deps_installed/Debug/glog" -G $GENERATOR .. +cmake --build . --target install --config Debug -j 4 + +#Install websockets +cd $local_path +git clone --branch v3.2.3 --depth 1 https://github.com/warmcat/libwebsockets +cd libwebsockets +mkdir build_3_2_3_Release +mkdir build_3_2_3_Debug + +cd build_3_2_3_Release +cmake -DLWS_WITH_SSL=OFF -DCMAKE_INSTALL_PREFIX="$local_path/deps_installed/Release/websockets" -G $GENERATOR .. +cmake --build . --target install --config Release -j 4 + +cd ../build_3_2_3_Debug +cmake -DLWS_WITH_SSL=OFF -DCMAKE_INSTALL_PREFIX="$local_path/deps_installed/Debug/websockets" -G $GENERATOR .. +cmake --build . --target install --config Debug -j 4 + +cd $local_path +git clone --branch v3.9.0 --depth 1 https://github.com/protocolbuffers/protobuf +cd protobuf +mkdir build_3_9_0_Release +mkdir build_3_9_0_Debug + +cd build_3_9_0_Release +cmake -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -DCMAKE_INSTALL_PREFIX="$local_path/deps_installed/Release/protobuf" -G $GENERATOR ../cmake +cmake --build . --target install --config Release -j 4 + +cd ../build_3_9_0_Debug +cmake -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -DCMAKE_INSTALL_PREFIX="$local_path/deps_installed/Debug/protobuf" -G $GENERATOR ../cmake +cmake --build . --target install --config Debug -j 4 diff --git a/classaditof_1_1_a_d_s_d_errors-members.html b/classaditof_1_1_a_d_s_d_errors-members.html new file mode 100644 index 00000000..a648d671 --- /dev/null +++ b/classaditof_1_1_a_d_s_d_errors-members.html @@ -0,0 +1,126 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::ADSDErrors Member List
+
+
+ +

This is the complete list of members for aditof::ADSDErrors, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ADSD3100_ERR_LASER_CHIPIDaditof::ADSDErrors
ADSD3100_ERR_LASER_LONG_LEN_ONaditof::ADSDErrors
ADSD3100_ERR_LASER_LPSaditof::ADSDErrors
ADSD3100_ERR_LASER_LPS_READaditof::ADSDErrors
ADSD3100_ERR_LASER_NO_DIFFUSERaditof::ADSDErrors
ADSD3100_ERR_LASER_SHORTaditof::ADSDErrors
ADSD3100_ERR_LASER_SHORT_LEN_OFFaditof::ADSDErrors
ADSD3100_ERR_LASER_VLD_HIGHaditof::ADSDErrors
ADSD3100_ERR_LASER_VLD_LOWaditof::ADSDErrors
ADSD3100_ERR_LVDS_HIGH_DCaditof::ADSDErrors
ADSD3100_ERR_LVDS_OPEN_SHORTaditof::ADSDErrors
ADSD3100_ERR_LVDS_PULSE_LONGaditof::ADSDErrors
ADSD3100_ERR_MODE_MODE_DRIVERaditof::ADSDErrors
ADSD3100_ERR_MODE_USECASEaditof::ADSDErrors
ADSD3100_ERR_OVERHEAT_IMAGERaditof::ADSDErrors
ADSD3100_ERR_OVERHEAT_LDaditof::ADSDErrors
ADSD3100_ERR_PLLLOCK_LOCK1aditof::ADSDErrors
ADSD3100_ERR_PLLLOCK_LOCK2aditof::ADSDErrors
ADSD3100_ERR_PLLLOCK_LOCK3aditof::ADSDErrors
ADSD3500_STATUS_DYNAMIC_MODE_SWITCHING_NOT_ENABLEDaditof::ADSDErrors
ADSD3500_STATUS_FIRMWARE_UPDATE_COMPLETEaditof::ADSDErrors
ADSD3500_STATUS_FLASH_FILE_PARSE_ERRORaditof::ADSDErrors
ADSD3500_STATUS_FLASH_HEADER_PARSE_ERRORaditof::ADSDErrors
ADSD3500_STATUS_IMAGER_BOOT_FAILUREaditof::ADSDErrors
ADSD3500_STATUS_IMAGER_COMMUNICATION_ERRORaditof::ADSDErrors
ADSD3500_STATUS_IMAGER_ERRORaditof::ADSDErrors
ADSD3500_STATUS_INVALID_CCBaditof::ADSDErrors
ADSD3500_STATUS_INVALID_CHIPIDaditof::ADSDErrors
ADSD3500_STATUS_INVALID_DYNAMIC_MODE_COMPOSITIONSaditof::ADSDErrors
ADSD3500_STATUS_INVALID_FIRMWARE_CRCaditof::ADSDErrors
ADSD3500_STATUS_INVALID_IMAGERaditof::ADSDErrors
ADSD3500_STATUS_INVALID_JBLF_FILTER_SIZEaditof::ADSDErrors
ADSD3500_STATUS_INVALID_MEMORY_REGIONaditof::ADSDErrors
ADSD3500_STATUS_INVALID_MODEaditof::ADSDErrors
ADSD3500_STATUS_INVALID_PHASE_INVALID_VALUEaditof::ADSDErrors
ADSD3500_STATUS_NVM_WRITE_COMPLETEaditof::ADSDErrors
ADSD3500_STATUS_SPIM_ERRORaditof::ADSDErrors
ADSD3500_STATUS_TIMEOUT_ERRORaditof::ADSDErrors
ADSD3500_STATUS_UNSUPPORTED_CMDaditof::ADSDErrors
ADSDErrors() (defined in aditof::ADSDErrors)aditof::ADSDErrorsinline
GetStringADSD3030(uint16_t value)aditof::ADSDErrorsinline
GetStringADSD3100(uint16_t value)aditof::ADSDErrorsinline
GetStringADSD3500(uint16_t value)aditof::ADSDErrorsinline
+ + + + diff --git a/classaditof_1_1_a_d_s_d_errors.html b/classaditof_1_1_a_d_s_d_errors.html new file mode 100644 index 00000000..2f3e6fdc --- /dev/null +++ b/classaditof_1_1_a_d_s_d_errors.html @@ -0,0 +1,432 @@ + + + + + + + +Time-of-Flight-SDK: aditof::ADSDErrors Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::ADSDErrors Class Reference
+
+
+ +

Error codes from the ADSD3500, ADSD3100, ADSD3030 Usage: Included with aditof/camera.h For example: ADSDErrors err; LOG(INFO) << err.GetStringADSD3500(0x0001);. + More...

+ +

#include <adsd_errs.h>

+ + + + + + + + + + + +

+Public Member Functions

std::string GetStringADSD3500 (uint16_t value)
 Returns a string for a given target (adsdType) and error code for the ADSD3500. More...
 
std::string GetStringADSD3100 (uint16_t value)
 Returns a string for a given target (adsdType) and error code for the ADSD3100. More...
 
std::string GetStringADSD3030 (uint16_t value)
 Returns a string for a given target (adsdType) and error code for the ADSD3030. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+const uint16_t ADSD3500_STATUS_INVALID_MODE = 0x0001
 Mode selected is invalid.
 
+const uint16_t ADSD3500_STATUS_INVALID_JBLF_FILTER_SIZE = 0x0002
 The JBLF filter size speficied is incorrect.
 
+const uint16_t ADSD3500_STATUS_UNSUPPORTED_CMD = 0x0003
 An unsupported command was sent to the ASDD3500.
 
+const uint16_t ADSD3500_STATUS_INVALID_MEMORY_REGION = 0x0004
 TODO.
 
+const uint16_t ADSD3500_STATUS_INVALID_FIRMWARE_CRC = 0x0005
 The ADSD3500 firmware CRC check failed.
 
+const uint16_t ADSD3500_STATUS_INVALID_IMAGER = 0x0006
 The imager firmware is not valid.
 
+const uint16_t ADSD3500_STATUS_INVALID_CCB = 0x0007
 The imager CCB file is not valid.
 
+const uint16_t ADSD3500_STATUS_FLASH_HEADER_PARSE_ERROR = 0x0008
 Flash update error.
 
+const uint16_t ADSD3500_STATUS_FLASH_FILE_PARSE_ERROR = 0x0009
 Flash update error.
 
+const uint16_t ADSD3500_STATUS_SPIM_ERROR = 0x000A
 SPI Master error occured, which this impacts the ADSD3500 - image communication.
 
+const uint16_t ADSD3500_STATUS_INVALID_CHIPID = 0x000B
 The imager chip ID is invalid.
 
const uint16_t ADSD3500_STATUS_IMAGER_COMMUNICATION_ERROR = 0x000C
 SPI Master error occured during communication between the ASDSD3500 and the imager. More...
 
+const uint16_t ADSD3500_STATUS_IMAGER_BOOT_FAILURE = 0x000D
 Unable to boot the imager.
 
+const uint16_t ADSD3500_STATUS_IMAGER_ERROR = 0x0010
 The imager reported an error.
 
+const uint16_t ADSD3500_STATUS_TIMEOUT_ERROR = 0x0011
 This is when timer is expired but ADSD3500 is not able to send out frame due to some error.
 
+const uint16_t ADSD3500_STATUS_DYNAMIC_MODE_SWITCHING_NOT_ENABLED = 0x0013
 Dynamic mode switching is being set, but it is not enabled.
 
+const uint16_t ADSD3500_STATUS_INVALID_DYNAMIC_MODE_COMPOSITIONS = 0x0014
 The selected dyanamic mode configuration is not valid.
 
+const uint16_t ADSD3500_STATUS_INVALID_PHASE_INVALID_VALUE = 0x0015
 An incorrect phase invalid value specified.
 
+const uint16_t ADSD3500_STATUS_FIRMWARE_UPDATE_COMPLETE = 0x000E
 Firmware update is complete.
 
+const uint16_t ADSD3500_STATUS_NVM_WRITE_COMPLETE = 0x000F
 NVM update is complete.
 
+const uint16_t ADSD3100_ERR_MODE_USECASE = 0x0001
 Invalid mode selection. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_MODE_MODE_DRIVER = 0x0002
 Invalid LD mode selection. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_PLLLOCK_LOCK1 = 0x0004
 PLLLOCK error location 1. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
const uint16_t ADSD3100_ERR_PLLLOCK_LOCK2
 PLLLOCK error location 2. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010) More...
 
const uint16_t ADSD3100_ERR_PLLLOCK_LOCK3
 PLLLOCK error location 3. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010) More...
 
+const uint16_t ADSD3100_ERR_OVERHEAT_IMAGER = 0x0010
 Imager sensor overheat. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_OVERHEAT_LD = 0x0020
 Laser driver overheat. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_CHIPID = 0x0040
 Laser driver invalid chip ID. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_LPS = 0x0080
 Corrupted laser driver data. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_NO_DIFFUSER = 0x0100
 Laser diffuser problem. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_SHORT = 0x0140
 Laser driver shorted to GND. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LVDS_HIGH_DC = 0x0180
 Laser driver duty cycle too large. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LVDS_PULSE_LONG = 0x01C0
 Laser driver active time too long. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LVDS_OPEN_SHORT = 0x0200
 Laser driver input open or short detected. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_LONG_LEN_ON = 0x0240
 Laser driver enabled for too long of time. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_SHORT_LEN_OFF = 0x0280
 Laser driver disabled for too short of time. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_LPS_READ = 0x02C0
 Laser driver corrupted data. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_VLD_LOW = 0x0300
 Laser driver supply too low. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+const uint16_t ADSD3100_ERR_LASER_VLD_HIGH = 0x0340
 Laser driver supply too high. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)
 
+

Detailed Description

+

Error codes from the ADSD3500, ADSD3100, ADSD3030 Usage: Included with aditof/camera.h For example: ADSDErrors err; LOG(INFO) << err.GetStringADSD3500(0x0001);.

+ +

Definition at line 51 of file adsd_errs.h.

+

Member Function Documentation

+ +

◆ GetStringADSD3030()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string aditof::ADSDErrors::GetStringADSD3030 (uint16_t value)
+
+inline
+
+ +

Returns a string for a given target (adsdType) and error code for the ADSD3030.

+
Parameters
+ + +
[in]value- Error value
+
+
+
Returns
Error string
+ +

Definition at line 159 of file adsd_errs.h.

+ +
+
+ +

◆ GetStringADSD3100()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string aditof::ADSDErrors::GetStringADSD3100 (uint16_t value)
+
+inline
+
+ +

Returns a string for a given target (adsdType) and error code for the ADSD3100.

+
Parameters
+ + +
[in]value- Error value
+
+
+
Returns
Error string
+ +

Definition at line 141 of file adsd_errs.h.

+ +
+
+ +

◆ GetStringADSD3500()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string aditof::ADSDErrors::GetStringADSD3500 (uint16_t value)
+
+inline
+
+ +

Returns a string for a given target (adsdType) and error code for the ADSD3500.

+
Parameters
+ + +
[in]value- Error value
+
+
+
Returns
Error string
+ +

Definition at line 123 of file adsd_errs.h.

+ +
+
+

Member Data Documentation

+ +

◆ ADSD3100_ERR_PLLLOCK_LOCK2

+ +
+
+ + + + +
const uint16_t aditof::ADSDErrors::ADSD3100_ERR_PLLLOCK_LOCK2
+
+Initial value:
=
0x0008
+

PLLLOCK error location 2. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)

+ +

Definition at line 274 of file adsd_errs.h.

+ +
+
+ +

◆ ADSD3100_ERR_PLLLOCK_LOCK3

+ +
+
+ + + + +
const uint16_t aditof::ADSDErrors::ADSD3100_ERR_PLLLOCK_LOCK3
+
+Initial value:
=
0x000C
+

PLLLOCK error location 3. Imager error codes read via "Get Imager Error Code" (0x0038) command Note, this only valid if "Get Status" (0x0020) reports a value of "ADSD3500_STATUS_IMAGER_ERROR" (0x0010)

+ +

Definition at line 281 of file adsd_errs.h.

+ +
+
+ +

◆ ADSD3500_STATUS_IMAGER_COMMUNICATION_ERROR

+ +
+
+ + + + +
const uint16_t aditof::ADSDErrors::ADSD3500_STATUS_IMAGER_COMMUNICATION_ERROR = 0x000C
+
+ +

SPI Master error occured during communication between the ASDSD3500 and the imager.

+ +

Definition at line 215 of file adsd_errs.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classaditof_1_1_camera-members.html b/classaditof_1_1_camera-members.html new file mode 100644 index 00000000..d413ab51 --- /dev/null +++ b/classaditof_1_1_camera-members.html @@ -0,0 +1,153 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::Camera Member List
+
+
+ +

This is the complete list of members for aditof::Camera, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
adsd3500DisableCCBM(bool disable)=0aditof::Camerapure virtual
adsd3500GetABinvalidationThreshold(int &threshold)=0aditof::Camerapure virtual
adsd3500GetConfidenceThreshold(int &threshold)=0aditof::Camerapure virtual
adsd3500GetEnableMetadatainAB(uint16_t &value)=0aditof::Camerapure virtual
adsd3500GetFirmwareVersion(std::string &fwVersion, std::string &fwHash)=0aditof::Camerapure virtual
adsd3500GetFrameRate(uint16_t &fps)=0aditof::Camerapure virtual
adsd3500GetGenericTemplate(uint16_t reg, uint16_t &value)=0aditof::Camerapure virtual
adsd3500GetImagerErrorCode(uint16_t &errcode)=0aditof::Camerapure virtual
adsd3500GetJBLFExponentialTerm(uint16_t &value)=0aditof::Camerapure virtual
adsd3500GetJBLFfilterEnableState(bool &enabled)=0aditof::Camerapure virtual
adsd3500GetJBLFfilterSize(int &size)=0aditof::Camerapure virtual
adsd3500GetJBLFGaussianSigma(uint16_t &value)=0aditof::Camerapure virtual
adsd3500GetLaserTemperature(uint16_t &tmpValue)=0aditof::Camerapure virtual
adsd3500GetMIPIOutputSpeed(uint16_t &speed)=0aditof::Camerapure virtual
adsd3500GetRadialThresholdMax(int &threshold)=0aditof::Camerapure virtual
adsd3500GetRadialThresholdMin(int &threshold)=0aditof::Camerapure virtual
adsd3500GetSensorTemperature(uint16_t &tmpValue)=0aditof::Camerapure virtual
adsd3500GetStatus(int &chipStatus, int &imagerStatus)=0aditof::Camerapure virtual
adsd3500GetTemperatureCompensationStatus(uint16_t &value)=0aditof::Camerapure virtual
adsd3500GetVCSELDelay(uint16_t &delay)=0aditof::Camerapure virtual
adsd3500IsCCBMsupported(bool &supported)=0aditof::Camerapure virtual
adsd3500ResetIniParamsForMode(const uint16_t mode)=0aditof::Camerapure virtual
adsd3500SetABinvalidationThreshold(int threshold)=0aditof::Camerapure virtual
adsd3500SetConfidenceThreshold(int threshold)=0aditof::Camerapure virtual
adsd3500setEnableDynamicModeSwitching(bool enable)=0aditof::Camerapure virtual
adsd3500SetEnableEdgeConfidence(uint16_t value)=0aditof::Camerapure virtual
adsd3500SetEnableMetadatainAB(uint16_t value)=0aditof::Camerapure virtual
adsd3500SetEnablePhaseInvalidation(uint16_t value)=0aditof::Camerapure virtual
adsd3500SetEnableTemperatureCompensation(uint16_t value)=0aditof::Camerapure virtual
adsd3500SetFrameRate(uint16_t fps)=0aditof::Camerapure virtual
adsd3500SetGenericTemplate(uint16_t reg, uint16_t value)=0aditof::Camerapure virtual
adsd3500SetJBLFABThreshold(uint16_t threshold)=0aditof::Camerapure virtual
adsd3500SetJBLFExponentialTerm(uint16_t value)=0aditof::Camerapure virtual
adsd3500SetJBLFfilterEnableState(bool enable)=0aditof::Camerapure virtual
adsd3500SetJBLFfilterSize(int size)=0aditof::Camerapure virtual
adsd3500SetJBLFGaussianSigma(uint16_t value)=0aditof::Camerapure virtual
adsd3500SetJBLFMaxEdgeThreshold(uint16_t threshold)=0aditof::Camerapure virtual
adsd3500SetMIPIOutputSpeed(uint16_t speed)=0aditof::Camerapure virtual
adsd3500SetRadialThresholdMax(int threshold)=0aditof::Camerapure virtual
adsd3500SetRadialThresholdMin(int threshold)=0aditof::Camerapure virtual
adsd3500SetToggleMode(int mode)=0aditof::Camerapure virtual
adsd3500SetVCSELDelay(uint16_t delay)=0aditof::Camerapure virtual
adsd3500ToggleFsync()=0aditof::Camerapure virtual
adsd3500UpdateFirmware(const std::string &fwFilePath)=0aditof::Camerapure virtual
adsds3500setDynamicModeSwitchingSequence(const std::vector< std::pair< uint8_t, uint8_t >> &sequence)=0aditof::Camerapure virtual
dropFirstFrame(bool dropFrame)=0aditof::Camerapure virtual
enableDepthCompute(bool enable)=0aditof::Camerapure virtual
enableXYZframe(bool enable)=0aditof::Camerapure virtual
getAvailableControls(std::vector< std::string > &controls) const =0aditof::Camerapure virtual
getAvailableModes(std::vector< uint8_t > &availableModes) const =0aditof::Camerapure virtual
getControl(const std::string &control, std::string &value) const =0aditof::Camerapure virtual
getDetails(CameraDetails &details) const =0aditof::Camerapure virtual
getFrameProcessParams(std::map< std::string, std::string > &params)=0aditof::Camerapure virtual
getImagerType(ImagerType &imagerType) const =0aditof::Camerapure virtual
getSensor()=0aditof::Camerapure virtual
initialize(const std::string &configFilepath={})=0aditof::Camerapure virtual
loadDepthParamsFromJsonFile(const std::string &pathFile)=0aditof::Camerapure virtual
normalizeABdata(aditof::Frame *frame, bool useLogScaling)=0aditof::Camerapure virtual
readSerialNumber(std::string &serialNumber, bool useCacheValue=false)=0aditof::Camerapure virtual
requestFrame(Frame *frame)=0aditof::Camerapure virtual
saveDepthParamsToJsonFile(const std::string &savePathFile)=0aditof::Camerapure virtual
saveModuleCCB(const std::string &filepath)=0aditof::Camerapure virtual
saveModuleCFG(const std::string &filepath) const =0aditof::Camerapure virtual
setControl(const std::string &control, const std::string &value)=0aditof::Camerapure virtual
setFrameProcessParams(std::map< std::string, std::string > &params)=0aditof::Camerapure virtual
setMode(const uint8_t &mode)=0aditof::Camerapure virtual
setSensorConfiguration(const std::string &sensorConf)=0aditof::Camerapure virtual
start()=0aditof::Camerapure virtual
stop()=0aditof::Camerapure virtual
~Camera()=defaultaditof::Cameravirtual
+ + + + diff --git a/classaditof_1_1_camera.html b/classaditof_1_1_camera.html new file mode 100644 index 00000000..365f4299 --- /dev/null +++ b/classaditof_1_1_camera.html @@ -0,0 +1,2783 @@ + + + + + + + +Time-of-Flight-SDK: aditof::Camera Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::Camera Class Referenceabstract
+
+
+ +

Manipulates the underlying camera system. + More...

+ +

#include <camera.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual ~Camera ()=default
 Destructor.
 
virtual Status initialize (const std::string &configFilepath={})=0
 Initialize the camera. This is required before performing any operation on the camera. More...
 
virtual Status start ()=0
 Start the camera. This starts the streaming of data from the camera. More...
 
virtual Status stop ()=0
 Stop the camera. This makes the camera to stop streaming. More...
 
virtual Status setMode (const uint8_t &mode)=0
 Puts the camera into the given mode. More...
 
virtual Status getFrameProcessParams (std::map< std::string, std::string > &params)=0
 Get the Depth Compute Library ini parameters. More...
 
virtual Status setFrameProcessParams (std::map< std::string, std::string > &params)=0
 Set the Depth Compute Library ini parameters. More...
 
virtual Status getAvailableModes (std::vector< uint8_t > &availableModes) const =0
 Returns all the modes that are supported by the camera. More...
 
virtual Status requestFrame (Frame *frame)=0
 Captures data from the camera and assigns it to the given frame. More...
 
virtual aditof::Status normalizeABdata (aditof::Frame *frame, bool useLogScaling)=0
 Scale AB image with logarithmic base 10. More...
 
virtual Status getDetails (CameraDetails &details) const =0
 Gets the current details of the camera. More...
 
virtual Status getAvailableControls (std::vector< std::string > &controls) const =0
 Gets the camera's list of controls. More...
 
virtual Status setControl (const std::string &control, const std::string &value)=0
 Sets a specific camera control. More...
 
virtual Status getControl (const std::string &control, std::string &value) const =0
 Gets the value of a specific camera control. More...
 
virtual std::shared_ptr< DepthSensorInterfacegetSensor ()=0
 Gets the sensor of the camera. This gives direct access to low level configuration of the camera sensor. More...
 
virtual Status enableXYZframe (bool enable)=0
 Enable the generation of a XYZ frame. The XYZ frame can be enabled or disabled through .ini configuration file but if this method is explicitly called then it will override the option in the .ini file. By default XYZ frame is disabled. More...
 
virtual Status saveModuleCFG (const std::string &filepath) const =0
 Save the CFG content which is obtained from module memory to a given file path. More...
 
virtual Status saveModuleCCB (const std::string &filepath)=0
 Save the CCB content which is obtained from module memory to a given file path. More...
 
virtual Status enableDepthCompute (bool enable)=0
 Enable or disable the depth processing on the frames received from the sensor Must be called after getFrame() where the depth processing happens. More...
 
virtual Status adsd3500UpdateFirmware (const std::string &fwFilePath)=0
 Update the firmware of ADSD3500 with the content found in the specified file. More...
 
virtual Status adsd3500SetToggleMode (int mode)=0
 Enables or disables FSYNC toggle for ADSD3500. More...
 
virtual Status adsd3500ToggleFsync ()=0
 Toggles ADSD3500 FSYNC once if automated FSYNC is disabled. More...
 
virtual Status adsd3500SetABinvalidationThreshold (int threshold)=0
 Set the AB invalidation threshold. More...
 
virtual Status adsd3500GetABinvalidationThreshold (int &threshold)=0
 Get the AB invalidation threshold. More...
 
virtual Status adsd3500SetConfidenceThreshold (int threshold)=0
 Set the confidence threshold. More...
 
virtual Status adsd3500GetConfidenceThreshold (int &threshold)=0
 Get the confidence threshold. More...
 
virtual Status adsd3500SetJBLFfilterEnableState (bool enable)=0
 Enable/disable the JBLF filter. More...
 
virtual Status adsd3500GetJBLFfilterEnableState (bool &enabled)=0
 Get the JBLF enabled state. More...
 
virtual Status adsd3500SetJBLFfilterSize (int size)=0
 Set the JBLF filter size. More...
 
virtual Status adsd3500GetJBLFfilterSize (int &size)=0
 Get the JBLF filter size. More...
 
virtual Status adsd3500SetRadialThresholdMin (int threshold)=0
 Set the radial threshold min. More...
 
virtual Status adsd3500GetRadialThresholdMin (int &threshold)=0
 Get the radial threshold min. More...
 
virtual Status adsd3500SetRadialThresholdMax (int threshold)=0
 Set the radial threshold max. More...
 
virtual Status adsd3500GetRadialThresholdMax (int &threshold)=0
 Get the radial threshold max. More...
 
virtual Status adsd3500GetSensorTemperature (uint16_t &tmpValue)=0
 Get the sensor temperature. More...
 
virtual Status adsd3500GetLaserTemperature (uint16_t &tmpValue)=0
 Get the laser temperature. More...
 
virtual Status adsd3500GetFirmwareVersion (std::string &fwVersion, std::string &fwHash)=0
 
virtual Status adsd3500SetMIPIOutputSpeed (uint16_t speed)=0
 Set ADSD3500 MIPI output speed. More...
 
virtual Status adsd3500GetMIPIOutputSpeed (uint16_t &speed)=0
 Get ADSD3500 MIPI output speed. More...
 
virtual Status adsd3500GetImagerErrorCode (uint16_t &errcode)=0
 Get error code from the imager. More...
 
virtual Status adsd3500SetVCSELDelay (uint16_t delay)=0
 Set the delay for VCSEL - ADSD3100 imager only. More...
 
virtual Status adsd3500GetVCSELDelay (uint16_t &delay)=0
 Get the delay for VCSEL - ADSD3100 imager only. More...
 
virtual Status adsd3500SetJBLFMaxEdgeThreshold (uint16_t threshold)=0
 Set JBLF Max Edge Threshold. More...
 
virtual Status adsd3500SetJBLFABThreshold (uint16_t threshold)=0
 Get JBLF Max Edge Threshold. More...
 
virtual Status adsd3500SetJBLFGaussianSigma (uint16_t value)=0
 Set JBLF Gaussian Sigma. More...
 
virtual Status adsd3500GetJBLFGaussianSigma (uint16_t &value)=0
 Get JBLF Gaussian Sigma. More...
 
virtual Status adsd3500SetJBLFExponentialTerm (uint16_t value)=0
 Set JBLF Exponential Term. More...
 
virtual Status adsd3500GetJBLFExponentialTerm (uint16_t &value)=0
 Get JBLF Exponential Term. More...
 
virtual Status adsd3500GetFrameRate (uint16_t &fps)=0
 Get Frame Rate. More...
 
virtual Status adsd3500SetFrameRate (uint16_t fps)=0
 Set Frame Rate. More...
 
virtual Status adsd3500SetEnableEdgeConfidence (uint16_t value)=0
 Set Enable Edge Confidence. More...
 
virtual Status adsd3500GetTemperatureCompensationStatus (uint16_t &value)=0
 Get Temperature Compensation Status. More...
 
virtual Status adsd3500SetEnablePhaseInvalidation (uint16_t value)=0
 Set Enable Phase Invalidation. More...
 
virtual Status adsd3500SetEnableTemperatureCompensation (uint16_t value)=0
 Set Enable Temperature Compensation. More...
 
virtual aditof::Status adsd3500SetEnableMetadatainAB (uint16_t value)=0
 Set Enable Metadata in the AB frame. More...
 
virtual aditof::Status adsd3500GetEnableMetadatainAB (uint16_t &value)=0
 Get state of Enable Metadata in the AB frame. More...
 
virtual Status adsd3500SetGenericTemplate (uint16_t reg, uint16_t value)=0
 Generic ADSD3500 function for commands not defined in the SDK (yet) More...
 
virtual Status adsd3500GetGenericTemplate (uint16_t reg, uint16_t &value)=0
 Generic ADSD3500 function for commands not defined in the SDK (yet) More...
 
virtual Status adsd3500GetStatus (int &chipStatus, int &imagerStatus)=0
 Returns the chip status. More...
 
virtual Status adsd3500DisableCCBM (bool disable)=0
 Enable/disable ccb as master. More...
 
virtual Status adsd3500IsCCBMsupported (bool &supported)=0
 Check whether CCB as master is supported or not. More...
 
virtual aditof::Status adsd3500setEnableDynamicModeSwitching (bool enable)=0
 Allows enabling or disabling the Dynamic Mode Switching. NOTE: This must be enabled before configuring the sequence! More...
 
virtual aditof::Status adsds3500setDynamicModeSwitchingSequence (const std::vector< std::pair< uint8_t, uint8_t >> &sequence)=0
 Configures the sequence to be captured. More...
 
virtual Status readSerialNumber (std::string &serialNumber, bool useCacheValue=false)=0
 Read serial number from camera and update cache. More...
 
virtual Status getImagerType (ImagerType &imagerType) const =0
 Provides the type of the imager. More...
 
virtual aditof::Status saveDepthParamsToJsonFile (const std::string &savePathFile)=0
 Save ini file to json format. More...
 
virtual aditof::Status loadDepthParamsFromJsonFile (const std::string &pathFile)=0
 Load adsd parameters from json file. Need setMode to apply. More...
 
virtual aditof::Status adsd3500ResetIniParamsForMode (const uint16_t mode)=0
 Reset the ini parameters from the chip and sets the ones stored in CCB. More...
 
virtual aditof::Status setSensorConfiguration (const std::string &sensorConf)=0
 Set sensor configutation table. More...
 
virtual void dropFirstFrame (bool dropFrame)=0
 Allow drop first frame. More...
 
+

Detailed Description

+

Manipulates the underlying camera system.

+ +

Definition at line 54 of file camera.h.

+

Member Function Documentation

+ +

◆ adsd3500DisableCCBM()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500DisableCCBM (bool disable)
+
+pure virtual
+
+ +

Enable/disable ccb as master.

+
Parameters
+ + +
[in]disable- set to: 1 - disable, 0 - enable
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetABinvalidationThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetABinvalidationThreshold (int & threshold)
+
+pure virtual
+
+ +

Get the AB invalidation threshold.

+
Parameters
+ + +
[out]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetConfidenceThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetConfidenceThreshold (int & threshold)
+
+pure virtual
+
+ +

Get the confidence threshold.

+
Parameters
+ + +
[out]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetEnableMetadatainAB()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::adsd3500GetEnableMetadatainAB (uint16_t & value)
+
+pure virtual
+
+ +

Get state of Enable Metadata in the AB frame.

+
Parameters
+ + +
[out]value- See "Get Output Metadata in AB Frame status" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetFirmwareVersion()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::adsd3500GetFirmwareVersion (std::string & fwVersion,
std::string & fwHash 
)
+
+pure virtual
+
+

Get the ASDSD3500 firmware version from the ADSD3500

Parameters
+ + + +
[out]fwVersion- the ADSD3500 firmware version
[out]fwHash- the ADSD3500 firmware git commit hash
+
+
+ +
+
+ +

◆ adsd3500GetFrameRate()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetFrameRate (uint16_t & fps)
+
+pure virtual
+
+ +

Get Frame Rate.

+
Parameters
+ + +
[out]fps- See "Get Frame Rate" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetGenericTemplate()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::adsd3500GetGenericTemplate (uint16_t reg,
uint16_t & value 
)
+
+pure virtual
+
+ +

Generic ADSD3500 function for commands not defined in the SDK (yet)

+
Parameters
+ + + +
[in]reg- 16-bit ADSD3500 register
[out]value- 16-bit value read from the register
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetImagerErrorCode()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetImagerErrorCode (uint16_t & errcode)
+
+pure virtual
+
+ +

Get error code from the imager.

+
Parameters
+ + +
[out]errcode- See "Get Imager Error Code" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetJBLFExponentialTerm()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetJBLFExponentialTerm (uint16_t & value)
+
+pure virtual
+
+ +

Get JBLF Exponential Term.

+
Parameters
+ + +
[out]value- See "Get JBLF Exponential Term" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetJBLFfilterEnableState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetJBLFfilterEnableState (bool & enabled)
+
+pure virtual
+
+ +

Get the JBLF enabled state.

+
Parameters
+ + +
[out]enabled
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetJBLFfilterSize()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetJBLFfilterSize (int & size)
+
+pure virtual
+
+ +

Get the JBLF filter size.

+
Parameters
+ + +
[out]size
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetJBLFGaussianSigma()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetJBLFGaussianSigma (uint16_t & value)
+
+pure virtual
+
+ +

Get JBLF Gaussian Sigma.

+
Parameters
+ + +
[out]value- See "Get JBLF Gaussian Sigma" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetLaserTemperature()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetLaserTemperature (uint16_t & tmpValue)
+
+pure virtual
+
+ +

Get the laser temperature.

+
Parameters
+ + +
[out]tmpValue- Values in Celsius degree
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetMIPIOutputSpeed()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetMIPIOutputSpeed (uint16_t & speed)
+
+pure virtual
+
+ +

Get ADSD3500 MIPI output speed.

+
Parameters
+ + +
[out]speed- See "Get MIPI Output Speed" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetRadialThresholdMax()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetRadialThresholdMax (int & threshold)
+
+pure virtual
+
+ +

Get the radial threshold max.

+
Parameters
+ + +
[out]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetRadialThresholdMin()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetRadialThresholdMin (int & threshold)
+
+pure virtual
+
+ +

Get the radial threshold min.

+
Parameters
+ + +
[out]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetSensorTemperature()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetSensorTemperature (uint16_t & tmpValue)
+
+pure virtual
+
+ +

Get the sensor temperature.

+
Parameters
+ + +
[out]tmpValue- Values in Celsius degree
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetStatus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::adsd3500GetStatus (int & chipStatus,
int & imagerStatus 
)
+
+pure virtual
+
+ +

Returns the chip status.

+
Parameters
+ + + +
[out]chipStatus- chip status (error) value
[out]imagerStatus- imager status (error) value
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetTemperatureCompensationStatus()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetTemperatureCompensationStatus (uint16_t & value)
+
+pure virtual
+
+ +

Get Temperature Compensation Status.

+
Parameters
+ + +
[out]value- See "Get Temperature Compensation Status" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500GetVCSELDelay()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500GetVCSELDelay (uint16_t & delay)
+
+pure virtual
+
+ +

Get the delay for VCSEL - ADSD3100 imager only.

+
Parameters
+ + +
[out]delay- See "Get VCSEL Delay" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500IsCCBMsupported()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500IsCCBMsupported (bool & supported)
+
+pure virtual
+
+ +

Check whether CCB as master is supported or not.

+
Parameters
+ + +
[out]supported- Will be set to true in case CCBM is supported
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500ResetIniParamsForMode()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::adsd3500ResetIniParamsForMode (const uint16_t mode)
+
+pure virtual
+
+ +

Reset the ini parameters from the chip and sets the ones stored in CCB.

+
Parameters
+ + +
mode- Camera mode to be reset
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetABinvalidationThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetABinvalidationThreshold (int threshold)
+
+pure virtual
+
+ +

Set the AB invalidation threshold.

+
Parameters
+ + +
[in]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetConfidenceThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetConfidenceThreshold (int threshold)
+
+pure virtual
+
+ +

Set the confidence threshold.

+
Parameters
+ + +
[in]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500setEnableDynamicModeSwitching()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::adsd3500setEnableDynamicModeSwitching (bool enable)
+
+pure virtual
+
+ +

Allows enabling or disabling the Dynamic Mode Switching. NOTE: This must be enabled before configuring the sequence!

+
Parameters
+ + +
[in]enable- Set to true to enable and false to disable
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetEnableEdgeConfidence()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetEnableEdgeConfidence (uint16_t value)
+
+pure virtual
+
+ +

Set Enable Edge Confidence.

+
Parameters
+ + +
[in]value- See "Set Enable Edge Confidence" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetEnableMetadatainAB()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::adsd3500SetEnableMetadatainAB (uint16_t value)
+
+pure virtual
+
+ +

Set Enable Metadata in the AB frame.

+
Parameters
+ + +
[in]value- See "Enable/Disable Output Metadata in AB Frame" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetEnablePhaseInvalidation()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetEnablePhaseInvalidation (uint16_t value)
+
+pure virtual
+
+ +

Set Enable Phase Invalidation.

+
Parameters
+ + +
[out]value- See "Set Enable Phase Invalidation" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetEnableTemperatureCompensation()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetEnableTemperatureCompensation (uint16_t value)
+
+pure virtual
+
+ +

Set Enable Temperature Compensation.

+
Parameters
+ + +
[out]value- See "Set Enable Temperature Compensation" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetFrameRate()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetFrameRate (uint16_t fps)
+
+pure virtual
+
+ +

Set Frame Rate.

+
Parameters
+ + +
[out]fps- See "Set Frame Rate" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetGenericTemplate()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::adsd3500SetGenericTemplate (uint16_t reg,
uint16_t value 
)
+
+pure virtual
+
+ +

Generic ADSD3500 function for commands not defined in the SDK (yet)

+
Parameters
+ + + +
[in]reg- 16-bit ADSD3500 register
[in]value- 16-bit value to write to the register
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetJBLFABThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetJBLFABThreshold (uint16_t threshold)
+
+pure virtual
+
+ +

Get JBLF Max Edge Threshold.

+
Parameters
+ + +
[out]threshold- See "Get JBLF Max Edge Threshold" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetJBLFExponentialTerm()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetJBLFExponentialTerm (uint16_t value)
+
+pure virtual
+
+ +

Set JBLF Exponential Term.

+
Parameters
+ + +
[in]value- See "Set JBLF Exponential Term" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetJBLFfilterEnableState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetJBLFfilterEnableState (bool enable)
+
+pure virtual
+
+ +

Enable/disable the JBLF filter.

+
Parameters
+ + +
[in]enable
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetJBLFfilterSize()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetJBLFfilterSize (int size)
+
+pure virtual
+
+ +

Set the JBLF filter size.

+
Parameters
+ + +
[in]size- Supported sizes are: 3, 5, 7
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetJBLFGaussianSigma()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetJBLFGaussianSigma (uint16_t value)
+
+pure virtual
+
+ +

Set JBLF Gaussian Sigma.

+
Parameters
+ + +
[in]value- See "Set JBLF Gaussian Sigma" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetJBLFMaxEdgeThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetJBLFMaxEdgeThreshold (uint16_t threshold)
+
+pure virtual
+
+ +

Set JBLF Max Edge Threshold.

+
Parameters
+ + +
[in]threshold- See "Set JBLF Max Edge Threshold" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetMIPIOutputSpeed()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetMIPIOutputSpeed (uint16_t speed)
+
+pure virtual
+
+ +

Set ADSD3500 MIPI output speed.

+
Parameters
+ + +
[in]speed- See "Set MIPI Output Speed" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetRadialThresholdMax()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetRadialThresholdMax (int threshold)
+
+pure virtual
+
+ +

Set the radial threshold max.

+
Parameters
+ + +
[in]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetRadialThresholdMin()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetRadialThresholdMin (int threshold)
+
+pure virtual
+
+ +

Set the radial threshold min.

+
Parameters
+ + +
[in]threshold
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetToggleMode()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetToggleMode (int mode)
+
+pure virtual
+
+ +

Enables or disables FSYNC toggle for ADSD3500.

+
Parameters
+ + +
[in]mode- 2 = Fsync pin set as HiZ ; 1 = Toggle at user specified framerate ; 0 = Toggle controlled via adsd3500ToggleFsync ;
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500SetVCSELDelay()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500SetVCSELDelay (uint16_t delay)
+
+pure virtual
+
+ +

Set the delay for VCSEL - ADSD3100 imager only.

+
Parameters
+ + +
[in]delay- See "Set VCSEL Delay" at https://wiki.analog.com/resources/eval/user-guides/eval-adtf3175x-adsd3500
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500ToggleFsync()

+ +
+
+ + + + + +
+ + + + + + + +
virtual Status aditof::Camera::adsd3500ToggleFsync ()
+
+pure virtual
+
+ +

Toggles ADSD3500 FSYNC once if automated FSYNC is disabled.

+
Returns
Status
+ +
+
+ +

◆ adsd3500UpdateFirmware()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::adsd3500UpdateFirmware (const std::string & fwFilePath)
+
+pure virtual
+
+ +

Update the firmware of ADSD3500 with the content found in the specified file.

+
Parameters
+ + +
[in]fwFilePath- A path to a file (including file name and extension) where the firmware for adsd3500 is stored.
+
+
+
Returns
Status
+ +
+
+ +

◆ adsds3500setDynamicModeSwitchingSequence()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::adsds3500setDynamicModeSwitchingSequence (const std::vector< std::pair< uint8_t, uint8_t >> & sequence)
+
+pure virtual
+
+ +

Configures the sequence to be captured.

+
Parameters
+ + +
[in]sequence- accepts a list of maximum 8 pairs. The first item of the pair refers to the mode to be captured and the second item refers to how many times the mode should be repeated before moving on to the next pair. The entire sequence will repeat over and over again until streaming is stopped. The first item must be a valid mode. The modes being sequenced must have the exact same resolution. The second item must be between 0 and 15. If 0 is set, the mode will be skipped (will repeat 0 times). Usage example 1: calling this: adsds3500setDynamicModeSwitchingSequence( { {6, 1}, {5, 2}, {2, 3}, {3, 4}, {2, 5} } ); will create sequence: 655222333322222655222...
+
+
+

Usage example 2: calling this: adsds3500setDynamicModeSwitchingSequence( { {6, 15}, {6, 15}, {6, 15}, {6, 15}, {6, 15}, {5, 1} } ); will create sequence: 6666(75 times)5666...

+

NOTE: Only ADSD3030 supports setting how many times the mode should be repeated!

Returns
Status
+ +
+
+ +

◆ dropFirstFrame()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void aditof::Camera::dropFirstFrame (bool dropFrame)
+
+pure virtual
+
+ +

Allow drop first frame.

+
Parameters
+ + +
dropFrame- Drop the first frame if true
+
+
+
Returns
void
+ +
+
+ +

◆ enableDepthCompute()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::enableDepthCompute (bool enable)
+
+pure virtual
+
+ +

Enable or disable the depth processing on the frames received from the sensor Must be called after getFrame() where the depth processing happens.

+
Parameters
+ + +
[in]enable- set to true to enable depth processing. Set to false otherwise.
+
+
+
Returns
Status
+ +
+
+ +

◆ enableXYZframe()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::enableXYZframe (bool enable)
+
+pure virtual
+
+ +

Enable the generation of a XYZ frame. The XYZ frame can be enabled or disabled through .ini configuration file but if this method is explicitly called then it will override the option in the .ini file. By default XYZ frame is disabled.

+
Parameters
+ + +
[in]enable- set to true to enable the generation of XYZ, set to false otherwise.
+
+
+
Returns
Status
+ +
+
+ +

◆ getAvailableControls()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::getAvailableControls (std::vector< std::string > & controls) const
+
+pure virtual
+
+ +

Gets the camera's list of controls.

+
Parameters
+ + +
[out]controls
+
+
+
Returns
Status
+ +
+
+ +

◆ getAvailableModes()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::getAvailableModes (std::vector< uint8_t > & availableModes) const
+
+pure virtual
+
+ +

Returns all the modes that are supported by the camera.

+
Parameters
+ + +
[out]availableModes
+
+
+
Returns
Status
+ +
+
+ +

◆ getControl()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::getControl (const std::string & control,
std::string & value 
) const
+
+pure virtual
+
+ +

Gets the value of a specific camera control.

+
Parameters
+ + + +
[in]control- Control name
[out]value- Control value
+
+
+
Returns
Status
+ +
+
+ +

◆ getDetails()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::getDetails (CameraDetailsdetails) const
+
+pure virtual
+
+ +

Gets the current details of the camera.

+
Parameters
+ + +
[out]details
+
+
+
Returns
Status
+ +
+
+ +

◆ getFrameProcessParams()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::getFrameProcessParams (std::map< std::string, std::string > & params)
+
+pure virtual
+
+ +

Get the Depth Compute Library ini parameters.

+
Parameters
+ + +
params- a dictionary of parameters
+
+
+
Returns
Status
+ +
+
+ +

◆ getImagerType()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::getImagerType (ImagerTypeimagerType) const
+
+pure virtual
+
+ +

Provides the type of the imager.

+
Parameters
+ + +
[out]imagerType- Will be set with the imager type
+
+
+
Returns
Status
+ +
+
+ +

◆ getSensor()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::shared_ptr<DepthSensorInterface> aditof::Camera::getSensor ()
+
+pure virtual
+
+ +

Gets the sensor of the camera. This gives direct access to low level configuration of the camera sensor.

+
Returns
std::shared_ptr<DepthSensorInterface>
+ +
+
+ +

◆ initialize()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::initialize (const std::string & configFilepath = {})
+
+pure virtual
+
+ +

Initialize the camera. This is required before performing any operation on the camera.

+
Parameters
+ + +
configFilepath- The JSON configuration files which should be specific to the given module. The expected value is a file name (including extension) or left empty.
+
+
+
Returns
Status
+ +
+
+ +

◆ loadDepthParamsFromJsonFile()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::loadDepthParamsFromJsonFile (const std::string & pathFile)
+
+pure virtual
+
+ +

Load adsd parameters from json file. Need setMode to apply.

+
Parameters
+ + +
pathFile- Path to load from json file
+
+
+
Returns
Status
+ +
+
+ +

◆ normalizeABdata()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::Camera::normalizeABdata (aditof::Frameframe,
bool useLogScaling 
)
+
+pure virtual
+
+ +

Scale AB image with logarithmic base 10.

+
Parameters
+ + + +
frame- The frame of the camera
useLogScaling- If is false is applied the normalization between 0 and 255, if is true is applied normalization between 0 and 255 and log10
+
+
+
Returns
Status
+ +
+
+ +

◆ readSerialNumber()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::readSerialNumber (std::string & serialNumber,
bool useCacheValue = false 
)
+
+pure virtual
+
+ +

Read serial number from camera and update cache.

+
Parameters
+ + + +
[out]serialNumber- Will contain serial number
[in]useCacheValue- If it is false it will read from camera and if it is true it will return serialNumber from cache
+
+
+
Returns
Status
+ +
+
+ +

◆ requestFrame()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::requestFrame (Frameframe)
+
+pure virtual
+
+ +

Captures data from the camera and assigns it to the given frame.

+
Parameters
+ + +
frame- The frame to which the camera data should be assign
+
+
+
Returns
Status
+ +
+
+ +

◆ saveDepthParamsToJsonFile()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::saveDepthParamsToJsonFile (const std::string & savePathFile)
+
+pure virtual
+
+ +

Save ini file to json format.

+
Parameters
+ + +
savePathFile- Path to save json file
+
+
+
Returns
Status
+ +
+
+ +

◆ saveModuleCCB()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::saveModuleCCB (const std::string & filepath)
+
+pure virtual
+
+ +

Save the CCB content which is obtained from module memory to a given file path.

+
Parameters
+ + +
[in]filepath- A path to a file (including file name and extension) where the CCB should be stored.
+
+
+
Returns
Status
+ +
+
+ +

◆ saveModuleCFG()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::saveModuleCFG (const std::string & filepath) const
+
+pure virtual
+
+ +

Save the CFG content which is obtained from module memory to a given file path.

+
Parameters
+ + +
[in]filepath- A path to a file (including file name and extension) where the CFG should be stored.
+
+
+
Returns
Status
+ +
+
+ +

◆ setControl()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::Camera::setControl (const std::string & control,
const std::string & value 
)
+
+pure virtual
+
+ +

Sets a specific camera control.

+
Parameters
+ + + +
[in]control- Control name
[in]value- Control value
+
+
+
Returns
Status
+ +
+
+ +

◆ setFrameProcessParams()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::setFrameProcessParams (std::map< std::string, std::string > & params)
+
+pure virtual
+
+ +

Set the Depth Compute Library ini parameters.

+
Parameters
+ + +
params- a dictionary of parameters
+
+
+
Returns
Status
+ +
+
+ +

◆ setMode()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::Camera::setMode (const uint8_t & mode)
+
+pure virtual
+
+ +

Puts the camera into the given mode.

+
Parameters
+ + +
mode- The mode of the camera
+
+
+
Returns
Status
+ +
+
+ +

◆ setSensorConfiguration()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::Camera::setSensorConfiguration (const std::string & sensorConf)
+
+pure virtual
+
+ +

Set sensor configutation table.

+
Parameters
+ + +
sensorConf- Configuration table name string like e.g. standard, standardraw, custom and customraw
+
+
+
Returns
Status
+ +
+
+ +

◆ start()

+ +
+
+ + + + + +
+ + + + + + + +
virtual Status aditof::Camera::start ()
+
+pure virtual
+
+ +

Start the camera. This starts the streaming of data from the camera.

+
Returns
Status
+ +
+
+ +

◆ stop()

+ +
+
+ + + + + +
+ + + + + + + +
virtual Status aditof::Camera::stop ()
+
+pure virtual
+
+ +

Stop the camera. This makes the camera to stop streaming.

+
Returns
Status
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/vsts/work/1/s/sdk/include/aditof/camera.h
  • +
+
+ + + + diff --git a/classaditof_1_1_depth_sensor_interface-members.html b/classaditof_1_1_depth_sensor_interface-members.html new file mode 100644 index 00000000..effc7981 --- /dev/null +++ b/classaditof_1_1_depth_sensor_interface-members.html @@ -0,0 +1,114 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::DepthSensorInterface Member List
+
+
+ +

This is the complete list of members for aditof::DepthSensorInterface, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
adsd3500_get_status(int &chipStatus, int &imagerStatus)=0aditof::DepthSensorInterfacepure virtual
adsd3500_read_cmd(uint16_t cmd, uint16_t *data, unsigned int usDelay=0)=0aditof::DepthSensorInterfacepure virtual
adsd3500_read_payload(uint8_t *payload, uint16_t payload_len)=0aditof::DepthSensorInterfacepure virtual
adsd3500_read_payload_cmd(uint32_t cmd, uint8_t *readback_data, uint16_t payload_len)=0aditof::DepthSensorInterfacepure virtual
adsd3500_register_interrupt_callback(SensorInterruptCallback &cb)=0aditof::DepthSensorInterfacepure virtual
adsd3500_reset()=0aditof::DepthSensorInterfacepure virtual
adsd3500_unregister_interrupt_callback(SensorInterruptCallback &cb)=0aditof::DepthSensorInterfacepure virtual
adsd3500_write_cmd(uint16_t cmd, uint16_t data)=0aditof::DepthSensorInterfacepure virtual
adsd3500_write_payload(uint8_t *payload, uint16_t payload_len)=0aditof::DepthSensorInterfacepure virtual
adsd3500_write_payload_cmd(uint32_t cmd, uint8_t *payload, uint16_t payload_len)=0aditof::DepthSensorInterfacepure virtual
getAvailableControls(std::vector< std::string > &controls) const =0aditof::DepthSensorInterfacepure virtual
getAvailableModes(std::vector< uint8_t > &modes)=0aditof::DepthSensorInterfacepure virtual
getControl(const std::string &control, std::string &value) const =0aditof::DepthSensorInterfacepure virtual
getDepthComputeParams(std::map< std::string, std::string > &params)=0aditof::DepthSensorInterfacepure virtual
getDetails(aditof::SensorDetails &details) const =0aditof::DepthSensorInterfacepure virtual
getFrame(uint16_t *buffer)=0aditof::DepthSensorInterfacepure virtual
getHandle(void **handle)=0aditof::DepthSensorInterfacepure virtual
getIniParamsArrayForMode(int mode, std::string &iniStr)=0aditof::DepthSensorInterfacepure virtual
getModeDetails(const uint8_t &mode, aditof::DepthSensorModeDetails &details)=0aditof::DepthSensorInterfacepure virtual
getName(std::string &name) const =0aditof::DepthSensorInterfacepure virtual
initTargetDepthCompute(uint8_t *iniFile, uint16_t iniFileLength, uint8_t *calData, uint16_t calDataLength)=0aditof::DepthSensorInterfacepure virtual
open()=0aditof::DepthSensorInterfacepure virtual
setControl(const std::string &control, const std::string &value)=0aditof::DepthSensorInterfacepure virtual
setDepthComputeParams(const std::map< std::string, std::string > &params)=0aditof::DepthSensorInterfacepure virtual
setHostConnectionType(std::string &connectionType)=0aditof::DepthSensorInterfacepure virtual
setMode(const uint8_t &mode)=0aditof::DepthSensorInterfacepure virtual
setMode(const aditof::DepthSensorModeDetails &type)=0aditof::DepthSensorInterfacepure virtual
setSensorConfiguration(const std::string &sensorConf)=0aditof::DepthSensorInterfacepure virtual
start()=0aditof::DepthSensorInterfacepure virtual
stop()=0aditof::DepthSensorInterfacepure virtual
~DepthSensorInterface()=defaultaditof::DepthSensorInterfacevirtual
+ + + + diff --git a/classaditof_1_1_depth_sensor_interface.html b/classaditof_1_1_depth_sensor_interface.html new file mode 100644 index 00000000..4456bb53 --- /dev/null +++ b/classaditof_1_1_depth_sensor_interface.html @@ -0,0 +1,1383 @@ + + + + + + + +Time-of-Flight-SDK: aditof::DepthSensorInterface Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::DepthSensorInterface Class Referenceabstract
+
+
+ +

Provides access to the low level functionality of the camera sensor. This includes sensor configuration as well as analog front end(AFE) configuration. + More...

+ +

#include <depth_sensor_interface.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual ~DepthSensorInterface ()=default
 Destructor.
 
virtual aditof::Status open ()=0
 Open the communication channels with the hardware. More...
 
virtual aditof::Status start ()=0
 Start the streaming of data from the sensor. More...
 
virtual aditof::Status stop ()=0
 Stop the sensor data stream. More...
 
virtual aditof::Status getAvailableModes (std::vector< uint8_t > &modes)=0
 Return all modes that are supported by the sensor. More...
 
virtual aditof::Status getModeDetails (const uint8_t &mode, aditof::DepthSensorModeDetails &details)=0
 Returns details of specified mode. More...
 
virtual aditof::Status setMode (const uint8_t &mode)=0
 Set the sensor frame mode to the given type. More...
 
virtual aditof::Status setMode (const aditof::DepthSensorModeDetails &type)=0
 Set the sensor frame mode to the given type. More...
 
virtual aditof::Status getFrame (uint16_t *buffer)=0
 Request a frame from the sensor. More...
 
virtual aditof::Status adsd3500_read_cmd (uint16_t cmd, uint16_t *data, unsigned int usDelay=0)=0
 Send a read command to adsd3500. More...
 
virtual aditof::Status adsd3500_write_cmd (uint16_t cmd, uint16_t data)=0
 Send a write command to adsd3500. More...
 
virtual aditof::Status adsd3500_read_payload_cmd (uint32_t cmd, uint8_t *readback_data, uint16_t payload_len)=0
 Send a read command to adsd3500. This will perform a burst read making it useful for reading chunks of data. More...
 
virtual aditof::Status adsd3500_read_payload (uint8_t *payload, uint16_t payload_len)=0
 Reads a chunk of data from adsd3500. This will perform a burst read making it useful for reading chunks of data. More...
 
virtual aditof::Status adsd3500_write_payload_cmd (uint32_t cmd, uint8_t *payload, uint16_t payload_len)=0
 Send a write command to adsd3500. This will perform a burst write making it useful for writing chunks of data. More...
 
virtual aditof::Status adsd3500_write_payload (uint8_t *payload, uint16_t payload_len)=0
 Send a chunk of data (payload) to adsd3500. This will perform a burst write making it useful for writing chunks of data. More...
 
virtual aditof::Status adsd3500_reset ()=0
 Reset adsd3500 chip. More...
 
virtual aditof::Status adsd3500_register_interrupt_callback (SensorInterruptCallback &cb)=0
 Register a function to be called when a ADSD3500 interrupt occurs. More...
 
virtual aditof::Status adsd3500_unregister_interrupt_callback (SensorInterruptCallback &cb)=0
 Unregister a function registered with adsd3500_register_interrupt_callback. More...
 
virtual aditof::Status adsd3500_get_status (int &chipStatus, int &imagerStatus)=0
 Returns the chip status. More...
 
virtual Status getAvailableControls (std::vector< std::string > &controls) const =0
 Gets the sensors's list of controls. More...
 
virtual Status setControl (const std::string &control, const std::string &value)=0
 Sets a specific sensor control. More...
 
virtual Status getControl (const std::string &control, std::string &value) const =0
 Gets the value of a specific sensor control. More...
 
virtual aditof::Status getDetails (aditof::SensorDetails &details) const =0
 Get a structure that contains information about the instance of the sensor. More...
 
virtual aditof::Status getHandle (void **handle)=0
 Gets a handle to be used by other devices such as Storage, Temperature, etc. This handle will allow the other devices to communicate remotely with the embedded target. More...
 
virtual aditof::Status getName (std::string &name) const =0
 Get the name of the sensor. More...
 
virtual aditof::Status setHostConnectionType (std::string &connectionType)=0
 Set the host connection type for target sdk. More...
 
virtual aditof::Status initTargetDepthCompute (uint8_t *iniFile, uint16_t iniFileLength, uint8_t *calData, uint16_t calDataLength)=0
 Get the name of the sensor. More...
 
virtual aditof::Status getDepthComputeParams (std::map< std::string, std::string > &params)=0
 Get ini parameters for Depth Compute library. More...
 
virtual aditof::Status setDepthComputeParams (const std::map< std::string, std::string > &params)=0
 Set ini parameters for Depth Compute library. More...
 
virtual aditof::Status setSensorConfiguration (const std::string &sensorConf)=0
 Set sensor configutation table. More...
 
virtual aditof::Status getIniParamsArrayForMode (int mode, std::string &iniStr)=0
 Get ini parameters for Depth Compute library as string. More...
 
+

Detailed Description

+

Provides access to the low level functionality of the camera sensor. This includes sensor configuration as well as analog front end(AFE) configuration.

+ +

Definition at line 57 of file depth_sensor_interface.h.

+

Member Function Documentation

+ +

◆ adsd3500_get_status()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_get_status (int & chipStatus,
int & imagerStatus 
)
+
+pure virtual
+
+ +

Returns the chip status.

+
Parameters
+ + + +
[out]chipStatus- chip status (error) value
[out]imagerStatus- imager status (error) value
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_read_cmd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_read_cmd (uint16_t cmd,
uint16_t * data,
unsigned int usDelay = 0 
)
+
+pure virtual
+
+ +

Send a read command to adsd3500.

+
Parameters
+ + + + +
cmd- the command to be sent
[out]data- the variable where the read data will be stored
usDelay- the number of microseconds to wait between the host command and the actual read
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_read_payload()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_read_payload (uint8_t * payload,
uint16_t payload_len 
)
+
+pure virtual
+
+ +

Reads a chunk of data from adsd3500. This will perform a burst read making it useful for reading chunks of data.

+
Parameters
+ + + +
payload- the location from where to take the data chunk and read it
payload_len- the number of bytes to read
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_read_payload_cmd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_read_payload_cmd (uint32_t cmd,
uint8_t * readback_data,
uint16_t payload_len 
)
+
+pure virtual
+
+ +

Send a read command to adsd3500. This will perform a burst read making it useful for reading chunks of data.

+
Parameters
+ + + + +
cmd- the command to be sent
[out]readback_data- the location where the read data chunk will be stored
payload_len- the number of bytes to read
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_register_interrupt_callback()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_register_interrupt_callback (SensorInterruptCallbackcb)
+
+pure virtual
+
+ +

Register a function to be called when a ADSD3500 interrupt occurs.

+
Parameters
+ + +
cb- the function to be called whenever the interrupt occurs
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_reset()

+ +
+
+ + + + + +
+ + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_reset ()
+
+pure virtual
+
+ +

Reset adsd3500 chip.

+
Returns
Status
+ +
+
+ +

◆ adsd3500_unregister_interrupt_callback()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_unregister_interrupt_callback (SensorInterruptCallbackcb)
+
+pure virtual
+
+ +

Unregister a function registered with adsd3500_register_interrupt_callback.

+
Parameters
+ + +
cb- the function to be unregistred
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_write_cmd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_write_cmd (uint16_t cmd,
uint16_t data 
)
+
+pure virtual
+
+ +

Send a write command to adsd3500.

+
Parameters
+ + + +
cmd- the command to be sent
data- the data to be written
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_write_payload()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_write_payload (uint8_t * payload,
uint16_t payload_len 
)
+
+pure virtual
+
+ +

Send a chunk of data (payload) to adsd3500. This will perform a burst write making it useful for writing chunks of data.

+
Parameters
+ + + +
payload- the location from where to take the data chunk and write it
payload_len- the number of bytes to write
+
+
+
Returns
Status
+ +
+
+ +

◆ adsd3500_write_payload_cmd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::adsd3500_write_payload_cmd (uint32_t cmd,
uint8_t * payload,
uint16_t payload_len 
)
+
+pure virtual
+
+ +

Send a write command to adsd3500. This will perform a burst write making it useful for writing chunks of data.

+
Parameters
+ + + + +
cmd- the command to be sent
payload- the location from where to take the data chunk and write it
payload_len- the number of bytes to write
+
+
+
Returns
Status
+ +
+
+ +

◆ getAvailableControls()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Status aditof::DepthSensorInterface::getAvailableControls (std::vector< std::string > & controls) const
+
+pure virtual
+
+ +

Gets the sensors's list of controls.

+
Parameters
+ + +
[out]controls
+
+
+
Returns
Status
+ +
+
+ +

◆ getAvailableModes()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getAvailableModes (std::vector< uint8_t > & modes)
+
+pure virtual
+
+ +

Return all modes that are supported by the sensor.

+
Parameters
+ + +
[out]modes
+
+
+
Returns
Status
+ +
+
+ +

◆ getControl()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::DepthSensorInterface::getControl (const std::string & control,
std::string & value 
) const
+
+pure virtual
+
+ +

Gets the value of a specific sensor control.

+
Parameters
+ + + +
[in]control- Control name
[out]value- Control value
+
+
+
Returns
Status
+ +
+
+ +

◆ getDepthComputeParams()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getDepthComputeParams (std::map< std::string, std::string > & params)
+
+pure virtual
+
+ +

Get ini parameters for Depth Compute library.

+
Parameters
+ + +
[in]params- a dictionary of parameters
+
+
+
Returns
Status
+ +
+
+ +

◆ getDetails()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getDetails (aditof::SensorDetailsdetails) const
+
+pure virtual
+
+ +

Get a structure that contains information about the instance of the sensor.

+
Parameters
+ + +
[out]details- the variable where the sensor details should be stored
+
+
+
Returns
Status
+ +
+
+ +

◆ getFrame()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getFrame (uint16_t * buffer)
+
+pure virtual
+
+ +

Request a frame from the sensor.

+
Parameters
+ + +
buffer- a valid location where the new frame should be stored. The size of the frame is known (cached) internally and gets updated each time setMode() is called.
+
+
+
Returns
Status
+ +
+
+ +

◆ getHandle()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getHandle (void ** handle)
+
+pure virtual
+
+ +

Gets a handle to be used by other devices such as Storage, Temperature, etc. This handle will allow the other devices to communicate remotely with the embedded target.

+
Parameters
+ + +
[out]handle- the handle which is owned by this instance
+
+
+
Returns
Status
+ +
+
+ +

◆ getIniParamsArrayForMode()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getIniParamsArrayForMode (int mode,
std::string & iniStr 
)
+
+pure virtual
+
+ +

Get ini parameters for Depth Compute library as string.

+
Parameters
+ + + +
[in]mode- desired mode
[out]iniStr- a string that contain ini params
+
+
+
Returns
Status
+ +
+
+ +

◆ getModeDetails()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getModeDetails (const uint8_t & mode,
aditof::DepthSensorModeDetailsdetails 
)
+
+pure virtual
+
+ +

Returns details of specified mode.

+
Parameters
+ + + +
mode
[out]details
+
+
+
Returns
Status
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::getName (std::string & name) const
+
+pure virtual
+
+ +

Get the name of the sensor.

+
Parameters
+ + +
[out]name- the string in which the name is stored
+
+
+
Returns
Status
+ +
+
+ +

◆ initTargetDepthCompute()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::initTargetDepthCompute (uint8_t * iniFile,
uint16_t iniFileLength,
uint8_t * calData,
uint16_t calDataLength 
)
+
+pure virtual
+
+ +

Get the name of the sensor.

+
Parameters
+ + + + + +
[in]iniFile- iniFile content parsed as uint8_t*
[in]iniFileLength- iniFile content length
[in]calData- calibration data parsed as uint8_t*
[in]calDataLength- calibration data content length
+
+
+
Returns
Status
+ +
+
+ +

◆ open()

+ +
+
+ + + + + +
+ + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::open ()
+
+pure virtual
+
+ +

Open the communication channels with the hardware.

+
Returns
Status
+ +
+
+ +

◆ setControl()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Status aditof::DepthSensorInterface::setControl (const std::string & control,
const std::string & value 
)
+
+pure virtual
+
+ +

Sets a specific sensor control.

+
Parameters
+ + + +
[in]control- Control name
[in]value- Control value
+
+
+
Returns
Status
+ +
+
+ +

◆ setDepthComputeParams()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::setDepthComputeParams (const std::map< std::string, std::string > & params)
+
+pure virtual
+
+ +

Set ini parameters for Depth Compute library.

+
Parameters
+ + +
[in]params- a dictionary of parameters
+
+
+
Returns
Status
+ +
+
+ +

◆ setHostConnectionType()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::setHostConnectionType (std::string & connectionType)
+
+pure virtual
+
+ +

Set the host connection type for target sdk.

+
Parameters
+ + +
[in]connectionType- the string that sets the host type on the target
+
+
+
Returns
Status
+ +
+
+ +

◆ setMode() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::setMode (const uint8_t & mode)
+
+pure virtual
+
+ +

Set the sensor frame mode to the given type.

+
Parameters
+ + +
mode- desired mode
+
+
+
Returns
Status
+ +
+
+ +

◆ setMode() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::setMode (const aditof::DepthSensorModeDetailstype)
+
+pure virtual
+
+ +

Set the sensor frame mode to the given type.

+
Parameters
+ + +
type- frame details structure containing the frame type
+
+
+
Returns
Status
+ +
+
+ +

◆ setSensorConfiguration()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::setSensorConfiguration (const std::string & sensorConf)
+
+pure virtual
+
+ +

Set sensor configutation table.

+
Parameters
+ + +
sensorConf- Configuration table name string like e.g. standard, standardraw, custom and customraw
+
+
+
Returns
Status
+ +
+
+ +

◆ start()

+ +
+
+ + + + + +
+ + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::start ()
+
+pure virtual
+
+ +

Start the streaming of data from the sensor.

+
Returns
Status
+ +
+
+ +

◆ stop()

+ +
+
+ + + + + +
+ + + + + + + +
virtual aditof::Status aditof::DepthSensorInterface::stop ()
+
+pure virtual
+
+ +

Stop the sensor data stream.

+
Returns
Status
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classaditof_1_1_frame-members.html b/classaditof_1_1_frame-members.html new file mode 100644 index 00000000..3a146586 --- /dev/null +++ b/classaditof_1_1_frame-members.html @@ -0,0 +1,94 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::Frame Member List
+
+
+ +

This is the complete list of members for aditof::Frame, including all inherited members.

+ + + + + + + + + + + + +
Frame()aditof::Frame
Frame(const Frame &op)aditof::Frame
Frame(Frame &&) noexceptaditof::Frame
getData(const std::string &dataType, uint16_t **dataPtr)aditof::Frame
getDataDetails(const std::string &dataType, FrameDataDetails &details) constaditof::Frame
getDetails(FrameDetails &details) constaditof::Frame
getMetadataStruct(Metadata &metadata) constaditof::Framevirtual
operator=(const Frame &op)aditof::Frame
operator=(Frame &&) noexceptaditof::Frame
setDetails(const FrameDetails &details)aditof::Frame
~Frame()aditof::Frame
+ + + + diff --git a/classaditof_1_1_frame.html b/classaditof_1_1_frame.html new file mode 100644 index 00000000..eaa7cfa7 --- /dev/null +++ b/classaditof_1_1_frame.html @@ -0,0 +1,304 @@ + + + + + + + +Time-of-Flight-SDK: aditof::Frame Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::Frame Class Reference
+
+
+ +

Frame of a camera. + More...

+ +

#include <frame.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+SDK_API Frame ()
 Constructor.
 
+SDK_API ~Frame ()
 Destructor.
 
+SDK_API Frame (const Frame &op)
 Copy constructor.
 
+SDK_API Frameoperator= (const Frame &op)
 Copy assignment.
 
+SDK_API Frame (Frame &&) noexcept
 Move constructor.
 
+SDK_API Frameoperator= (Frame &&) noexcept
 Move assignment.
 
SDK_API Status setDetails (const FrameDetails &details)
 Configures the frame with the given details. More...
 
SDK_API Status getDetails (FrameDetails &details) const
 Gets the current details of the frame. More...
 
SDK_API Status getDataDetails (const std::string &dataType, FrameDataDetails &details) const
 Gets details of a type of data within the frame. More...
 
SDK_API Status getData (const std::string &dataType, uint16_t **dataPtr)
 Gets the address where the specified data is being stored. More...
 
virtual SDK_API Status getMetadataStruct (Metadata &metadata) const
 Extracts the metadata content and returns a struct with values. More...
 
+

Detailed Description

+

Frame of a camera.

+ +

Definition at line 50 of file frame.h.

+

Member Function Documentation

+ +

◆ getData()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SDK_API Status aditof::Frame::getData (const std::string & dataType,
uint16_t ** dataPtr 
)
+
+ +

Gets the address where the specified data is being stored.

+
Parameters
+ + + +
dataType
[out]dataPtr
+
+
+
Returns
Status
+ +
+
+ +

◆ getDataDetails()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SDK_API Status aditof::Frame::getDataDetails (const std::string & dataType,
FrameDataDetailsdetails 
) const
+
+ +

Gets details of a type of data within the frame.

+
Parameters
+ + + +
dataType
[out]details
+
+
+
Returns
Status
+ +
+
+ +

◆ getDetails()

+ +
+
+ + + + + + + + +
SDK_API Status aditof::Frame::getDetails (FrameDetailsdetails) const
+
+ +

Gets the current details of the frame.

+
Parameters
+ + +
[out]details
+
+
+
Returns
Status
+ +
+
+ +

◆ getMetadataStruct()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual SDK_API Status aditof::Frame::getMetadataStruct (Metadatametadata) const
+
+virtual
+
+ +

Extracts the metadata content and returns a struct with values.

+
Parameters
+ + +
[out]metadata- struct containing all metadata fields
+
+
+
Returns
Status
+ +
+
+ +

◆ setDetails()

+ +
+
+ + + + + + + + +
SDK_API Status aditof::Frame::setDetails (const FrameDetailsdetails)
+
+ +

Configures the frame with the given details.

+
Parameters
+ + +
details
+
+
+
Returns
Status
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/vsts/work/1/s/sdk/include/aditof/frame.h
  • +
+
+ + + + diff --git a/classaditof_1_1_frame_handler-members.html b/classaditof_1_1_frame_handler-members.html new file mode 100644 index 00000000..605d4580 --- /dev/null +++ b/classaditof_1_1_frame_handler-members.html @@ -0,0 +1,95 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::FrameHandler Member List
+
+
+ +

This is the complete list of members for aditof::FrameHandler, including all inherited members.

+ + + + + + + + + + + + + +
FrameHandler() (defined in aditof::FrameHandler)aditof::FrameHandler
FrameHandler(FrameHandler &&) noexceptaditof::FrameHandler
operator=(FrameHandler &&) noexceptaditof::FrameHandler
readNextFrame(aditof::Frame &frame, const std::string &fullFileName="")aditof::FrameHandler
saveFrameToFile(aditof::Frame &frame, const std::string &fileName="")aditof::FrameHandler
saveFrameToFileMultithread(aditof::Frame &frame, const std::string &fileName="")aditof::FrameHandler
setCustomFormat(const std::string &format)aditof::FrameHandler
setFrameContent(const std::string &frameContent)aditof::FrameHandler
setInputFileName(const std::string &fullFileName)aditof::FrameHandler
setOutputFilePath(const std::string &filePath)aditof::FrameHandler
storeFramesToSingleFile(bool enable)aditof::FrameHandler
~FrameHandler() (defined in aditof::FrameHandler)aditof::FrameHandler
+ + + + diff --git a/classaditof_1_1_frame_handler.html b/classaditof_1_1_frame_handler.html new file mode 100644 index 00000000..74c77c38 --- /dev/null +++ b/classaditof_1_1_frame_handler.html @@ -0,0 +1,381 @@ + + + + + + + +Time-of-Flight-SDK: aditof::FrameHandler Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::FrameHandler Class Reference
+
+
+ +

Handles operations on a frame such as saving it to file and creating a new frame with content read from file. + More...

+ +

#include <frame_handler.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+SDK_API FrameHandler (FrameHandler &&) noexcept
 Move constructor.
 
+SDK_API FrameHandleroperator= (FrameHandler &&) noexcept
 Move assignment.
 
SDK_API aditof::Status setOutputFilePath (const std::string &filePath)
 Set the output path/output folder for the frames. More...
 
SDK_API aditof::Status setInputFileName (const std::string &fullFileName)
 Set the input file for the frames. More...
 
SDK_API aditof::Status saveFrameToFile (aditof::Frame &frame, const std::string &fileName="")
 Store frame to file. More...
 
SDK_API aditof::Status saveFrameToFileMultithread (aditof::Frame &frame, const std::string &fileName="")
 Store frame to file using a separate thread. More...
 
SDK_API aditof::Status readNextFrame (aditof::Frame &frame, const std::string &fullFileName="")
 Reads frame from a file. If same file is provided it will continue to read from the last position. More...
 
SDK_API aditof::Status setCustomFormat (const std::string &format)
 A custom format in which the frames will be stored/read. More...
 
SDK_API aditof::Status storeFramesToSingleFile (bool enable)
 Enable/disable if single file is intended to use for storing data. More...
 
SDK_API aditof::Status setFrameContent (const std::string &frameContent)
 Set which frame element you want to store/read (depth/ab/conf) More...
 
+

Detailed Description

+

Handles operations on a frame such as saving it to file and creating a new frame with content read from file.

+ +

Definition at line 57 of file frame_handler.h.

+

Member Function Documentation

+ +

◆ readNextFrame()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::readNextFrame (aditof::Frameframe,
const std::string & fullFileName = "" 
)
+
+ +

Reads frame from a file. If same file is provided it will continue to read from the last position.

+
Parameters
+ + + +
[out]frame- Frame object in which the frame will be stored
[in]fullFileName- Full file name
+
+
+
Returns
Status
+ +
+
+ +

◆ saveFrameToFile()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::saveFrameToFile (aditof::Frameframe,
const std::string & fileName = "" 
)
+
+ +

Store frame to file.

+
Parameters
+ + + +
[in]frame- frame object to be stored in file
[in]fileName- the name of the file. If none provided it will automatically generate one depending on time and frame number.
+
+
+
Returns
Status
+ +
+
+ +

◆ saveFrameToFileMultithread()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::saveFrameToFileMultithread (aditof::Frameframe,
const std::string & fileName = "" 
)
+
+ +

Store frame to file using a separate thread.

+
Parameters
+ + + +
[in]frame- frame object to be stored in file
[in]fileName- the name of the file. If none provided it will automatically generate one depending on time and frame number.
+
+
+
Returns
Status
+ +
+
+ +

◆ setCustomFormat()

+ +
+
+ + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::setCustomFormat (const std::string & format)
+
+ +

A custom format in which the frames will be stored/read.

+
Parameters
+ + +
[in]format- Format name
+
+
+
Returns
Status
+ +
+
+ +

◆ setFrameContent()

+ +
+
+ + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::setFrameContent (const std::string & frameContent)
+
+ +

Set which frame element you want to store/read (depth/ab/conf)

+
Parameters
+ + +
[in]frameContent- a string providing the frame subelements that will be stored
+
+
+
Returns
Status
+ +
+
+ +

◆ setInputFileName()

+ +
+
+ + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::setInputFileName (const std::string & fullFileName)
+
+ +

Set the input file for the frames.

+
Parameters
+ + +
[in]fullFileName- Input file name
+
+
+
Returns
Status
+ +
+
+ +

◆ setOutputFilePath()

+ +
+
+ + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::setOutputFilePath (const std::string & filePath)
+
+ +

Set the output path/output folder for the frames.

+
Parameters
+ + +
[in]filePath- File path
+
+
+
Returns
Status
+ +
+
+ +

◆ storeFramesToSingleFile()

+ +
+
+ + + + + + + + +
SDK_API aditof::Status aditof::FrameHandler::storeFramesToSingleFile (bool enable)
+
+ +

Enable/disable if single file is intended to use for storing data.

+
Parameters
+ + +
[in]enable- true for single file use/ false for multiple file use
+
+
+
Returns
Status
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classaditof_1_1_sensor_enumerator_factory-members.html b/classaditof_1_1_sensor_enumerator_factory-members.html new file mode 100644 index 00000000..085cce50 --- /dev/null +++ b/classaditof_1_1_sensor_enumerator_factory-members.html @@ -0,0 +1,87 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::SensorEnumeratorFactory Member List
+
+ + + + + diff --git a/classaditof_1_1_sensor_enumerator_factory.html b/classaditof_1_1_sensor_enumerator_factory.html new file mode 100644 index 00000000..32ce4ec6 --- /dev/null +++ b/classaditof_1_1_sensor_enumerator_factory.html @@ -0,0 +1,216 @@ + + + + + + + +Time-of-Flight-SDK: aditof::SensorEnumeratorFactory Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::SensorEnumeratorFactory Class Reference
+
+
+ +

Provides the means to construct different types of sensors enumerators. Based on the connection type (on target, USB, Network), different enumerators need to be used. + More...

+ +

#include <sensor_enumerator_factory.h>

+ + + + + + + + + + + +

+Static Public Member Functions

static std::unique_ptr< SensorEnumeratorInterfacebuildTargetSensorEnumerator ()
 Factory method to create an enumerator to look for sensors on target. Factory method will return null if the call is not made on target. More...
 
static std::unique_ptr< SensorEnumeratorInterfacebuildUsbSensorEnumerator ()
 
static std::unique_ptr< SensorEnumeratorInterfacebuildNetworkSensorEnumerator (const std::string &ip)
 
static std::unique_ptr< SensorEnumeratorInterfacebuildOfflineSensorEnumerator ()
 
+

Detailed Description

+

Provides the means to construct different types of sensors enumerators. Based on the connection type (on target, USB, Network), different enumerators need to be used.

+ +

Definition at line 48 of file sensor_enumerator_factory.h.

+

Member Function Documentation

+ +

◆ buildNetworkSensorEnumerator()

+ +
+
+ + + + + +
+ + + + + + + + +
static std::unique_ptr<SensorEnumeratorInterface> aditof::SensorEnumeratorFactory::buildNetworkSensorEnumerator (const std::string & ip)
+
+static
+
+

Factory method to create an enumerator to look for sensors over network.

Returns
std::unique_ptr<DeviceEnumeratorInterface>
+ +
+
+ +

◆ buildOfflineSensorEnumerator()

+ +
+
+ + + + + +
+ + + + + + + +
static std::unique_ptr<SensorEnumeratorInterface> aditof::SensorEnumeratorFactory::buildOfflineSensorEnumerator ()
+
+static
+
+

Factory method to create an offline enumerator.

Returns
std::unique_ptr<DeviceEnumeratorInterface>
+ +
+
+ +

◆ buildTargetSensorEnumerator()

+ +
+
+ + + + + +
+ + + + + + + +
static std::unique_ptr<SensorEnumeratorInterface> aditof::SensorEnumeratorFactory::buildTargetSensorEnumerator ()
+
+static
+
+ +

Factory method to create an enumerator to look for sensors on target. Factory method will return null if the call is not made on target.

+
Returns
std::unique_ptr<SensorEnumeratorInterface>
+ +
+
+ +

◆ buildUsbSensorEnumerator()

+ +
+
+ + + + + +
+ + + + + + + +
static std::unique_ptr<SensorEnumeratorInterface> aditof::SensorEnumeratorFactory::buildUsbSensorEnumerator ()
+
+static
+
+

Factory method to create an enumerator to look for sensors over USB.

Returns
std::unique_ptr<DeviceEnumeratorInterface>
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classaditof_1_1_sensor_enumerator_interface-members.html b/classaditof_1_1_sensor_enumerator_interface-members.html new file mode 100644 index 00000000..141fa93f --- /dev/null +++ b/classaditof_1_1_sensor_enumerator_interface-members.html @@ -0,0 +1,89 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::SensorEnumeratorInterface Member List
+
+
+ +

This is the complete list of members for aditof::SensorEnumeratorInterface, including all inherited members.

+ + + + + + + +
getDepthSensors(std::vector< std::shared_ptr< aditof::DepthSensorInterface >> &depthSensors)=0aditof::SensorEnumeratorInterfacepure virtual
getKernelVersion(std::string &kernelVersion) const =0aditof::SensorEnumeratorInterfacepure virtual
getSdVersion(std::string &sdVersion) const =0aditof::SensorEnumeratorInterfacepure virtual
getUbootVersion(std::string &uBootVersion) const =0aditof::SensorEnumeratorInterfacepure virtual
searchSensors()=0aditof::SensorEnumeratorInterfacepure virtual
~SensorEnumeratorInterface()=defaultaditof::SensorEnumeratorInterfacevirtual
+ + + + diff --git a/classaditof_1_1_sensor_enumerator_interface.html b/classaditof_1_1_sensor_enumerator_interface.html new file mode 100644 index 00000000..dc9b9fdb --- /dev/null +++ b/classaditof_1_1_sensor_enumerator_interface.html @@ -0,0 +1,287 @@ + + + + + + + +Time-of-Flight-SDK: aditof::SensorEnumeratorInterface Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::SensorEnumeratorInterface Class Referenceabstract
+
+
+ +

Can search for sensors and retrieve sensors by category. + More...

+ +

#include <sensor_enumerator_interface.h>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual ~SensorEnumeratorInterface ()=default
 Destructor.
 
virtual aditof::Status searchSensors ()=0
 Do a search for the available sensors. More...
 
virtual aditof::Status getDepthSensors (std::vector< std::shared_ptr< aditof::DepthSensorInterface >> &depthSensors)=0
 Get the available depth sensors. More...
 
virtual aditof::Status getUbootVersion (std::string &uBootVersion) const =0
 Get the U-Boot version that is installed on the embedded system that the camera is attached to. More...
 
virtual aditof::Status getKernelVersion (std::string &kernelVersion) const =0
 Get the kernel version that is installed on the embedded system that the camera is attached to. More...
 
virtual aditof::Status getSdVersion (std::string &sdVersion) const =0
 Get the SD card image version on the embedded system that the camera is attached to. More...
 
+

Detailed Description

+

Can search for sensors and retrieve sensors by category.

+ +

Definition at line 47 of file sensor_enumerator_interface.h.

+

Member Function Documentation

+ +

◆ getDepthSensors()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::SensorEnumeratorInterface::getDepthSensors (std::vector< std::shared_ptr< aditof::DepthSensorInterface >> & depthSensors)
+
+pure virtual
+
+ +

Get the available depth sensors.

+
Parameters
+ + +
[out]depthSensors- list of found sensors
+
+
+
Returns
Status
+ +
+
+ +

◆ getKernelVersion()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::SensorEnumeratorInterface::getKernelVersion (std::string & kernelVersion) const
+
+pure virtual
+
+ +

Get the kernel version that is installed on the embedded system that the camera is attached to.

+
Parameters
+ + +
[out]kernelVersion- string containing data abouth the version.
+
+
+
Returns
Status
+ +
+
+ +

◆ getSdVersion()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::SensorEnumeratorInterface::getSdVersion (std::string & sdVersion) const
+
+pure virtual
+
+ +

Get the SD card image version on the embedded system that the camera is attached to.

+
Parameters
+ + +
[out]sdVersion- string containing data abouth the version.
+
+
+
Returns
Status
+ +
+
+ +

◆ getUbootVersion()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual aditof::Status aditof::SensorEnumeratorInterface::getUbootVersion (std::string & uBootVersion) const
+
+pure virtual
+
+ +

Get the U-Boot version that is installed on the embedded system that the camera is attached to.

+
Parameters
+ + +
[out]uBootVersion- string containing data abouth the version.
+
+
+
Returns
Status
+ +
+
+ +

◆ searchSensors()

+ +
+
+ + + + + +
+ + + + + + + +
virtual aditof::Status aditof::SensorEnumeratorInterface::searchSensors ()
+
+pure virtual
+
+ +

Do a search for the available sensors.

+
Returns
Status
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classaditof_1_1_system-members.html b/classaditof_1_1_system-members.html new file mode 100644 index 00000000..e0007afa --- /dev/null +++ b/classaditof_1_1_system-members.html @@ -0,0 +1,88 @@ + + + + + + + +Time-of-Flight-SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
aditof::System Member List
+
+
+ +

This is the complete list of members for aditof::System, including all inherited members.

+ + + + + + +
getCameraList(std::vector< std::shared_ptr< Camera >> &cameraList, const std::string &uri="") constaditof::System
operator=(System &&op) noexceptaditof::System
System()aditof::System
System(System &&op) noexceptaditof::System
~System()aditof::System
+ + + + diff --git a/classaditof_1_1_system.html b/classaditof_1_1_system.html new file mode 100644 index 00000000..348f76bd --- /dev/null +++ b/classaditof_1_1_system.html @@ -0,0 +1,157 @@ + + + + + + + +Time-of-Flight-SDK: aditof::System Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aditof::System Class Reference
+
+
+ +

The TOF system that manages the cameras. + More...

+ +

#include <system.h>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

+SDK_API System ()
 Constructor.
 
+SDK_API ~System ()
 Destructor.
 
+SDK_API System (System &&op) noexcept
 Move constructor.
 
+SDK_API Systemoperator= (System &&op) noexcept
 Move assignment.
 
SDK_API Status getCameraList (std::vector< std::shared_ptr< Camera >> &cameraList, const std::string &uri="") const
 Populates the given list with Camera objects that correspond to the available cameras. More...
 
+

Detailed Description

+

The TOF system that manages the cameras.

+ +

Definition at line 52 of file system.h.

+

Member Function Documentation

+ +

◆ getCameraList()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SDK_API Status aditof::System::getCameraList (std::vector< std::shared_ptr< Camera >> & cameraList,
const std::string & uri = "" 
) const
+
+ +

Populates the given list with Camera objects that correspond to the available cameras.

+
Parameters
+ + + +
[out]cameraList- A container to be set with the available cameras
[in]uri- A uniform resource identifier (URI) for specifying the type of connectivity with the camera and the identification of the camera. For no remote connection, the uri parameter should be omitted For network connectivity, the URI format must be: "ip:ip-address" where the ip-address is the address of the system to which the camera is attached to. For example: "ip:10.43.0.1" or "ip:192.186.1.2", etc. For USB (UVC) connectivity, the uri parameter should be omitted
+
+
+
Returns
Status
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/vsts/work/1/s/sdk/include/aditof/system.h
  • +
+
+ + + + diff --git a/classes.html b/classes.html new file mode 100644 index 00000000..2e01db44 --- /dev/null +++ b/classes.html @@ -0,0 +1,98 @@ + + + + + + + +Time-of-Flight-SDK: Class Index + + + + + + + + + +
+
+ + + + + + +
+
Time-of-Flight-SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
a | c | d | f | i | m | p | s
+ + + + + + + + + + + +
  a  
+
  d  
+
FrameDataDetails (aditof)   
  p  
+
SensorEnumeratorInterface (aditof)   
FrameDetails (aditof)   System (aditof)   
ADSDErrors (aditof)   DepthSensorInterface (aditof)   FrameHandler (aditof)   Point3I_sdk (aditof)   
  c  
+
DepthSensorModeDetails (aditof)   
  i  
+
  s  
+
DriverConfiguration (aditof)   
Camera (aditof)   
  f  
+
IntrinsicParameters (aditof)   SensorDetails (aditof)   
CameraDetails (aditof)   
  m  
+
SensorEnumeratorFactory (aditof)   
Frame (aditof)   
Metadata (aditof)   
+
a | c | d | f | i | m | p | s
+
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 00000000..98cc2c90 Binary files /dev/null and b/closed.png differ diff --git a/cmake/aditof-config.cmake.in b/cmake/aditof-config.cmake.in new file mode 100644 index 00000000..0669458e --- /dev/null +++ b/cmake/aditof-config.cmake.in @@ -0,0 +1,22 @@ +get_filename_component(aditof_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + +set(aditof_INCLUDE_DIRS "@CONFIG_INCLUDE_DIRS@") +set(WITH_NETWORK "@WITH_NETWORK@") + +if (NOT glog_FOUND) + find_package(glog 0.3.5 REQUIRED) +endif() + +if (WITH_NETWORK) + if (NOT Protobuf_FOUND) + find_package(Protobuf 3.9.0 REQUIRED) + endif() + if (NOT Libwebsockets_FOUND) + find_package(Libwebsockets REQUIRED) + endif() +endif() +if (NOT TARGET aditof::aditof) + include("${aditof_CMAKE_DIR}/aditof-targets.cmake") +endif() + +set(aditof_LIBRARIES aditof::aditof) diff --git a/cmake/aditof-setup.iss.cmakein b/cmake/aditof-setup.iss.cmakein new file mode 100644 index 00000000..7bf40be0 --- /dev/null +++ b/cmake/aditof-setup.iss.cmakein @@ -0,0 +1,69 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define AppExeName "ADIToFGUI.exe" +#define AppName "ADI-ITOF-Setup" +#define AppDev "Analog Devices" +#define BinaryLocation "C:\projects\ToF\build" + +[Setup] +AppId={{D5F088C2-7EFC-4E04-B4F5-305F125AB360} +AppName="{#AppName}" +AppVersion="@VERSION@" +AppPublisher="Analog Devices, Inc." +AppPublisherURL="http://www.analog.com" +AppSupportURL="http://www.analog.com" +AppUpdatesURL="http://www.analog.com" +AppCopyright="Copyright 2019 Analog Devices, Inc." +CreateAppDir=yes +LicenseFile="C:\projects\ToF\LICENSE" +OutputBaseFilename={#AppName} +OutputDir="C:\" +Compression=lzma +SolidCompression=yes +ArchitecturesInstallIn64BitMode=x64 +UsePreviousAppDir=no +DefaultDirName=C:\{#AppDev}\{#AppName} +DefaultGroupName={#AppName} +DisableDirPage=no + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" +Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl" +Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl" +Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl" +Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl" +Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" +Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl" +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl" +Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl" +Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl" +Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl" +Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" +Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl" +Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" + +[Files] +Source: "{#BinaryLocation}\sdk\Release\aditof.dll"; DestDir: "{app}" +Source: "{#BinaryLocation}\examples\tof-viewer\Release\tof-viewer_config.json"; DestDir: "{app}"; +Source: "{#BinaryLocation}\examples\tof-viewer\Release\config\*"; DestDir: "{app}\config"; +Source: "{#BinaryLocation}\examples\tof-viewer\Release\ADIToFGUI.exe"; DestDir: "{app}"; +Source: "{#BinaryLocation}\examples\data_collect\Release\data_collect.exe"; DestDir: "{app}"; +Source: "{#BinaryLocation}\examples\first-frame\Release\first-frame.exe"; DestDir: "{app}"; + +[Icons] +Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}" +Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}" +Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon + + diff --git a/cmake/readme.md b/cmake/readme.md new file mode 100644 index 00000000..77846053 --- /dev/null +++ b/cmake/readme.md @@ -0,0 +1,170 @@ +# 3D Time of Flight : cmake + +#### Overview +This folder contains helper cmake.in files for the project and also config files for other cmake projects to use in order to find the SDK. + +#### Using the CMake build system +In order to build the SDK with cmake, we first need to have all the dependencies installed: glog, protobuf, libwebsockets ( [Check instructions for your system](../doc) ). + +After creating a build folder and moving into it `mkdir -p build && cd build`, we can run cmake. + +`cmake -D