Voyant API 0.8.0
Loading...
Searching...
No Matches
carbon_client_ffi.hpp
Go to the documentation of this file.
1// Copyright (c) 2024-2025 Voyant Photonics, Inc.
2// All rights reserved.
3
4#pragma once
5
6#include <cstdarg>
7#include <cstdint>
8#include <cstdlib>
9#include <ostream>
10#include <new>
11
18struct CarbonClientHandleC;
19
25struct CarbonConfigC;
26
27extern "C" {
28
36CarbonClientHandleC *carbon_client_new(const CarbonConfigC *config);
37
43bool carbon_client_start(CarbonClientHandleC *handle);
44
49void carbon_client_stop(CarbonClientHandleC *handle);
50
54bool carbon_client_is_running(const CarbonClientHandleC *handle);
55
61int32_t carbon_client_copy_latest_into(CarbonClientHandleC *handle, uint8_t *dest, uintptr_t len);
62
66void carbon_client_free(CarbonClientHandleC *handle);
67
73CarbonConfigC *carbon_config_new();
74
83CarbonConfigC *carbon_config_from_json(const char *path);
84
88void carbon_config_free(CarbonConfigC *cfg);
89
93void carbon_config_set_bind_addr(CarbonConfigC *cfg, const char *v);
94
98void carbon_config_set_group_addr(CarbonConfigC *cfg, const char *v);
99
103void carbon_config_set_interface_addr(CarbonConfigC *cfg, const char *v);
104
108void carbon_config_set_use_msg_timestamp(CarbonConfigC *cfg, bool v);
109
113void carbon_config_set_batch_size(CarbonConfigC *cfg, uintptr_t v);
114
118void carbon_config_set_recv_buffer_size(CarbonConfigC *cfg, uintptr_t v);
119
123void carbon_config_set_receiver_channel_capacity(CarbonConfigC *cfg, uintptr_t v);
124
128void carbon_config_set_pfa(CarbonConfigC *cfg, float v);
129
133void carbon_config_set_vel_corr_factor(CarbonConfigC *cfg, float v);
134
138void carbon_config_set_bandwidth_hz(CarbonConfigC *cfg, float v);
139
143void carbon_config_set_elevation_fov_deg(CarbonConfigC *cfg, float v);
144
148void carbon_config_set_keep_invalid_points(CarbonConfigC *cfg, bool v);
149
153void carbon_config_set_range_min(CarbonConfigC *cfg, float v);
154
158void carbon_config_set_range_max(CarbonConfigC *cfg, float v);
159
163void carbon_config_set_doppler_min(CarbonConfigC *cfg, float v);
164
168void carbon_config_set_doppler_max(CarbonConfigC *cfg, float v);
169
173void carbon_config_set_azimuth_deg_min(CarbonConfigC *cfg, float v);
174
178void carbon_config_set_azimuth_deg_max(CarbonConfigC *cfg, float v);
179
183void carbon_config_set_elevation_deg_min(CarbonConfigC *cfg, float v);
184
188void carbon_config_set_elevation_deg_max(CarbonConfigC *cfg, float v);
189
193void carbon_config_set_spatial_range_threshold(CarbonConfigC *cfg, float v);
194
198void carbon_config_set_spatial_doppler_threshold(CarbonConfigC *cfg, float v);
199
203void carbon_config_set_spatial_min_neighbors(CarbonConfigC *cfg, uint8_t v);
204
208void carbon_config_set_interp_range_threshold(CarbonConfigC *cfg, float v);
209
213void carbon_config_set_interp_doppler_threshold(CarbonConfigC *cfg, float v);
214
220 const uint8_t *elevations,
221 uintptr_t len);
222
226void carbon_config_set_mirror_peaks(CarbonConfigC *cfg, bool v);
227
231void carbon_config_set_mirror_group_addr(CarbonConfigC *cfg, const char *v);
232
236void carbon_config_set_mirror_bind_addr(CarbonConfigC *cfg, const char *v);
237
241void carbon_config_set_eval_mode(CarbonConfigC *cfg, bool v);
242
246void carbon_config_set_report_dir(CarbonConfigC *cfg, const char *v);
247
248} // extern "C"
void carbon_config_set_interface_addr(CarbonConfigC *cfg, const char *v)
void carbon_config_set_interp_range_threshold(CarbonConfigC *cfg, float v)
void carbon_config_set_mirror_group_addr(CarbonConfigC *cfg, const char *v)
bool carbon_client_is_running(const CarbonClientHandleC *handle)
void carbon_config_set_mirror_bind_addr(CarbonConfigC *cfg, const char *v)
bool carbon_client_start(CarbonClientHandleC *handle)
CarbonConfigC * carbon_config_new()
void carbon_config_set_interp_doppler_threshold(CarbonConfigC *cfg, float v)
void carbon_config_set_recv_buffer_size(CarbonConfigC *cfg, uintptr_t v)
void carbon_config_set_use_msg_timestamp(CarbonConfigC *cfg, bool v)
void carbon_config_set_receiver_channel_capacity(CarbonConfigC *cfg, uintptr_t v)
void carbon_config_set_keep_invalid_points(CarbonConfigC *cfg, bool v)
void carbon_config_set_elevation_deg_min(CarbonConfigC *cfg, float v)
void carbon_config_set_vel_corr_factor(CarbonConfigC *cfg, float v)
void carbon_config_set_report_dir(CarbonConfigC *cfg, const char *v)
void carbon_config_set_range_max(CarbonConfigC *cfg, float v)
void carbon_config_set_bandwidth_hz(CarbonConfigC *cfg, float v)
void carbon_client_free(CarbonClientHandleC *handle)
void carbon_config_set_eval_mode(CarbonConfigC *cfg, bool v)
void carbon_config_set_batch_size(CarbonConfigC *cfg, uintptr_t v)
void carbon_config_set_elevation_deg_max(CarbonConfigC *cfg, float v)
void carbon_config_set_azimuth_deg_min(CarbonConfigC *cfg, float v)
void carbon_config_set_pfa(CarbonConfigC *cfg, float v)
void carbon_config_set_doppler_min(CarbonConfigC *cfg, float v)
void carbon_config_set_spatial_doppler_threshold(CarbonConfigC *cfg, float v)
void carbon_config_free(CarbonConfigC *cfg)
void carbon_config_set_mirror_peaks(CarbonConfigC *cfg, bool v)
void carbon_config_set_doppler_max(CarbonConfigC *cfg, float v)
CarbonClientHandleC * carbon_client_new(const CarbonConfigC *config)
CarbonConfigC * carbon_config_from_json(const char *path)
void carbon_config_set_group_addr(CarbonConfigC *cfg, const char *v)
void carbon_config_set_elevation_fov_deg(CarbonConfigC *cfg, float v)
void carbon_config_set_missing_elevations(CarbonConfigC *cfg, const uint8_t *elevations, uintptr_t len)
void carbon_config_set_spatial_range_threshold(CarbonConfigC *cfg, float v)
void carbon_config_set_azimuth_deg_max(CarbonConfigC *cfg, float v)
void carbon_client_stop(CarbonClientHandleC *handle)
void carbon_config_set_bind_addr(CarbonConfigC *cfg, const char *v)
int32_t carbon_client_copy_latest_into(CarbonClientHandleC *handle, uint8_t *dest, uintptr_t len)
void carbon_config_set_spatial_min_neighbors(CarbonConfigC *cfg, uint8_t v)
void carbon_config_set_range_min(CarbonConfigC *cfg, float v)