1 #ifndef _CHRONOPTICS_TOF_GIGE_INTERFACE_H_
2 #define _CHRONOPTICS_TOF_GIGE_INTERFACE_H_
4 #include <chronoptics/tof/camera_config.h>
5 #include <chronoptics/tof/calibration.h>
6 #include <chronoptics/tof/data.h>
14 enum tof_depth_stream_type {
15 TOF_DEPTH_STREAM_TYPE_RAW = 0,
16 TOF_DEPTH_STREAM_TYPE_RADIAL_INTENSITY = 1,
17 TOF_DEPTH_STREAM_TYPE_RADIAL = 2,
18 TOF_DEPTH_STREAM_TYPE_INTENSITY = 3,
23 typedef struct tof_discovery_message* tof_discovery_message_t;
26 TOF_EXPORT
void tof_discovery_message_delete(tof_discovery_message_t ptr);
33 TOF_EXPORT
const char* tof_discovery_message_ip(
const tof_discovery_message_t ptr, tof_error_t *error);
40 TOF_EXPORT
const char* tof_discovery_message_serial(
const tof_discovery_message_t ptr, tof_error_t *error);
44 typedef struct tof_persistent_ip* tof_persistent_ip_t;
47 TOF_EXPORT
void tof_persistent_ip_delete(tof_persistent_ip_t ptr);
58 TOF_EXPORT tof_persistent_ip_t tof_persistent_ip_new(
const char* ip,
const char* netmask,
const char* gateway,
bool enabled, tof_error_t *error);
65 TOF_EXPORT
const char* tof_persistent_ip_get_ip(
const tof_persistent_ip_t ptr, tof_error_t *error);
72 TOF_EXPORT
void tof_persistent_ip_set_ip(tof_persistent_ip_t ptr,
const char* ip, tof_error_t *error);
79 TOF_EXPORT
const char* tof_persistent_ip_get_netmask(
const tof_persistent_ip_t ptr, tof_error_t *error);
86 TOF_EXPORT
void tof_persistent_ip_set_netmask(tof_persistent_ip_t ptr,
const char* netmask, tof_error_t *error);
93 TOF_EXPORT
const char* tof_persistent_ip_get_gateway(
const tof_persistent_ip_t ptr, tof_error_t *error);
100 TOF_EXPORT
void tof_persistent_ip_set_gateway(tof_persistent_ip_t ptr,
const char* gateway, tof_error_t *error);
107 TOF_EXPORT
bool tof_persistent_ip_get_enabled(
const tof_persistent_ip_t ptr, tof_error_t *error);
114 TOF_EXPORT
void tof_persistent_ip_set_enabled(tof_persistent_ip_t ptr,
bool enabled, tof_error_t *error);
118 typedef struct tof_gige_interface* tof_gige_interface_t;
121 TOF_EXPORT
void tof_gige_interface_delete(tof_gige_interface_t ptr);
130 TOF_EXPORT tof_gige_interface_t tof_gige_interface_new(uint16_t port, tof_error_t *error);
139 TOF_EXPORT
size_t tof_gige_interface_discover(tof_gige_interface_t ptr, tof_discovery_message_t* messages,
size_t capacity, tof_error_t *error);
146 TOF_EXPORT tof_discovery_message_t tof_gige_interface_discover_one(tof_gige_interface_t ptr, tof_error_t *error);
155 TOF_EXPORT tof_discovery_message_t tof_gige_interface_find(tof_gige_interface_t ptr,
const char* serial, tof_error_t *error);
162 TOF_EXPORT
void tof_gige_interface_connect(tof_gige_interface_t ptr,
const tof_discovery_message_t message, tof_error_t *error);
168 TOF_EXPORT
void tof_gige_interface_disconnect(tof_gige_interface_t ptr, tof_error_t *error);
175 TOF_EXPORT
bool tof_gige_interface_is_connected(
const tof_gige_interface_t ptr, tof_error_t *error);
182 TOF_EXPORT uint16_t tof_gige_interface_get_stream_packet_size(
const tof_gige_interface_t ptr, tof_error_t *error);
189 TOF_EXPORT
void tof_gige_interface_set_stream_packet_size(tof_gige_interface_t ptr, uint16_t packet_size, tof_error_t *error);
197 TOF_EXPORT
bool tof_gige_interface_test_stream_packet_size(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
205 TOF_EXPORT uint32_t tof_gige_interface_get_delay(
const tof_gige_interface_t ptr, tof_error_t *error);
213 TOF_EXPORT
void tof_gige_interface_set_delay(tof_gige_interface_t ptr, uint32_t delay, tof_error_t *error);
221 TOF_EXPORT tof_camera_config_t tof_gige_interface_download_configuration(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
229 TOF_EXPORT tof_calibration_t tof_gige_interface_download_calibration(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
237 TOF_EXPORT
void tof_gige_interface_upload_configuration(tof_gige_interface_t ptr,
const tof_camera_config_t config, uint16_t port, tof_error_t *error);
245 TOF_EXPORT
bool tof_gige_interface_depth_stream_capable(
const tof_gige_interface_t ptr,
enum tof_depth_stream_type stream, tof_error_t *error);
253 TOF_EXPORT
void tof_gige_interface_start_depth_stream(tof_gige_interface_t ptr,
enum tof_depth_stream_type stream, uint16_t port, tof_error_t *error);
259 TOF_EXPORT
void tof_gige_interface_stop_depth_stream(tof_gige_interface_t ptr, tof_error_t *error);
266 TOF_EXPORT
bool tof_gige_interface_has_depth_data(
const tof_gige_interface_t ptr, tof_error_t *error);
273 TOF_EXPORT tof_data_t tof_gige_interface_get_depth_data(tof_gige_interface_t ptr, tof_error_t *error);
280 TOF_EXPORT
bool tof_gige_interface_image_stream_capable(
const tof_gige_interface_t ptr, tof_error_t *error);
287 TOF_EXPORT
void tof_gige_interface_start_image_stream(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
293 TOF_EXPORT
void tof_gige_interface_stop_image_stream(tof_gige_interface_t ptr, tof_error_t *error);
300 TOF_EXPORT
bool tof_gige_interface_has_image_data(
const tof_gige_interface_t ptr, tof_error_t *error);
307 TOF_EXPORT tof_data_t tof_gige_interface_get_image_data(tof_gige_interface_t ptr, tof_error_t *error);
319 TOF_EXPORT tof_data_t tof_gige_interface_get_image_data_into_pointer(tof_gige_interface_t ptr, uint8_t* pointer,
size_t capacity, tof_user_pointer_destructed_t callback,
void* callback_user_data, tof_error_t *error);
326 TOF_EXPORT
bool tof_gige_interface_persistent_ip_capable(
const tof_gige_interface_t ptr, tof_error_t *error);
333 TOF_EXPORT tof_persistent_ip_t tof_gige_interface_get_persistent_ip(
const tof_gige_interface_t ptr, tof_error_t *error);
341 TOF_EXPORT
void tof_gige_interface_set_persistent_ip(tof_gige_interface_t ptr,
const tof_persistent_ip_t persistent_ip, tof_error_t *error);
348 TOF_EXPORT
size_t tof_gige_interface_get_user_pointer_capacity(
const tof_gige_interface_t ptr, tof_error_t *error);
355 TOF_EXPORT
void tof_gige_interface_set_user_pointer_capacity(tof_gige_interface_t ptr,
size_t capacity, tof_error_t *error);
368 TOF_EXPORT
void tof_gige_interface_add_depth_user_pointer(tof_gige_interface_t ptr, uint8_t* pointer,
size_t capacity, tof_user_pointer_destructed_t callback,
void* callback_user_data, tof_error_t *error);
375 TOF_EXPORT
const char* tof_gige_interface_version(tof_gige_interface_t ptr, tof_error_t *error);