1#ifndef _CHRONOPTICS_TOF_CAMERA_H_
2#define _CHRONOPTICS_TOF_CAMERA_H_
4#include <chronoptics/tof/stream.h>
5#include <chronoptics/tof/processing_config.h>
6#include <chronoptics/tof/data.h>
7#include <chronoptics/tof/camera_config.h>
8#include <chronoptics/tof/calibration.h>
16typedef struct tof_camera* tof_camera_t;
18typedef struct tof_camera const* tof_camera_ct;
21TOF_EXPORT
void tof_camera_delete(tof_camera_t ptr);
27TOF_EXPORT
void tof_camera_start(tof_camera_t ptr, tof_error_t *error);
33TOF_EXPORT
void tof_camera_stop(tof_camera_t ptr, tof_error_t *error);
40TOF_EXPORT
bool tof_camera_is_streaming(tof_camera_ct ptr, tof_error_t *error);
47TOF_EXPORT
bool tof_camera_is_connected(tof_camera_ct ptr, tof_error_t *error);
56TOF_EXPORT
size_t tof_camera_get_stream_list(tof_camera_ct ptr, tof_stream_t* streams,
size_t capacity, tof_error_t *error);
63TOF_EXPORT tof_processing_config_t tof_camera_get_process_config(tof_camera_ct ptr, tof_error_t *error);
70TOF_EXPORT
bool tof_camera_has_frames(tof_camera_ct ptr, tof_error_t *error);
79TOF_EXPORT
size_t tof_camera_get_frames(tof_camera_t ptr, tof_data_t* frames,
size_t capacity, tof_error_t *error);
85TOF_EXPORT
void tof_camera_clear_buffer(tof_camera_t ptr, tof_error_t *error);
93TOF_EXPORT
size_t tof_camera_get_buffer_size(tof_camera_ct ptr, tof_error_t *error);
101TOF_EXPORT
void tof_camera_set_buffer_size(tof_camera_t ptr,
size_t size, tof_error_t *error);
108TOF_EXPORT tof_camera_config_t tof_camera_get_camera_config(tof_camera_ct ptr, tof_error_t *error);
115TOF_EXPORT
const char* tof_camera_get_serial(tof_camera_ct ptr, tof_error_t *error);
122TOF_EXPORT tof_calibration_t tof_camera_get_calibration(tof_camera_ct ptr, tof_error_t *error);
129TOF_EXPORT
size_t tof_camera_get_user_pointer_capacity(tof_camera_ct ptr, tof_error_t *error);
136TOF_EXPORT
void tof_camera_set_user_pointer_capacity(tof_camera_t ptr,
size_t capacity, tof_error_t *error);
149TOF_EXPORT
void tof_camera_add_user_pointer(tof_camera_t ptr, uint8_t* pointer,
size_t capacity, tof_user_pointer_destructed_t callback,
void* callback_user_data,
enum tof_frame_type frame_type, tof_error_t *error);
155TOF_EXPORT
void tof_camera_clear_user_pointers(tof_camera_t ptr, tof_error_t *error);
162TOF_EXPORT uint32_t tof_camera_config_index(tof_camera_ct ptr, tof_error_t *error);
170TOF_EXPORT
void tof_camera_switch_config(tof_camera_t ptr, uint32_t config_index, tof_error_t *error);
179TOF_EXPORT
size_t tof_camera_possible_frame_types(tof_camera_ct ptr,
enum tof_frame_type* frame_types,
size_t capacity, tof_error_t *error);
186TOF_EXPORT
bool tof_camera_output_frame_types_set(tof_camera_t ptr, tof_error_t *error);
195TOF_EXPORT
size_t tof_camera_get_output_frame_types(tof_camera_ct ptr,
enum tof_frame_type* output_frame_types,
size_t capacity, tof_error_t *error);
203TOF_EXPORT
void tof_camera_set_output_frame_types(tof_camera_t ptr,
const enum tof_frame_type* output_frame_types,
size_t output_frame_types_size, tof_error_t *error);
211TOF_EXPORT
bool tof_camera_has_multiple_configurations(tof_camera_ct ptr, tof_error_t *error);
220TOF_EXPORT
size_t tof_camera_get_multiple_camera_configurations(tof_camera_ct ptr, tof_camera_config_t* cam_configs,
size_t capacity, tof_error_t *error);
229TOF_EXPORT
size_t tof_camera_get_multiple_processing_configurations(tof_camera_ct ptr, tof_processing_config_t* processing_configs,
size_t capacity, tof_error_t *error);
238TOF_EXPORT
size_t tof_camera_get_multiple_names(tof_camera_ct ptr,
const char** names,
size_t capacity, tof_error_t *error);
247TOF_EXPORT
size_t tof_camera_get_multiple_descriptions(tof_camera_ct ptr,
const char** description,
size_t capacity, tof_error_t *error);
251typedef struct tof_persistent_ip* tof_persistent_ip_t;
253typedef struct tof_persistent_ip const* tof_persistent_ip_ct;
256TOF_EXPORT
void tof_persistent_ip_delete(tof_persistent_ip_t ptr);
267TOF_EXPORT tof_persistent_ip_t tof_persistent_ip_new(
const char* ip,
const char* netmask,
const char* gateway,
bool enabled, tof_error_t *error);
274TOF_EXPORT
const char* tof_persistent_ip_get_ip(tof_persistent_ip_ct ptr, tof_error_t *error);
281TOF_EXPORT
void tof_persistent_ip_set_ip(tof_persistent_ip_t ptr,
const char* ip, tof_error_t *error);
288TOF_EXPORT
const char* tof_persistent_ip_get_netmask(tof_persistent_ip_ct ptr, tof_error_t *error);
295TOF_EXPORT
void tof_persistent_ip_set_netmask(tof_persistent_ip_t ptr,
const char* netmask, tof_error_t *error);
302TOF_EXPORT
const char* tof_persistent_ip_get_gateway(tof_persistent_ip_ct ptr, tof_error_t *error);
309TOF_EXPORT
void tof_persistent_ip_set_gateway(tof_persistent_ip_t ptr,
const char* gateway, tof_error_t *error);
316TOF_EXPORT
bool tof_persistent_ip_get_enabled(tof_persistent_ip_ct ptr, tof_error_t *error);
323TOF_EXPORT
void tof_persistent_ip_set_enabled(tof_persistent_ip_t ptr,
bool enabled, tof_error_t *error);
327typedef struct tof_live_camera* tof_live_camera_t;
329typedef struct tof_live_camera const* tof_live_camera_ct;
332TOF_EXPORT
void tof_live_camera_delete(tof_live_camera_t ptr);
339TOF_EXPORT
const char* tof_live_camera_version(tof_live_camera_t ptr, tof_error_t *error);
346TOF_EXPORT
bool tof_live_camera_remote_update_capable(tof_live_camera_t ptr, tof_error_t *error);
357TOF_EXPORT
void tof_live_camera_remote_update(tof_live_camera_t ptr,
const char* file_location, tof_error_t *error);
364TOF_EXPORT
bool tof_live_camera_persistent_ip_capable(tof_live_camera_ct ptr, tof_error_t *error);
371TOF_EXPORT tof_persistent_ip_t tof_live_camera_get_persistent_ip(tof_live_camera_t ptr, tof_error_t *error);
379TOF_EXPORT
void tof_live_camera_set_persistent_ip(tof_live_camera_t ptr, tof_persistent_ip_ct persistent_ip, tof_error_t *error);
386TOF_EXPORT
bool tof_live_camera_apply_persistent_ip_capable(tof_live_camera_ct ptr, tof_error_t *error);
393TOF_EXPORT
void tof_live_camera_apply_persistent_ip(tof_live_camera_t ptr, tof_error_t *error);
400TOF_EXPORT
bool tof_live_camera_software_trigger_capable(tof_live_camera_t ptr, tof_error_t *error);
406TOF_EXPORT
void tof_live_camera_software_trigger(tof_live_camera_t ptr, tof_error_t *error);
414TOF_EXPORT uint32_t tof_live_camera_get_delay(tof_live_camera_ct ptr, tof_error_t *error);
422TOF_EXPORT
void tof_live_camera_set_delay(tof_live_camera_t ptr, uint32_t delay, tof_error_t *error);
429TOF_EXPORT uint16_t tof_live_camera_get_packet_size(tof_live_camera_ct ptr, tof_error_t *error);
436TOF_EXPORT
void tof_live_camera_set_packet_size(tof_live_camera_t ptr, uint16_t size, tof_error_t *error);
443TOF_EXPORT
bool tof_live_camera_get_temperatures_capable(tof_live_camera_t ptr, tof_error_t *error);
452TOF_EXPORT
size_t tof_live_camera_get_temperatures(tof_live_camera_t ptr,
float* temperatures,
size_t capacity, tof_error_t *error);
460TOF_EXPORT
bool tof_live_camera_get_gpio(tof_live_camera_t ptr,
size_t pin, tof_error_t *error);
468TOF_EXPORT
void tof_live_camera_set_gpio(tof_live_camera_t ptr,
size_t pin,
bool level, tof_error_t *error);