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,
51 TOF_GPIO_MODE_DISABLED = 0,
52 TOF_GPIO_MODE_HW_TRIGGER_IN = 1,
53 TOF_GPIO_MODE_HW_TRIGGER_OUT = 2,
54 TOF_GPIO_MODE_GENERAL_INPUT = 3,
55 TOF_GPIO_MODE_GENERAL_OUTPUT = 4,
60typedef struct tof_roi* tof_roi_t;
62typedef struct tof_roi const* tof_roi_ct;
65TOF_EXPORT
void tof_roi_delete(tof_roi_t ptr);
72TOF_EXPORT int32_t tof_roi_sensor_rows(tof_roi_ct ptr, tof_error_t *error);
79TOF_EXPORT int32_t tof_roi_sensor_cols(tof_roi_ct ptr, tof_error_t *error);
86TOF_EXPORT int32_t tof_roi_get_row_offset(tof_roi_ct ptr, tof_error_t *error);
93TOF_EXPORT
void tof_roi_set_row_offset(tof_roi_t ptr, int32_t row_offset, tof_error_t *error);
100TOF_EXPORT int32_t tof_roi_get_col_offset(tof_roi_ct ptr, tof_error_t *error);
107TOF_EXPORT
void tof_roi_set_col_offset(tof_roi_t ptr, int32_t col_offset, tof_error_t *error);
114TOF_EXPORT int32_t tof_roi_get_img_rows(tof_roi_ct ptr, tof_error_t *error);
121TOF_EXPORT
void tof_roi_set_img_rows(tof_roi_t ptr, int32_t img_rows, tof_error_t *error);
128TOF_EXPORT int32_t tof_roi_get_img_cols(tof_roi_ct ptr, tof_error_t *error);
135TOF_EXPORT
void tof_roi_set_img_cols(tof_roi_t ptr, int32_t img_cols, tof_error_t *error);
139typedef struct tof_camera_config* tof_camera_config_t;
141typedef struct tof_camera_config const* tof_camera_config_ct;
144TOF_EXPORT
void tof_camera_config_delete(tof_camera_config_t ptr);
152TOF_EXPORT tof_camera_config_t tof_camera_config_new_from_disk(
const char* file_location, tof_error_t *error);
159TOF_EXPORT
void tof_camera_config_write(tof_camera_config_ct ptr,
const char* file_location, tof_error_t *error);
166TOF_EXPORT
enum tof_camera_type tof_camera_config_get_type(tof_camera_config_ct ptr, tof_error_t *error);
172TOF_EXPORT
void tof_camera_config_reset(tof_camera_config_t ptr, tof_error_t *error);
180TOF_EXPORT
size_t tof_camera_config_frame_size(tof_camera_config_ct ptr, tof_error_t *error);
186TOF_EXPORT
void tof_camera_config_add_frame(tof_camera_config_t ptr, tof_error_t *error);
193TOF_EXPORT tof_processing_config_t tof_camera_config_default_processing(tof_camera_config_ct ptr, tof_error_t *error);
200TOF_EXPORT
void tof_camera_config_erase_frame(tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
211TOF_EXPORT
size_t tof_camera_config_get_phase_shifts(tof_camera_config_ct ptr,
size_t frame,
float* phase_shifts,
size_t capacity, tof_error_t *error);
221TOF_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);
231TOF_EXPORT
size_t tof_camera_config_get_integration_time(tof_camera_config_ct ptr,
size_t frame, uint32_t* integration_time,
size_t capacity, tof_error_t *error);
240TOF_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);
248TOF_EXPORT
enum tof_sensor_mode tof_camera_config_get_sensor_mode(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
256TOF_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);
264TOF_EXPORT
float tof_camera_config_get_modulation_frequency(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
272TOF_EXPORT
void tof_camera_config_set_modulation_frequency(tof_camera_config_t ptr,
size_t frame,
float modulation_frequency, tof_error_t *error);
280TOF_EXPORT
float tof_camera_config_get_duty_cycle(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
288TOF_EXPORT
void tof_camera_config_set_duty_cycle(tof_camera_config_t ptr,
size_t frame,
float duty_cycle, tof_error_t *error);
296TOF_EXPORT tof_roi_t tof_camera_config_get_roi(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
304TOF_EXPORT
void tof_camera_config_set_roi(tof_camera_config_t ptr,
size_t frame, tof_roi_t roi, tof_error_t *error);
312TOF_EXPORT uint8_t tof_camera_config_get_binning(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
320TOF_EXPORT
void tof_camera_config_set_binning(tof_camera_config_t ptr,
size_t frame, uint8_t binning, tof_error_t *error);
328TOF_EXPORT
bool tof_camera_config_get_flip(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
336TOF_EXPORT
void tof_camera_config_set_flip(tof_camera_config_t ptr,
size_t frame,
bool flip, tof_error_t *error);
344TOF_EXPORT
bool tof_camera_config_get_mirror(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
352TOF_EXPORT
void tof_camera_config_set_mirror(tof_camera_config_t ptr,
size_t frame,
bool mirror, tof_error_t *error);
359TOF_EXPORT
float tof_camera_config_get_gain(tof_camera_config_ct ptr, tof_error_t *error);
366TOF_EXPORT
void tof_camera_config_set_gain(tof_camera_config_t ptr,
float gain, tof_error_t *error);
374TOF_EXPORT int32_t tof_camera_config_get_sync_mode(tof_camera_config_ct ptr, tof_error_t *error);
382TOF_EXPORT
void tof_camera_config_set_sync_mode(tof_camera_config_t ptr, int32_t sync_mode, tof_error_t *error);
392TOF_EXPORT
size_t tof_camera_config_maximum_integration_time(tof_camera_config_ct ptr,
size_t frame, uint32_t* maximum_integration_time,
size_t capacity, tof_error_t *error);
400TOF_EXPORT int32_t tof_camera_config_get_mipi_speed(tof_camera_config_ct ptr, tof_error_t *error);
408TOF_EXPORT
void tof_camera_config_set_mipi_speed(tof_camera_config_t ptr, int32_t mipi_speed, tof_error_t *error);
416TOF_EXPORT uint32_t tof_camera_config_get_mlx_preheat(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
424TOF_EXPORT
void tof_camera_config_set_mlx_preheat(tof_camera_config_t ptr,
size_t frame, uint32_t preheat, tof_error_t *error);
432TOF_EXPORT
bool tof_camera_config_get_mlx_preheat_enable(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
440TOF_EXPORT
void tof_camera_config_set_mlx_preheat_enable(tof_camera_config_t ptr,
size_t frame,
bool enable, tof_error_t *error);
447TOF_EXPORT
void tof_camera_config_set_opt_kea_nios_hex(tof_camera_config_t ptr,
const char* file_location, tof_error_t *error);
454TOF_EXPORT
const int32_t* tof_camera_config_get_opt_kea_sub_quad(tof_camera_config_ct ptr, tof_error_t *error);
461TOF_EXPORT
void tof_camera_config_set_opt_kea_sub_quad(tof_camera_config_t ptr,
const int32_t* subs_quads, tof_error_t *error);
468TOF_EXPORT tof_processing_config_t tof_camera_config_get_processing(tof_camera_config_ct ptr, tof_error_t *error);
475TOF_EXPORT
void tof_camera_config_set_processing(tof_camera_config_t ptr, tof_processing_config_t processing, tof_error_t *error);
484TOF_EXPORT uint32_t tof_camera_config_get_frame_time(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
493TOF_EXPORT
void tof_camera_config_set_frame_time(tof_camera_config_t ptr,
size_t frame, uint32_t frame_time, tof_error_t *error);
504TOF_EXPORT
const float* tof_camera_config_get_global_phase_offset(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
515TOF_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);
524TOF_EXPORT uint8_t tof_camera_config_get_illumination_mode(tof_camera_config_ct ptr,
size_t frame, tof_error_t *error);
533TOF_EXPORT
void tof_camera_config_set_illumination_mode(tof_camera_config_t ptr,
size_t frame, uint8_t illumination_mode, tof_error_t *error);
544TOF_EXPORT
size_t tof_camera_config_get_image_offsets(tof_camera_config_ct ptr,
size_t frame,
float* image_offsets,
size_t capacity, tof_error_t *error);
554TOF_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);
561TOF_EXPORT
size_t tof_camera_config_get_rgb_width(tof_camera_config_ct ptr, tof_error_t *error);
568TOF_EXPORT
size_t tof_camera_config_get_rgb_height(tof_camera_config_ct ptr, tof_error_t *error);
575TOF_EXPORT
enum tof_trigger_mode tof_camera_config_get_trigger_mode(tof_camera_config_ct ptr, tof_error_t *error);
582TOF_EXPORT
void tof_camera_config_set_trigger_mode(tof_camera_config_t ptr,
enum tof_trigger_mode trigger_mode, tof_error_t *error);
589TOF_EXPORT
float tof_camera_config_get_depth_fps(tof_camera_config_ct ptr, tof_error_t *error);
596TOF_EXPORT
const char* tof_camera_config_get_name(tof_camera_config_ct ptr, tof_error_t *error);
603TOF_EXPORT
void tof_camera_config_set_name(tof_camera_config_t ptr,
const char* name, tof_error_t *error);
610TOF_EXPORT
const char* tof_camera_config_get_description(tof_camera_config_ct ptr, tof_error_t *error);
617TOF_EXPORT
void tof_camera_config_set_description(tof_camera_config_t ptr,
const char* description, tof_error_t *error);
624TOF_EXPORT
enum tof_light_power tof_camera_config_get_light_power(tof_camera_config_ct ptr, tof_error_t *error);
631TOF_EXPORT
void tof_camera_config_set_light_power(tof_camera_config_t ptr,
enum tof_light_power light_power, tof_error_t *error);
638TOF_EXPORT
bool tof_camera_config_has_light_power(tof_camera_config_ct ptr, tof_error_t *error);
646TOF_EXPORT
enum tof_gpio_mode tof_camera_config_get_gpio_mode(tof_camera_config_ct ptr,
size_t pin, tof_error_t *error);
654TOF_EXPORT
void tof_camera_config_set_gpio_mode(tof_camera_config_t ptr,
size_t pin,
enum tof_gpio_mode gpio_mode, tof_error_t *error);
662TOF_EXPORT
bool tof_camera_config_equal(tof_camera_config_ct lhs, tof_camera_config_ct rhs, tof_error_t *error);
669TOF_EXPORT
const char* tof_light_power_name(
enum tof_light_power light_power, tof_error_t *error);
676TOF_EXPORT
const char* tof_gpio_mode_name(
enum tof_gpio_mode gpio_mode, tof_error_t *error);