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>
14enum 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,
23typedef struct tof_discovery_message* tof_discovery_message_t;
26TOF_EXPORT
void tof_discovery_message_delete(tof_discovery_message_t ptr);
33TOF_EXPORT
const char* tof_discovery_message_ip(
const tof_discovery_message_t ptr, tof_error_t *error);
40TOF_EXPORT
const char* tof_discovery_message_serial(
const tof_discovery_message_t ptr, tof_error_t *error);
44typedef struct tof_persistent_ip* tof_persistent_ip_t;
47TOF_EXPORT
void tof_persistent_ip_delete(tof_persistent_ip_t ptr);
58TOF_EXPORT tof_persistent_ip_t tof_persistent_ip_new(
const char* ip,
const char* netmask,
const char* gateway,
bool enabled, tof_error_t *error);
65TOF_EXPORT
const char* tof_persistent_ip_get_ip(
const tof_persistent_ip_t ptr, tof_error_t *error);
72TOF_EXPORT
void tof_persistent_ip_set_ip(tof_persistent_ip_t ptr,
const char* ip, tof_error_t *error);
79TOF_EXPORT
const char* tof_persistent_ip_get_netmask(
const tof_persistent_ip_t ptr, tof_error_t *error);
86TOF_EXPORT
void tof_persistent_ip_set_netmask(tof_persistent_ip_t ptr,
const char* netmask, tof_error_t *error);
93TOF_EXPORT
const char* tof_persistent_ip_get_gateway(
const tof_persistent_ip_t ptr, tof_error_t *error);
100TOF_EXPORT
void tof_persistent_ip_set_gateway(tof_persistent_ip_t ptr,
const char* gateway, tof_error_t *error);
107TOF_EXPORT
bool tof_persistent_ip_get_enabled(
const tof_persistent_ip_t ptr, tof_error_t *error);
114TOF_EXPORT
void tof_persistent_ip_set_enabled(tof_persistent_ip_t ptr,
bool enabled, tof_error_t *error);
119typedef struct tof_gige_interface* tof_gige_interface_t;
122TOF_EXPORT
void tof_gige_interface_delete(tof_gige_interface_t ptr);
131TOF_EXPORT tof_gige_interface_t tof_gige_interface_new(uint16_t port, tof_error_t *error);
140TOF_EXPORT
size_t tof_gige_interface_discover(tof_gige_interface_t ptr, tof_discovery_message_t* messages,
size_t capacity, tof_error_t *error);
147TOF_EXPORT tof_discovery_message_t tof_gige_interface_discover_one(tof_gige_interface_t ptr, tof_error_t *error);
156TOF_EXPORT tof_discovery_message_t tof_gige_interface_find(tof_gige_interface_t ptr,
const char* serial, tof_error_t *error);
163TOF_EXPORT
void tof_gige_interface_connect(tof_gige_interface_t ptr,
const tof_discovery_message_t message, tof_error_t *error);
169TOF_EXPORT
void tof_gige_interface_disconnect(tof_gige_interface_t ptr, tof_error_t *error);
176TOF_EXPORT
bool tof_gige_interface_is_connected(
const tof_gige_interface_t ptr, tof_error_t *error);
183TOF_EXPORT uint16_t tof_gige_interface_get_stream_packet_size(
const tof_gige_interface_t ptr, tof_error_t *error);
190TOF_EXPORT
void tof_gige_interface_set_stream_packet_size(tof_gige_interface_t ptr, uint16_t packet_size, tof_error_t *error);
198TOF_EXPORT
bool tof_gige_interface_test_stream_packet_size(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
206TOF_EXPORT uint32_t tof_gige_interface_get_delay(
const tof_gige_interface_t ptr, tof_error_t *error);
214TOF_EXPORT
void tof_gige_interface_set_delay(tof_gige_interface_t ptr, uint32_t delay, tof_error_t *error);
222TOF_EXPORT tof_camera_config_t tof_gige_interface_download_configuration(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
230TOF_EXPORT tof_calibration_t tof_gige_interface_download_calibration(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
238TOF_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);
246TOF_EXPORT
bool tof_gige_interface_depth_stream_capable(
const tof_gige_interface_t ptr,
enum tof_depth_stream_type stream, tof_error_t *error);
254TOF_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);
260TOF_EXPORT
void tof_gige_interface_stop_depth_stream(tof_gige_interface_t ptr, tof_error_t *error);
267TOF_EXPORT
bool tof_gige_interface_has_depth_data(
const tof_gige_interface_t ptr, tof_error_t *error);
274TOF_EXPORT tof_data_t tof_gige_interface_get_depth_data(tof_gige_interface_t ptr, tof_error_t *error);
281TOF_EXPORT
bool tof_gige_interface_image_stream_capable(
const tof_gige_interface_t ptr, tof_error_t *error);
288TOF_EXPORT
void tof_gige_interface_start_image_stream(tof_gige_interface_t ptr, uint16_t port, tof_error_t *error);
294TOF_EXPORT
void tof_gige_interface_stop_image_stream(tof_gige_interface_t ptr, tof_error_t *error);
301TOF_EXPORT
bool tof_gige_interface_has_image_data(
const tof_gige_interface_t ptr, tof_error_t *error);
308TOF_EXPORT tof_data_t tof_gige_interface_get_image_data(tof_gige_interface_t ptr, tof_error_t *error);
319TOF_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);
326TOF_EXPORT
bool tof_gige_interface_persistent_ip_capable(
const tof_gige_interface_t ptr, tof_error_t *error);
333TOF_EXPORT tof_persistent_ip_t tof_gige_interface_get_persistent_ip(
const tof_gige_interface_t ptr, tof_error_t *error);
341TOF_EXPORT
void tof_gige_interface_set_persistent_ip(tof_gige_interface_t ptr,
const tof_persistent_ip_t persistent_ip, tof_error_t *error);
348TOF_EXPORT
size_t tof_gige_interface_get_user_pointer_capacity(
const tof_gige_interface_t ptr, tof_error_t *error);
355TOF_EXPORT
void tof_gige_interface_set_user_pointer_capacity(tof_gige_interface_t ptr,
size_t capacity, tof_error_t *error);
367TOF_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);
374TOF_EXPORT
const char* tof_gige_interface_version(tof_gige_interface_t ptr, tof_error_t *error);
381TOF_EXPORT
bool tof_gige_interface_software_trigger_capable(tof_gige_interface_t ptr, tof_error_t *error);
387TOF_EXPORT
void tof_gige_interface_software_trigger(tof_gige_interface_t ptr, tof_error_t *error);