tofiConfig.cpp
Go to the documentation of this file.
1 // Copyright (c) 2022 Analog Devices, Inc. All Rights Reserved.
2 // This software is proprietary to Analog Devices, Inc. and its licensors.
3 
4 #include "tofi_config.h"
5 #include "tofi_error.h"
6 
7 #include <sstream>
8 
10  ConfigFileData *p_config_file_data,
11  ConfigFileData *p_ini_file_data, uint16_t mode,
12  uint32_t *p_status) {
13  XYZTable xyzObj;
14  xyzObj.p_x_table = 0;
15  xyzObj.p_y_table = 0;
16  xyzObj.p_z_table = 0;
17 
18  TofiConfig *Obj = new TofiConfig;
19  Obj->n_cols = 0;
20  Obj->n_rows = 0;
21  Obj->p_cal_gain_block = 0;
22  Obj->p_cal_reg_block = 0;
23  Obj->p_camera_intrinsics = 0;
24  Obj->p_lsdac_block = 0;
25  Obj->p_tofi_cal_config = 0;
26  Obj->p_tofi_config_str = 0;
27  Obj->xyz_table = xyzObj;
28 
30 
31  return Obj;
32 };
33 
35  const std::string &key) {
36  iniContent.clear();
37  iniContent.seekg(0, std::ios::beg);
38 
39  std::string line;
40  while (getline(iniContent, line)) {
41  if (line.compare(0, key.length(), key) == 0) {
42  size_t equalPos = line.find('=');
43  if (equalPos != std::string::npos) {
44  return line.substr(equalPos + 1);
45  }
46  }
47  }
48 
49  return "";
50 }
51 
52 TofiConfig *InitTofiConfig_isp(ConfigFileData *p_ini_file_data, uint16_t mode,
53  uint32_t *p_status,
54  TofiXYZDealiasData *p_xyz_dealias_data) {
55  XYZTable xyzObj;
56  xyzObj.p_x_table = 0;
57  xyzObj.p_y_table = 0;
58  xyzObj.p_z_table = 0;
59 
60  ConfigFileData *configFileObj = new ConfigFileData;
61  *configFileObj = *p_ini_file_data;
62 
63  // We create a stream object with the content of the .ini file
64  // Then we extract the number of bits for: Depth, AB, Confidence
65  std::string s((char *)configFileObj->p_data, configFileObj->size);
66  std::istringstream is(s);
67  uint16_t nb_depth =
68  std::stoi(iniFileContentFindKeyAndGetValue(is, "bitsInPhaseOrDepth"));
69  uint16_t nb_ab =
70  std::stoi(iniFileContentFindKeyAndGetValue(is, "bitsInAB"));
71  uint16_t nb_conf =
72  std::stoi(iniFileContentFindKeyAndGetValue(is, "bitsInConf"));
73 
74  TofiXYZDealiasData *dealiasDataObj = new TofiXYZDealiasData;
75  *dealiasDataObj = p_xyz_dealias_data[mode];
76 
77  // We sneak the number of bits for Depth, AB, Conf into this variable that is not going to be used anywhere in tofiCompute.cpp (hopefully)
78  dealiasDataObj->Freq[0] = (nb_depth << 0) | (nb_ab << 5) | (nb_conf << 10);
79 
80  TofiConfig *Obj = new TofiConfig;
81  Obj->n_cols = 0;
82  Obj->n_rows = 0;
83  Obj->p_cal_gain_block = 0;
84  Obj->p_cal_reg_block = 0;
85  Obj->p_camera_intrinsics = 0;
86  Obj->p_lsdac_block = 0;
87  Obj->p_tofi_cal_config = reinterpret_cast<const void *>(
88  dealiasDataObj); // Not nice but couldn't find a way to store all content of p_xyz_dealias_data without changing API
89  Obj->p_tofi_config_str = reinterpret_cast<const char *>(configFileObj);
90  Obj->xyz_table = xyzObj;
91 
93 
94  return Obj;
95 };
96 
98  TofiXYZDealiasData *p_xyz_data) {
99  return 0;
100 };
101 
102 void FreeTofiConfig(TofiConfig *p_tofi_cal_config) {
103  ConfigFileData *configFileObj =
104  (ConfigFileData *)p_tofi_cal_config->p_tofi_config_str;
105  TofiXYZDealiasData *dealiasDataObj =
106  (TofiXYZDealiasData *)p_tofi_cal_config->p_tofi_cal_config;
107 
108  delete configFileObj;
109  delete dealiasDataObj;
110  delete p_tofi_cal_config;
111 };
112 
113 uint32_t TofiSetINIParams(void *p_config_params, int params_group,
114  const void *p_tofi_cal_config) {
115  return 0;
116 };
117 uint32_t TofiGetINIParams(void *p_config_params, int params_group,
118  const void *p_tofi_cal_config) {
119  return 0;
120 };
GetXYZ_DealiasData
uint32_t GetXYZ_DealiasData(ConfigFileData *ccb_data, TofiXYZDealiasData *p_xyz_data)
Definition: tofiConfig.cpp:97
TofiConfig::p_tofi_cal_config
const void * p_tofi_cal_config
Pointer to the calibration config block.
Definition: tofi_config.h:52
ConfigFileData
struct ConfigFileData ConfigFileData
InitTofiConfig
TofiConfig * InitTofiConfig(ConfigFileData *p_cal_file_data, ConfigFileData *p_config_file_data, ConfigFileData *p_ini_file_data, uint16_t mode, uint32_t *p_status)
Function to Initialize the configuration for TOFI cal config (p_tofi_cal_config) using calibration/co...
Definition: tofiConfig.cpp:9
s
XmlRpcServer s
mode
GLenum mode
Definition: glcorearb.h:2764
TofiConfig::p_cal_gain_block
const struct CAL_GAIN_CORRECTION_BLOCK * p_cal_gain_block
Pointer to the Gain Block.
Definition: tofi_config.h:48
TofiConfig::p_cal_reg_block
const struct CAL_ADDRVAL_REG_BLOCK_V1 * p_cal_reg_block
Pointer to the register writes block.
Definition: tofi_config.h:50
string
GLsizei const GLchar *const * string
Definition: glcorearb.h:3083
TofiConfig
Definition: tofi_config.h:40
ConfigFileData::p_data
unsigned char * p_data
Pointer to the data.
Definition: tofi_config.h:30
ConfigFileData::size
size_t size
Size of the data.
Definition: tofi_config.h:31
iniFileContentFindKeyAndGetValue
std::string iniFileContentFindKeyAndGetValue(std::istream &iniContent, const std::string &key)
Definition: tofiConfig.cpp:34
TofiXYZDealiasData::Freq
uint16_t Freq[MAX_N_FREQS]
Definition: tofi_camera_intrinsics.h:45
TofiConfig::p_camera_intrinsics
CameraIntrinsics * p_camera_intrinsics
Pointer to the camera intrinsic parameters.
Definition: tofi_config.h:44
ConfigFileData
Definition: tofi_config.h:29
tofi_error.h
TofiConfig::xyz_table
XYZTable xyz_table
Structure holding pointer to the X,Y,and Z table.
Definition: tofi_config.h:45
TofiGetINIParams
uint32_t TofiGetINIParams(void *p_config_params, int params_group, const void *p_tofi_cal_config)
Definition: tofiConfig.cpp:117
TofiConfig::n_rows
uint32_t n_rows
Number of rows.
Definition: tofi_config.h:41
TofiSetINIParams
uint32_t TofiSetINIParams(void *p_config_params, int params_group, const void *p_tofi_cal_config)
Definition: tofiConfig.cpp:113
depthComputeOpenSourceEnabled
uint8_t depthComputeOpenSourceEnabled
Definition: buffer_processor.cpp:57
key
const SETUP_TEARDOWN_TESTCONTEXT char * key
Definition: test_wss_transport.cpp:10
InitTofiConfig_isp
TofiConfig * InitTofiConfig_isp(ConfigFileData *p_ini_file_data, uint16_t mode, uint32_t *p_status, TofiXYZDealiasData *p_xyz_dealias_data)
Function to Initialize the configuration for TOFI cal config incase of isp.
Definition: tofiConfig.cpp:52
tofi_config.h
XYZTable::p_y_table
const float * p_y_table
Pointer to the radial correction Y Table.
Definition: tofi_config.h:36
XYZTable
Definition: tofi_config.h:34
TofiConfig::n_cols
uint32_t n_cols
Number of Columns.
Definition: tofi_config.h:42
TofiConfig::p_tofi_config_str
const char * p_tofi_config_str
Pointer to a string of ini config data.
Definition: tofi_config.h:53
XYZTable::p_x_table
const float * p_x_table
Pointer to the radial correction X Table.
Definition: tofi_config.h:35
TofiXYZDealiasData
Definition: tofi_camera_intrinsics.h:34
TofiConfig::p_lsdac_block
const struct CAL_LSDAC_BLOCK_V1 * p_lsdac_block
Pointer to the LSDAC Block.
Definition: tofi_config.h:46
TofiConfig
struct TofiConfig TofiConfig
XYZTable::p_z_table
const float * p_z_table
Pointer to the radial correction Z Table.
Definition: tofi_config.h:37
FreeTofiConfig
void FreeTofiConfig(TofiConfig *p_tofi_cal_config)
Definition: tofiConfig.cpp:102


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:07:00