1 #ifndef _CHRONOPTICS_TOF_CAMERA_CONFIG_H_
2 #define _CHRONOPTICS_TOF_CAMERA_CONFIG_H_
4 #include <chronoptics/tof/processing_config.h>
12 enum tof_camera_type {
13 TOF_CAMERA_TYPE_OPT8241 = 1,
14 TOF_CAMERA_TYPE_OPT8241_EXT = 4,
15 TOF_CAMERA_TYPE_MLX75027 = 6,
20 enum tof_sensor_mode {
21 TOF_SENSOR_MODE_NORMAL = 0,
22 TOF_SENSOR_MODE_COMMON = 1,
23 TOF_SENSOR_MODE_EXTERNAL_DEMOD = 4,
24 TOF_SENSOR_MODE_EXTERNAL_SIGNAL = 5,
25 TOF_SENSOR_MODE_TAP_A = 8,
26 TOF_SENSOR_MODE_TAP_B = 9,
27 TOF_SENSOR_MODE_TAP_AB = 10,
32 typedef struct tof_roi* tof_roi_t;
35 TOF_EXPORT
void tof_roi_delete(tof_roi_t ptr);
42 TOF_EXPORT int32_t tof_roi_sensor_rows(
const tof_roi_t ptr, tof_error_t *error);
49 TOF_EXPORT int32_t tof_roi_sensor_cols(
const tof_roi_t ptr, tof_error_t *error);
56 TOF_EXPORT int32_t tof_roi_get_row_offset(
const tof_roi_t ptr, tof_error_t *error);
63 TOF_EXPORT
void tof_roi_set_row_offset(tof_roi_t ptr, int32_t row_offset, tof_error_t *error);
70 TOF_EXPORT int32_t tof_roi_get_col_offset(
const tof_roi_t ptr, tof_error_t *error);
77 TOF_EXPORT
void tof_roi_set_col_offset(tof_roi_t ptr, int32_t col_offset, tof_error_t *error);
84 TOF_EXPORT int32_t tof_roi_get_img_rows(
const tof_roi_t ptr, tof_error_t *error);
91 TOF_EXPORT
void tof_roi_set_img_rows(tof_roi_t ptr, int32_t img_rows, tof_error_t *error);
98 TOF_EXPORT int32_t tof_roi_get_img_cols(
const tof_roi_t ptr, tof_error_t *error);
105 TOF_EXPORT
void tof_roi_set_img_cols(tof_roi_t ptr, int32_t img_cols, tof_error_t *error);
109 typedef struct tof_camera_config* tof_camera_config_t;
112 TOF_EXPORT
void tof_camera_config_delete(tof_camera_config_t ptr);
120 TOF_EXPORT tof_camera_config_t tof_camera_config_new_from_disk(
const char* file_location, tof_error_t *error);
127 TOF_EXPORT
void tof_camera_config_write(
const tof_camera_config_t ptr,
const char* file_location, tof_error_t *error);
134 TOF_EXPORT
enum tof_camera_type tof_camera_config_get_type(
const tof_camera_config_t ptr, tof_error_t *error);
140 TOF_EXPORT
void tof_camera_config_reset(tof_camera_config_t ptr, tof_error_t *error);
148 TOF_EXPORT
size_t tof_camera_config_frame_size(
const tof_camera_config_t ptr, tof_error_t *error);
154 TOF_EXPORT
void tof_camera_config_add_frame(tof_camera_config_t ptr, tof_error_t *error);
161 TOF_EXPORT tof_processing_config_t tof_camera_config_default_processing(
const tof_camera_config_t ptr, tof_error_t *error);
168 TOF_EXPORT
void tof_camera_config_erase_frame(tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
179 TOF_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);
189 TOF_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);
199 TOF_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);
208 TOF_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);
216 TOF_EXPORT
enum tof_sensor_mode tof_camera_config_get_sensor_mode(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
224 TOF_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);
232 TOF_EXPORT
float tof_camera_config_get_modulation_frequency(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
240 TOF_EXPORT
void tof_camera_config_set_modulation_frequency(tof_camera_config_t ptr,
size_t frame,
float modulation_frequency, tof_error_t *error);
248 TOF_EXPORT
float tof_camera_config_get_duty_cycle(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
256 TOF_EXPORT
void tof_camera_config_set_duty_cycle(tof_camera_config_t ptr,
size_t frame,
float duty_cycle, tof_error_t *error);
264 TOF_EXPORT tof_roi_t tof_camera_config_get_roi(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
272 TOF_EXPORT
void tof_camera_config_set_roi(tof_camera_config_t ptr,
size_t frame, tof_roi_t roi, tof_error_t *error);
280 TOF_EXPORT uint8_t tof_camera_config_get_binning(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
288 TOF_EXPORT
void tof_camera_config_set_binning(tof_camera_config_t ptr,
size_t frame, uint8_t binning, tof_error_t *error);
296 TOF_EXPORT
bool tof_camera_config_get_flip(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
304 TOF_EXPORT
void tof_camera_config_set_flip(tof_camera_config_t ptr,
size_t frame,
bool flip, tof_error_t *error);
312 TOF_EXPORT
bool tof_camera_config_get_mirror(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
320 TOF_EXPORT
void tof_camera_config_set_mirror(tof_camera_config_t ptr,
size_t frame,
bool mirror, tof_error_t *error);
327 TOF_EXPORT
float tof_camera_config_get_gain(
const tof_camera_config_t ptr, tof_error_t *error);
334 TOF_EXPORT
void tof_camera_config_set_gain(tof_camera_config_t ptr,
float gain, tof_error_t *error);
342 TOF_EXPORT int32_t tof_camera_config_get_sync_mode(
const tof_camera_config_t ptr, tof_error_t *error);
350 TOF_EXPORT
void tof_camera_config_set_sync_mode(tof_camera_config_t ptr, int32_t sync_mode, tof_error_t *error);
360 TOF_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);
369 TOF_EXPORT
size_t tof_camera_config_get_dac(
const tof_camera_config_t ptr, uint16_t* dac,
size_t capacity, tof_error_t *error);
377 TOF_EXPORT
void tof_camera_config_set_dac(tof_camera_config_t ptr,
const uint16_t* dac,
size_t dac_size, tof_error_t *error);
384 TOF_EXPORT int32_t tof_camera_config_get_mlx_mipi_speed(
const tof_camera_config_t ptr, tof_error_t *error);
392 TOF_EXPORT
void tof_camera_config_set_mlx_mipi_speed(tof_camera_config_t ptr, int32_t mipi_speed, tof_error_t *error);
400 TOF_EXPORT uint32_t tof_camera_config_get_mlx_preheat(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
408 TOF_EXPORT
void tof_camera_config_set_mlx_preheat(tof_camera_config_t ptr,
size_t frame, uint32_t preheat, tof_error_t *error);
416 TOF_EXPORT
bool tof_camera_config_get_mlx_preheat_enable(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
424 TOF_EXPORT
void tof_camera_config_set_mlx_preheat_enable(tof_camera_config_t ptr,
size_t frame,
bool enable, tof_error_t *error);
431 TOF_EXPORT
void tof_camera_config_set_opt_kea_nios_hex(tof_camera_config_t ptr,
const char* file_location, tof_error_t *error);
438 TOF_EXPORT int32_t* tof_camera_config_get_opt_kea_sub_quad(
const tof_camera_config_t ptr, tof_error_t *error);
445 TOF_EXPORT
void tof_camera_config_set_opt_kea_sub_quad(tof_camera_config_t ptr,
const int32_t* subs_quads, tof_error_t *error);
452 TOF_EXPORT tof_processing_config_t tof_camera_config_get_processing(
const tof_camera_config_t ptr, tof_error_t *error);
459 TOF_EXPORT
void tof_camera_config_set_processing(tof_camera_config_t ptr, tof_processing_config_t processing, tof_error_t *error);
468 TOF_EXPORT uint32_t tof_camera_config_get_frame_time(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
477 TOF_EXPORT
void tof_camera_config_set_frame_time(tof_camera_config_t ptr,
size_t frame, uint32_t frame_time, tof_error_t *error);
488 TOF_EXPORT
float* tof_camera_config_get_global_phase_offset(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
499 TOF_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);
508 TOF_EXPORT uint8_t tof_camera_config_get_illumination_mode(
const tof_camera_config_t ptr,
size_t frame, tof_error_t *error);
517 TOF_EXPORT
void tof_camera_config_set_illumination_mode(tof_camera_config_t ptr,
size_t frame, uint8_t illumination_mode, tof_error_t *error);
528 TOF_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);
538 TOF_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);
545 TOF_EXPORT
size_t tof_camera_config_get_rgb_width(tof_camera_config_t ptr, tof_error_t *error);
552 TOF_EXPORT
size_t tof_camera_config_get_rgb_height(tof_camera_config_t ptr, tof_error_t *error);