1#ifndef _CHRONOPTICS_TOF_CAMERA_CONFIG_H_
2#define _CHRONOPTICS_TOF_CAMERA_CONFIG_H_
4#include <chronoptics/tof/processing_config.h>
13 TOF_CAMERA_TYPE_OPT8241 = 1,
14 TOF_CAMERA_TYPE_OPT8241_EXT = 4,
15 TOF_CAMERA_TYPE_MLX75027 = 6,
16 TOF_CAMERA_TYPE_VD55H1 = 9,
22 TOF_SENSOR_MODE_NORMAL = 0,
23 TOF_SENSOR_MODE_COMMON = 1,
24 TOF_SENSOR_MODE_EXTERNAL_DEMOD = 4,
25 TOF_SENSOR_MODE_EXTERNAL_SIGNAL = 5,
26 TOF_SENSOR_MODE_TAP_A = 8,
27 TOF_SENSOR_MODE_TAP_B = 9,
28 TOF_SENSOR_MODE_TAP_AB = 10,
29 TOF_SENSOR_MODE_TAP_AB_HDR = 12,
34enum tof_trigger_mode {
35 TOF_TRIGGER_MODE_CONTINUOUS = 0,
36 TOF_TRIGGER_MODE_HARDWARE = 1,
37 TOF_TRIGGER_MODE_SOFTWARE = 2,
43 TOF_LIGHT_POWER_FULL = 0,
44 TOF_LIGHT_POWER_HALF = 1,
45 TOF_LIGHT_POWER_ZERO = 2,
50typedef struct tof_roi* tof_roi_t;
53TOF_EXPORT
void tof_roi_delete(tof_roi_t ptr);
60TOF_EXPORT int32_t tof_roi_sensor_rows(
const tof_roi_t ptr, tof_error_t *error);
67TOF_EXPORT int32_t tof_roi_sensor_cols(
const tof_roi_t ptr, tof_error_t *error);
74TOF_EXPORT int32_t tof_roi_get_row_offset(
const tof_roi_t ptr, tof_error_t *error);
81TOF_EXPORT
void tof_roi_set_row_offset(tof_roi_t ptr, int32_t row_offset, tof_error_t *error);
88TOF_EXPORT int32_t tof_roi_get_col_offset(
const tof_roi_t ptr, tof_error_t *error);
95TOF_EXPORT
void tof_roi_set_col_offset(tof_roi_t ptr, int32_t col_offset, tof_error_t *error);
102TOF_EXPORT int32_t tof_roi_get_img_rows(
const tof_roi_t ptr, tof_error_t *error);
109TOF_EXPORT
void tof_roi_set_img_rows(tof_roi_t ptr, int32_t img_rows, tof_error_t *error);
116TOF_EXPORT int32_t tof_roi_get_img_cols(
const tof_roi_t ptr, tof_error_t *error);
123TOF_EXPORT
void tof_roi_set_img_cols(tof_roi_t ptr, int32_t img_cols, tof_error_t *error);
127typedef struct tof_camera_config* tof_camera_config_t;
130TOF_EXPORT
void tof_camera_config_delete(tof_camera_config_t ptr);
138TOF_EXPORT tof_camera_config_t tof_camera_config_new_from_disk(
const char* file_location, tof_error_t *error);
145TOF_EXPORT
void tof_camera_config_write(
const tof_camera_config_t ptr,
const char* file_location, tof_error_t *error);
152TOF_EXPORT
enum tof_camera_type tof_camera_config_get_type(
const tof_camera_config_t ptr, tof_error_t *error);
158TOF_EXPORT
void tof_camera_config_reset(tof_camera_config_t ptr, tof_error_t *error);
166TOF_EXPORT
size_t tof_camera_config_frame_size(
const tof_camera_config_t ptr, tof_error_t *error);
172TOF_EXPORT
void tof_camera_config_add_frame(tof_camera_config_t ptr, tof_error_t *error);
179TOF_EXPORT tof_processing_config_t tof_camera_config_default_processing(
const tof_camera_config_t ptr, tof_error_t *error);
186TOF_EXPORT
void tof_camera_config_erase_frame(tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
197TOF_EXPORT
size_t tof_camera_config_get_phase_shifts(
const tof_camera_config_t ptr,
size_t frame,
float* phase_shifts,
size_t capacity, tof_error_t *error);
207TOF_EXPORT
void tof_camera_config_set_phase_shifts(tof_camera_config_t ptr,
size_t frame,
const float* phase_shifts,
size_t phase_shifts_size, tof_error_t *error);
217TOF_EXPORT
size_t tof_camera_config_get_integration_time(
const tof_camera_config_t ptr,
size_t frame, uint32_t* integration_time,
size_t capacity, tof_error_t *error);
226TOF_EXPORT
void tof_camera_config_set_integration_time(tof_camera_config_t ptr,
size_t frame,
const uint32_t* integration_time,
size_t integration_time_size, tof_error_t *error);
234TOF_EXPORT
enum tof_sensor_mode tof_camera_config_get_sensor_mode(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
242TOF_EXPORT
void tof_camera_config_set_sensor_mode(tof_camera_config_t ptr,
size_t frame,
enum tof_sensor_mode sensor_mode, tof_error_t *error);
250TOF_EXPORT
float tof_camera_config_get_modulation_frequency(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
258TOF_EXPORT
void tof_camera_config_set_modulation_frequency(tof_camera_config_t ptr,
size_t frame,
float modulation_frequency, tof_error_t *error);
266TOF_EXPORT
float tof_camera_config_get_duty_cycle(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
274TOF_EXPORT
void tof_camera_config_set_duty_cycle(tof_camera_config_t ptr,
size_t frame,
float duty_cycle, tof_error_t *error);
282TOF_EXPORT tof_roi_t tof_camera_config_get_roi(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
290TOF_EXPORT
void tof_camera_config_set_roi(tof_camera_config_t ptr,
size_t frame, tof_roi_t roi, tof_error_t *error);
298TOF_EXPORT uint8_t tof_camera_config_get_binning(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
306TOF_EXPORT
void tof_camera_config_set_binning(tof_camera_config_t ptr,
size_t frame, uint8_t binning, tof_error_t *error);
314TOF_EXPORT
bool tof_camera_config_get_flip(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
322TOF_EXPORT
void tof_camera_config_set_flip(tof_camera_config_t ptr,
size_t frame,
bool flip, tof_error_t *error);
330TOF_EXPORT
bool tof_camera_config_get_mirror(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
338TOF_EXPORT
void tof_camera_config_set_mirror(tof_camera_config_t ptr,
size_t frame,
bool mirror, tof_error_t *error);
345TOF_EXPORT
float tof_camera_config_get_gain(
const tof_camera_config_t ptr, tof_error_t *error);
352TOF_EXPORT
void tof_camera_config_set_gain(tof_camera_config_t ptr,
float gain, tof_error_t *error);
360TOF_EXPORT int32_t tof_camera_config_get_sync_mode(
const tof_camera_config_t ptr, tof_error_t *error);
368TOF_EXPORT
void tof_camera_config_set_sync_mode(tof_camera_config_t ptr, int32_t sync_mode, tof_error_t *error);
378TOF_EXPORT
size_t tof_camera_config_maximum_integration_time(tof_camera_config_t ptr,
size_t frame, uint32_t* maximum_integration_time,
size_t capacity, tof_error_t *error);
387TOF_EXPORT
size_t tof_camera_config_get_dac(
const tof_camera_config_t ptr, uint16_t* dac,
size_t capacity, tof_error_t *error);
395TOF_EXPORT
void tof_camera_config_set_dac(tof_camera_config_t ptr,
const uint16_t* dac,
size_t dac_size, tof_error_t *error);
402TOF_EXPORT int32_t tof_camera_config_get_mlx_mipi_speed(
const tof_camera_config_t ptr, tof_error_t *error);
410TOF_EXPORT
void tof_camera_config_set_mlx_mipi_speed(tof_camera_config_t ptr, int32_t mipi_speed, tof_error_t *error);
417TOF_EXPORT int32_t tof_camera_config_get_mipi_speed(
const tof_camera_config_t ptr, tof_error_t *error);
424TOF_EXPORT
void tof_camera_config_set_mipi_speed(tof_camera_config_t ptr, int32_t mipi_speed, tof_error_t *error);
432TOF_EXPORT uint32_t tof_camera_config_get_mlx_preheat(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
440TOF_EXPORT
void tof_camera_config_set_mlx_preheat(tof_camera_config_t ptr,
size_t frame, uint32_t preheat, tof_error_t *error);
448TOF_EXPORT
bool tof_camera_config_get_mlx_preheat_enable(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
456TOF_EXPORT
void tof_camera_config_set_mlx_preheat_enable(tof_camera_config_t ptr,
size_t frame,
bool enable, tof_error_t *error);
463TOF_EXPORT
void tof_camera_config_set_opt_kea_nios_hex(tof_camera_config_t ptr,
const char* file_location, tof_error_t *error);
470TOF_EXPORT int32_t* tof_camera_config_get_opt_kea_sub_quad(
const tof_camera_config_t ptr, tof_error_t *error);
477TOF_EXPORT
void tof_camera_config_set_opt_kea_sub_quad(tof_camera_config_t ptr,
const int32_t* subs_quads, tof_error_t *error);
484TOF_EXPORT tof_processing_config_t tof_camera_config_get_processing(
const tof_camera_config_t ptr, tof_error_t *error);
491TOF_EXPORT
void tof_camera_config_set_processing(tof_camera_config_t ptr, tof_processing_config_t processing, tof_error_t *error);
500TOF_EXPORT uint32_t tof_camera_config_get_frame_time(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
509TOF_EXPORT
void tof_camera_config_set_frame_time(tof_camera_config_t ptr,
size_t frame, uint32_t frame_time, tof_error_t *error);
520TOF_EXPORT
float* tof_camera_config_get_global_phase_offset(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
531TOF_EXPORT
void tof_camera_config_set_global_phase_offset(tof_camera_config_t ptr,
size_t frame,
const float* phase_offset, tof_error_t *error);
540TOF_EXPORT uint8_t tof_camera_config_get_illumination_mode(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
549TOF_EXPORT
void tof_camera_config_set_illumination_mode(tof_camera_config_t ptr,
size_t frame, uint8_t illumination_mode, tof_error_t *error);
560TOF_EXPORT
size_t tof_camera_config_get_image_offsets(
const tof_camera_config_t ptr,
size_t frame,
float* image_offsets,
size_t capacity, tof_error_t *error);
570TOF_EXPORT
void tof_camera_config_set_image_offsets(tof_camera_config_t ptr,
size_t frame,
const float* image_offsets,
size_t image_offsets_size, tof_error_t *error);
577TOF_EXPORT
size_t tof_camera_config_get_rgb_width(tof_camera_config_t ptr, tof_error_t *error);
584TOF_EXPORT
size_t tof_camera_config_get_rgb_height(tof_camera_config_t ptr, tof_error_t *error);
591TOF_EXPORT
enum tof_trigger_mode tof_camera_config_get_trigger_mode(
const tof_camera_config_t ptr, tof_error_t *error);
598TOF_EXPORT
void tof_camera_config_set_trigger_mode(tof_camera_config_t ptr,
enum tof_trigger_mode trigger_mode, tof_error_t *error);
605TOF_EXPORT
float tof_camera_config_get_depth_fps(tof_camera_config_t ptr, tof_error_t *error);
612TOF_EXPORT
const char* tof_camera_config_get_name(
const tof_camera_config_t ptr, tof_error_t *error);
619TOF_EXPORT
void tof_camera_config_set_name(tof_camera_config_t ptr,
const char* name, tof_error_t *error);
626TOF_EXPORT
const char* tof_camera_config_get_description(
const tof_camera_config_t ptr, tof_error_t *error);
633TOF_EXPORT
void tof_camera_config_set_description(tof_camera_config_t ptr,
const char* description, tof_error_t *error);
640TOF_EXPORT
enum tof_light_power tof_camera_config_get_light_power(
const tof_camera_config_t ptr, tof_error_t *error);
647TOF_EXPORT
void tof_camera_config_set_light_power(tof_camera_config_t ptr,
enum tof_light_power light_power, tof_error_t *error);
654TOF_EXPORT
bool tof_camera_config_has_light_power(tof_camera_config_t ptr, tof_error_t *error);
662TOF_EXPORT
bool tof_camera_config_equal(
const tof_camera_config_t lhs,
const tof_camera_config_t rhs, tof_error_t *error);
669TOF_EXPORT
const char* tof_light_power_name(
enum tof_light_power light_power, tof_error_t *error);