offline_depth_sensor.cpp
Go to the documentation of this file.
1 #include "offline_depth_sensor.h"
2 #include "tofi/tofi_config.h"
3 #include <cstring>
4 #ifdef __linux__
5 #include <dirent.h>
6 #endif
7 #include <fstream>
8 #include <iostream>
9 #include <iterator>
10 #include <map>
11 #include <vector>
12 #ifdef USE_GLOG
13 #include <glog/logging.h>
14 #else
15 #include <aditof/log.h>
16 #endif
17 
19  : m_path(path)
20 #ifdef TARGET
21  ,
22  m_tofiConfig(nullptr), m_tofiComputeContext(nullptr)
23 #endif
24 {
26  m_connectionType = "offline";
27 }
28 
30  for (auto index : m_frameTypes) {
31  delete[] index.second.first;
32  }
33  m_frameTypes.clear();
34 #if TARGET
35  if (NULL != m_tofiComputeContext) {
36  FreeTofiCompute(m_tofiComputeContext);
37  m_tofiComputeContext = NULL;
38  }
39 
40  if (m_tofiConfig != NULL) {
41  FreeTofiConfig(m_tofiConfig);
42  m_tofiConfig = NULL;
43  }
44 #endif
45 }
46 
48  auto frame = m_frameTypes.find(std::to_string(m_selectedMode) + ".bin");
49  if (frame == m_frameTypes.end()) {
50  LOG(WARNING) << "get frame error " << m_selectedMode << " is not found";
52  }
53 
54 #ifdef TARGET
55  uint16_t *tempDepthFrame = m_tofiComputeContext->p_depth_frame;
56  uint16_t *tempAbFrame = m_tofiComputeContext->p_ab_frame;
57  float *tempConfFrame = m_tofiComputeContext->p_conf_frame;
58 
59  m_tofiComputeContext->p_depth_frame = buffer;
60  m_tofiComputeContext->p_ab_frame =
61  buffer + m_outputFrameWidth * m_outputFrameHeight / 4;
62  m_tofiComputeContext->p_conf_frame =
63  (float *)(buffer + m_outputFrameWidth * m_outputFrameHeight / 2);
64 
65  uint32_t ret = TofiCompute((uint16_t *)frame->second.first,
66  m_tofiComputeContext, NULL);
67  if (ret != ADI_TOFI_SUCCESS) {
68  LOG(ERROR) << "TofiCompute failed";
70  }
71 
72  m_tofiComputeContext->p_depth_frame = tempDepthFrame;
73  m_tofiComputeContext->p_ab_frame = tempAbFrame;
74  m_tofiComputeContext->p_conf_frame = tempConfFrame;
75 #else
76  memcpy(buffer, frame->second.first, frame->second.second);
77 #endif
78 
79  return aditof::Status::OK;
80 }
81 
83  std::vector<std::string> frameTypesResources;
84  std::streampos size;
85  uint16_t *buffer;
86 #ifdef __linux__
87  std::string fileName;
88  struct dirent *entry;
89  DIR *dir = opendir(m_path.c_str());
90  while ((entry = readdir(dir)) != NULL) {
91  fileName = entry->d_name;
92  if (fileName[0] != '.')
93  frameTypesResources.push_back(fileName);
94  }
95 #elif WIN32
96  HANDLE dir;
97  WIN32_FIND_DATA file_data;
98  if ((dir = FindFirstFile((m_path + "/*").c_str(), &file_data)) ==
99  INVALID_HANDLE_VALUE)
101  do {
102  std::string fileName = file_data.cFileName;
103  const bool is_directory =
104  (file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
105 
106  if (fileName[0] == '.')
107  continue;
108 
109  if (is_directory)
110  continue;
111 
112  frameTypesResources.push_back(fileName);
113  } while (FindNextFile(dir, &file_data));
114 
115  FindClose(dir);
116 #endif
117  if (frameTypesResources.empty()) {
118  LOG(WARNING) << "No available frame types found";
120  } else {
121  for (int index = 0; index < frameTypesResources.size(); index++) {
122  std::ifstream ifs;
123  ifs.open(m_path + '/' + frameTypesResources[index],
124  std::ios::in | std::ios::binary);
125  std::string content((std::istreambuf_iterator<char>(ifs)),
126  (std::istreambuf_iterator<char>()));
127  buffer = new uint16_t[content.size() / 2];
128  memcpy(buffer, content.data(), content.size());
129  m_frameTypes.insert({frameTypesResources[index],
130  std::make_pair(buffer, content.size())});
131  ifs.close();
132  }
133  }
134  return aditof::Status::OK;
135 }
136 
138 
140 
142 OfflineDepthSensor::getAvailableModes(std::vector<uint8_t> &modes) {
143  modes.clear();
144  for (const auto &mode : availableModes) {
145  modes.emplace_back(mode.modeNumber);
146  }
147  return aditof::Status::OK;
148 }
149 
153  using namespace aditof;
154  Status status = Status::OK;
155  for (const auto &modeDetails : availableModes) {
156  if (modeDetails.modeNumber == mode) {
157  details = modeDetails;
158  break;
159  }
160  }
161  return status;
162 }
163 
165  for (const auto &modeDetails : availableModes) {
166  if (modeDetails.modeNumber == mode) {
167  setMode(modeDetails);
168  return aditof::Status::OK;
169  }
170  }
172 }
173 
176  m_selectedMode = type.modeNumber;
177 #ifdef TARGET
178  m_outputFrameWidth = type.baseResolutionWidth * 4;
179  m_outputFrameHeight = type.baseResolutionHeight;
180 #endif
181 
182  return aditof::Status::OK;
183 }
184 
186  std::vector<std::string> &controls) const {
187  return aditof::Status::OK;
188 }
189 
191  const std::string &value) {
192  return aditof::Status::OK;
193 }
194 
196  std::string &value) const {
197  if (control == "imagerType")
198  value = "1";
199 
200  return aditof::Status::OK;
201 }
202 
205  details = m_sensorDetails;
206  return aditof::Status::OK;
207 }
208 
211 }
212 
215  return aditof::Status::OK;
216 }
217 
219  uint16_t *data,
220  unsigned int usDelay) {
221  return aditof::Status::OK;
222 }
223 
226  return aditof::Status::OK;
227 }
228 
230  uint16_t data,
231  unsigned int usDelay) {
232  return aditof::Status::OK;
233 }
234 
236  uint32_t cmd, uint8_t *readback_data, uint16_t payload_len) {
237  TofiXYZDealiasData dealiasStruct;
238  if (cmd == 0x01) {
239  dealiasStruct.camera_intrinsics.fx = 783.19696;
240  dealiasStruct.camera_intrinsics.fy = 783.248596;
241  dealiasStruct.camera_intrinsics.cx = 514.108887;
242  dealiasStruct.camera_intrinsics.cy = 515.469894;
243  dealiasStruct.camera_intrinsics.codx = 0;
244  dealiasStruct.camera_intrinsics.cody = 0;
245  dealiasStruct.camera_intrinsics.k1 = -0.12491288;
246  dealiasStruct.camera_intrinsics.k2 = 0.025611693;
247  dealiasStruct.camera_intrinsics.k3 = 0.102783337;
248  dealiasStruct.camera_intrinsics.k4 = 0.222312465;
249  dealiasStruct.camera_intrinsics.k5 = -0.134152338;
250  dealiasStruct.camera_intrinsics.k6 = 0.190698504;
251  dealiasStruct.camera_intrinsics.p2 = 5.45154289e-05;
252  dealiasStruct.camera_intrinsics.p1 = 0.000267527241;
253  memcpy(readback_data, &dealiasStruct.camera_intrinsics,
254  sizeof(CameraIntrinsics));
255  } else if (cmd == 0x02) {
256  if (readback_data[0] == 0) {
257  dealiasStruct.n_rows = 1024;
258  dealiasStruct.n_cols = 1024;
259  dealiasStruct.n_freqs = 2;
260  dealiasStruct.row_bin_factor = 1;
261  dealiasStruct.col_bin_factor = 1;
262  dealiasStruct.n_sensor_rows = 1024;
263  dealiasStruct.n_sensor_cols = 1024;
264  dealiasStruct.FreqIndex[0] = 1;
265  dealiasStruct.FreqIndex[1] = 2;
266  dealiasStruct.FreqIndex[2] = 0;
267  dealiasStruct.Freq[0] = 14200;
268  dealiasStruct.Freq[1] = 17750;
269  dealiasStruct.Freq[2] = 0;
270  } else if (readback_data[0] == 1) {
271  dealiasStruct.n_rows = 1024;
272  dealiasStruct.n_cols = 1024;
273  dealiasStruct.n_freqs = 3;
274  dealiasStruct.row_bin_factor = 1;
275  dealiasStruct.col_bin_factor = 1;
276  dealiasStruct.n_sensor_rows = 1024;
277  dealiasStruct.n_sensor_cols = 1024;
278  dealiasStruct.FreqIndex[0] = 1;
279  dealiasStruct.FreqIndex[1] = 2;
280  dealiasStruct.FreqIndex[2] = 3;
281  dealiasStruct.Freq[0] = 19800;
282  dealiasStruct.Freq[1] = 18900;
283  dealiasStruct.Freq[2] = 5400;
284  } else if (readback_data[0] == 2) {
285  dealiasStruct.n_rows = 512;
286  dealiasStruct.n_cols = 512;
287  dealiasStruct.n_freqs = 2;
288  dealiasStruct.row_bin_factor = 1;
289  dealiasStruct.col_bin_factor = 1;
290  dealiasStruct.n_sensor_rows = 1024;
291  dealiasStruct.n_sensor_cols = 1024;
292  dealiasStruct.FreqIndex[0] = 1;
293  dealiasStruct.FreqIndex[1] = 2;
294  dealiasStruct.FreqIndex[2] = 0;
295  dealiasStruct.Freq[0] = 14200;
296  dealiasStruct.Freq[1] = 17750;
297  dealiasStruct.Freq[2] = 0;
298  } else if (readback_data[0] == 3) {
299  dealiasStruct.n_rows = 512;
300  dealiasStruct.n_cols = 512;
301  dealiasStruct.n_freqs = 3;
302  dealiasStruct.row_bin_factor = 1;
303  dealiasStruct.col_bin_factor = 1;
304  dealiasStruct.n_sensor_rows = 1024;
305  dealiasStruct.n_sensor_cols = 1024;
306  dealiasStruct.FreqIndex[0] = 1;
307  dealiasStruct.FreqIndex[1] = 2;
308  dealiasStruct.FreqIndex[2] = 3;
309  dealiasStruct.Freq[0] = 19800;
310  dealiasStruct.Freq[1] = 18900;
311  dealiasStruct.Freq[2] = 5400;
312  } else if (readback_data[0] == 5) {
313  dealiasStruct.n_rows = 512;
314  dealiasStruct.n_cols = 512;
315  dealiasStruct.n_freqs = 3;
316  dealiasStruct.row_bin_factor = 1;
317  dealiasStruct.col_bin_factor = 1;
318  dealiasStruct.n_sensor_rows = 1024;
319  dealiasStruct.n_sensor_cols = 1024;
320  dealiasStruct.FreqIndex[0] = 1;
321  dealiasStruct.FreqIndex[1] = 2;
322  dealiasStruct.FreqIndex[2] = 3;
323  dealiasStruct.Freq[0] = 19800;
324  dealiasStruct.Freq[1] = 18900;
325  dealiasStruct.Freq[2] = 5400;
326  } else if (readback_data[0] == 6) {
327  dealiasStruct.n_rows = 512;
328  dealiasStruct.n_cols = 512;
329  dealiasStruct.n_freqs = 2;
330  dealiasStruct.row_bin_factor = 1;
331  dealiasStruct.col_bin_factor = 1;
332  dealiasStruct.n_sensor_rows = 1024;
333  dealiasStruct.n_sensor_cols = 1024;
334  dealiasStruct.FreqIndex[0] = 1;
335  dealiasStruct.FreqIndex[1] = 2;
336  dealiasStruct.FreqIndex[2] = 0;
337  dealiasStruct.Freq[0] = 14200;
338  dealiasStruct.Freq[1] = 17750;
339  dealiasStruct.Freq[2] = 0;
340  }
341  dealiasStruct.n_offset_rows = 0;
342  dealiasStruct.n_offset_cols = 0;
343  memcpy(readback_data, &dealiasStruct,
344  sizeof(TofiXYZDealiasData) - sizeof(CameraIntrinsics));
345  } else {
346  memset(readback_data, 1, payload_len);
347  }
348  return aditof::Status::OK;
349 }
350 
352  uint16_t payload_len) {
353 
354  return aditof::Status::OK;
355 }
356 
358 OfflineDepthSensor::adsd3500_write_payload_cmd(uint32_t cmd, uint8_t *payload,
359  uint16_t payload_len) {
360  return aditof::Status::OK;
361 }
362 
365  uint16_t payload_len) {
366  return aditof::Status::OK;
367 }
368 
370  return aditof::Status::OK;
371 }
372 
375  LOG(WARNING)
376  << "Unregistering an interrupt callback on an offline connection "
377  "is not supported!";
379 }
380 
383  LOG(WARNING)
384  << "Registering an interrupt callback on an offline connection "
385  "is not supported!";
387 }
388 
390  int &imagerStatus) {
391  return aditof::Status::OK;
392 }
393 
395  uint8_t *iniFile, uint16_t iniFileLength, uint8_t *calData,
396  uint16_t calDataLength) {
397  using namespace aditof;
398 
399 #ifdef TARGET
400  // Initialize Depth Compute
401  uint32_t status = ADI_TOFI_SUCCESS;
402  ConfigFileData calDataStruct = {calData, calDataLength};
403  if (iniFile != nullptr) {
404  ConfigFileData depth_ini = {iniFile, iniFileLength};
405  memcpy(m_xyzDealiasData, calData, calDataLength);
406  m_tofiConfig =
408  &status, m_xyzDealiasData);
409  } else {
410  m_tofiConfig =
411  InitTofiConfig(&calDataStruct, NULL, NULL, m_selectedMode, &status);
412  }
413 
414  if ((m_tofiConfig == NULL) || (m_tofiConfig->p_tofi_cal_config == NULL) ||
415  (status != ADI_TOFI_SUCCESS)) {
416  LOG(ERROR) << "InitTofiConfig failed";
418  } else {
419  m_tofiComputeContext =
420  InitTofiCompute(m_tofiConfig->p_tofi_cal_config, &status);
421  if (m_tofiComputeContext == NULL || status != ADI_TOFI_SUCCESS) {
422  LOG(ERROR) << "InitTofiCompute failed";
424  }
425  }
426 #endif
427  return aditof::Status::OK;
428 }
429 
431  std::map<std::string, std::string> &params) {
432  return aditof::Status::OK;
433 }
434 
436  const std::map<std::string, std::string> &params) {
437  return aditof::Status::OK;
438 }
439 
442  // TODO: select sensor table configuration
443  return aditof::Status::OK;
444 }
445 
448 
449  return aditof::Status::OK;
450 }
offline_depth_sensor.h
CameraIntrinsics::cx
float cx
Definition: tofi_camera_intrinsics.h:19
OfflineDepthSensor::getControl
virtual aditof::Status getControl(const std::string &control, std::string &value) const override
Gets the value of a specific sensor control.
Definition: offline_depth_sensor.cpp:195
name
GLuint const GLchar * name
Definition: glcorearb.h:3055
OfflineDepthSensor::initTargetDepthCompute
virtual aditof::Status initTargetDepthCompute(uint8_t *iniFile, uint16_t iniFileLength, uint8_t *calData, uint16_t calDataLength) override
Get the name of the sensor.
Definition: offline_depth_sensor.cpp:394
TofiXYZDealiasData::col_bin_factor
uint8_t col_bin_factor
Definition: tofi_camera_intrinsics.h:39
CameraIntrinsics::p1
float p1
Definition: tofi_camera_intrinsics.h:30
NULL
NULL
Definition: test_security_zap.cpp:405
aditof::SensorDetails
Provides details about the device.
Definition: sensor_definitions.h:50
TofiXYZDealiasData::n_offset_cols
uint16_t n_offset_cols
Definition: tofi_camera_intrinsics.h:41
ERROR
const int ERROR
Definition: log_severity.h:60
CameraIntrinsics::k5
float k5
Definition: tofi_camera_intrinsics.h:27
versiongenerate.file_data
string file_data
Definition: versiongenerate.py:84
aditof::Status::GENERIC_ERROR
@ GENERIC_ERROR
An error occured but there are no details available.
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
readdir
static struct dirent * readdir(DIR *dirp)
Definition: dirent.h:732
mode
GLenum mode
Definition: glcorearb.h:2764
InitTofiCompute
TofiComputeContext * InitTofiCompute(const void *p_tofi_cal_config, uint32_t *p_status)
Definition: tofiCompute.cpp:22
OfflineDepthSensor::m_path
std::string m_path
Definition: offline_depth_sensor.h:83
log.h
dirent::d_name
char d_name[PATH_MAX+1]
Definition: dirent.h:278
CameraIntrinsics::k1
float k1
Definition: tofi_camera_intrinsics.h:23
OfflineDepthSensor::adsd3500_write_payload
virtual aditof::Status adsd3500_write_payload(uint8_t *payload, uint16_t payload_len) override
Send a chunk of data (payload) to adsd3500. This will perform a burst write making it useful for writ...
Definition: offline_depth_sensor.cpp:364
OfflineDepthSensor::adsd3500_read_payload
virtual aditof::Status adsd3500_read_payload(uint8_t *payload, uint16_t payload_len) override
Reads a chunk of data from adsd3500. This will perform a burst read making it useful for reading chun...
Definition: offline_depth_sensor.cpp:351
OfflineDepthSensor::m_sensorDetails
aditof::SensorDetails m_sensorDetails
Definition: offline_depth_sensor.h:81
TofiXYZDealiasData::camera_intrinsics
CameraIntrinsics camera_intrinsics
Definition: tofi_camera_intrinsics.h:46
OfflineDepthSensor::getDetails
virtual aditof::Status getDetails(aditof::SensorDetails &details) const override
Get a structure that contains information about the instance of the sensor.
Definition: offline_depth_sensor.cpp:204
string
GLsizei const GLchar *const * string
Definition: glcorearb.h:3083
OfflineDepthSensor::availableModes
const std::vector< aditof::DepthSensorModeDetails > availableModes
Definition: offline_depth_sensor.h:86
OfflineDepthSensor::open
virtual aditof::Status open() override
Open the communication channels with the hardware.
Definition: offline_depth_sensor.cpp:82
TofiXYZDealiasData::FreqIndex
uint8_t FreqIndex[MAX_N_FREQS]
Definition: tofi_camera_intrinsics.h:44
OfflineDepthSensor::getFrame
virtual aditof::Status getFrame(uint16_t *buffer) override
Request a frame from the sensor.
Definition: offline_depth_sensor.cpp:47
OfflineDepthSensor::setDepthComputeParams
virtual aditof::Status setDepthComputeParams(const std::map< std::string, std::string > &params) override
Set ini parameters for Depth Compute library.
Definition: offline_depth_sensor.cpp:435
TofiXYZDealiasData::n_cols
int n_cols
Definition: tofi_camera_intrinsics.h:36
OfflineDepthSensor::getName
virtual aditof::Status getName(std::string &name) const override
Get the name of the sensor.
Definition: offline_depth_sensor.cpp:213
aditof::Status::UNAVAILABLE
@ UNAVAILABLE
The requested action or resource is unavailable.
WARNING
const int WARNING
Definition: log_severity.h:59
aditof::ConnectionType::OFFLINE
@ OFFLINE
connects to a software module, no hardware involved
OfflineDepthSensor::setSensorConfiguration
virtual aditof::Status setSensorConfiguration(const std::string &sensorConf) override
Set sensor configutation table.
Definition: offline_depth_sensor.cpp:441
CameraIntrinsics::k4
float k4
Definition: tofi_camera_intrinsics.h:26
OfflineDepthSensor::OfflineDepthSensor
OfflineDepthSensor(std::string path)
Definition: offline_depth_sensor.cpp:18
CameraIntrinsics::k6
float k6
Definition: tofi_camera_intrinsics.h:28
TofiXYZDealiasData::n_rows
int n_rows
Definition: tofi_camera_intrinsics.h:35
TofiXYZDealiasData::Freq
uint16_t Freq[MAX_N_FREQS]
Definition: tofi_camera_intrinsics.h:45
CameraIntrinsics::codx
float codx
Definition: tofi_camera_intrinsics.h:21
ConfigFileData
Definition: tofi_config.h:29
OfflineDepthSensor::adsd3500_unregister_interrupt_callback
virtual aditof::Status adsd3500_unregister_interrupt_callback(aditof::SensorInterruptCallback &cb) override
Unregister a function registered with adsd3500_register_interrupt_callback.
Definition: offline_depth_sensor.cpp:381
OfflineDepthSensor::getHandle
virtual aditof::Status getHandle(void **handle) override
Gets a handle to be used by other devices such as Storage, Temperature, etc. This handle will allow t...
Definition: offline_depth_sensor.cpp:209
FreeTofiCompute
void FreeTofiCompute(TofiComputeContext *p_tofi_compute_context)
Definition: tofiCompute.cpp:147
dirent.h
OfflineDepthSensor::getDepthComputeParams
virtual aditof::Status getDepthComputeParams(std::map< std::string, std::string > &params) override
Get ini parameters for Depth Compute library.
Definition: offline_depth_sensor.cpp:430
OfflineDepthSensor::adsd3500_reset
virtual aditof::Status adsd3500_reset() override
Reset adsd3500 chip.
Definition: offline_depth_sensor.cpp:369
OfflineDepthSensor::setHostConnectionType
virtual aditof::Status setHostConnectionType(std::string &connectionType) override
Set the host connection type for target sdk.
Definition: offline_depth_sensor.cpp:225
path
GLsizei const GLchar ** path
Definition: glcorearb.h:3658
OfflineDepthSensor::start
virtual aditof::Status start() override
Start the streaming of data from the sensor.
Definition: offline_depth_sensor.cpp:137
aditof
Namespace aditof.
Definition: adsd_errs.h:40
buffer
GLuint buffer
Definition: glcorearb.h:2939
OfflineDepthSensor::m_connectionType
std::string m_connectionType
Definition: offline_depth_sensor.h:80
google::protobuf::util::error::OK
@ OK
Definition: status.h:47
dirent
Definition: dirent.h:261
OfflineDepthSensor::adsd3500_write_cmd
virtual aditof::Status adsd3500_write_cmd(uint16_t cmd, uint16_t data, unsigned int usDelay) override
Send a write command to adsd3500.
Definition: offline_depth_sensor.cpp:229
size
#define size
Definition: glcorearb.h:2944
OfflineDepthSensor::adsd3500_get_status
virtual aditof::Status adsd3500_get_status(int &chipStatus, int &imagerStatus) override
Returns the chip status.
Definition: offline_depth_sensor.cpp:389
params
GLenum const GLfloat * params
Definition: glcorearb.h:2770
OfflineDepthSensor::stop
virtual aditof::Status stop() override
Stop the sensor data stream.
Definition: offline_depth_sensor.cpp:139
TofiXYZDealiasData::row_bin_factor
uint8_t row_bin_factor
Definition: tofi_camera_intrinsics.h:38
buffer
Definition: buffer_processor.h:43
CameraIntrinsics::k3
float k3
Definition: tofi_camera_intrinsics.h:25
OfflineDepthSensor::adsd3500_write_payload_cmd
virtual aditof::Status adsd3500_write_payload_cmd(uint32_t cmd, uint8_t *payload, uint16_t payload_len) override
Send a write command to adsd3500. This will perform a burst write making it useful for writing chunks...
Definition: offline_depth_sensor.cpp:358
google::protobuf::util::error::INVALID_ARGUMENT
@ INVALID_ARGUMENT
Definition: status.h:50
OfflineDepthSensor::setControl
virtual aditof::Status setControl(const std::string &control, const std::string &value) override
Sets a specific sensor control.
Definition: offline_depth_sensor.cpp:190
aditof::Status::INVALID_ARGUMENT
@ INVALID_ARGUMENT
Invalid arguments provided.
aditof::Status
Status
Status of any operation that the TOF sdk performs.
Definition: status_definitions.h:48
OfflineDepthSensor::getAvailableControls
virtual aditof::Status getAvailableControls(std::vector< std::string > &controls) const override
Gets the sensors's list of controls.
Definition: offline_depth_sensor.cpp:185
TofiCompute
int TofiCompute(const uint16_t *const input_frame, TofiComputeContext *const p_tofi_compute_context, TemperatureInfo *p_temperature)
Definition: tofiCompute.cpp:106
type
GLenum type
Definition: glcorearb.h:2695
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
LOG
#define LOG(x)
Definition: sdk/include/aditof/log.h:72
TofiXYZDealiasData::n_sensor_cols
uint16_t n_sensor_cols
Definition: tofi_camera_intrinsics.h:43
tofi_config.h
aditof::Status::UNREACHABLE
@ UNREACHABLE
Device or resource is unreachable.
aditof::Status::OK
@ OK
Success.
DIR
Definition: dirent.h:282
OfflineDepthSensor::adsd3500_register_interrupt_callback
virtual aditof::Status adsd3500_register_interrupt_callback(aditof::SensorInterruptCallback &cb) override
Register a function to be called when a ADSD3500 interrupt occurs.
Definition: offline_depth_sensor.cpp:373
OfflineDepthSensor::getAvailableModes
virtual aditof::Status getAvailableModes(std::vector< uint8_t > &modes) override
Return all modes that are supported by the sensor.
Definition: offline_depth_sensor.cpp:142
OfflineDepthSensor::~OfflineDepthSensor
~OfflineDepthSensor()
Definition: offline_depth_sensor.cpp:29
aditof::DepthSensorModeDetails
Describes the type of entire frame that a depth sensor can capture and transmit.
Definition: sensor_definitions.h:120
OfflineDepthSensor::m_selectedMode
uint8_t m_selectedMode
Definition: offline_depth_sensor.h:84
TofiXYZDealiasData::n_offset_rows
uint16_t n_offset_rows
Definition: tofi_camera_intrinsics.h:40
CameraIntrinsics
Definition: tofi_camera_intrinsics.h:16
HANDLE
void * HANDLE
Definition: wepoll.c:70
OfflineDepthSensor::m_frameTypes
std::map< std::string, std::pair< std::uint16_t *, std::size_t > > m_frameTypes
Definition: offline_depth_sensor.h:85
CameraIntrinsics::cody
float cody
Definition: tofi_camera_intrinsics.h:22
TofiXYZDealiasData::n_sensor_rows
uint16_t n_sensor_rows
Definition: tofi_camera_intrinsics.h:42
CameraIntrinsics::fy
float fy
Definition: tofi_camera_intrinsics.h:18
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: glcorearb.h:2879
TofiXYZDealiasData
Definition: tofi_camera_intrinsics.h:34
CameraIntrinsics::fx
float fx
Definition: tofi_camera_intrinsics.h:17
opendir
static DIR * opendir(const char *dirname)
Definition: dirent.h:676
aditof::SensorDetails::connectionType
ConnectionType connectionType
The type of connection with the sensor.
Definition: sensor_definitions.h:60
CameraIntrinsics::p2
float p2
Definition: tofi_camera_intrinsics.h:29
OfflineDepthSensor::adsd3500_read_payload_cmd
virtual aditof::Status adsd3500_read_payload_cmd(uint32_t cmd, uint8_t *readback_data, uint16_t payload_len) override
Send a read command to adsd3500. This will perform a burst read making it useful for reading chunks o...
Definition: offline_depth_sensor.cpp:235
value
GLsizei const GLfloat * value
Definition: glcorearb.h:3093
binary
const GLuint GLenum const GLvoid * binary
Definition: glcorearb.h:3962
OfflineDepthSensor::getModeDetails
virtual aditof::Status getModeDetails(const uint8_t &mode, aditof::DepthSensorModeDetails &details) override
Returns details of specified mode.
Definition: offline_depth_sensor.cpp:151
ADI_TOFI_SUCCESS
@ ADI_TOFI_SUCCESS
0
Definition: tofi_error.h:11
OfflineDepthSensor::getIniParamsArrayForMode
aditof::Status getIniParamsArrayForMode(int mode, std::string &iniStr) override
Get ini parameters for Depth Compute library as string.
Definition: offline_depth_sensor.cpp:447
CameraIntrinsics::k2
float k2
Definition: tofi_camera_intrinsics.h:24
index
GLuint index
Definition: glcorearb.h:3055
CameraIntrinsics::cy
float cy
Definition: tofi_camera_intrinsics.h:20
TofiXYZDealiasData::n_freqs
uint8_t n_freqs
Definition: tofi_camera_intrinsics.h:37
OfflineDepthSensor::adsd3500_read_cmd
virtual aditof::Status adsd3500_read_cmd(uint16_t cmd, uint16_t *data, unsigned int usDelay=0) override
Send a read command to adsd3500.
Definition: offline_depth_sensor.cpp:218
aditof::SensorInterruptCallback
std::function< void(Adsd3500Status)> SensorInterruptCallback
Callback for sensor interrupts.
Definition: depth_sensor_interface.h:50
FreeTofiConfig
void FreeTofiConfig(TofiConfig *p_tofi_cal_config)
Definition: tofiConfig.cpp:102
OfflineDepthSensor::setMode
virtual aditof::Status setMode(const aditof::DepthSensorModeDetails &mode) override
Set the sensor frame mode to the given type.
Definition: offline_depth_sensor.cpp:175


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