Voyant API 1.0.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#include <voyant_types_ffi.hpp>
12
17enum class StreamTransport : uint8_t {
29};
30
35struct CarbonClientHandleC;
36
42struct CarbonConfigC;
43
66
67extern "C" {
68
76CarbonClientHandleC *carbon_client_new(const CarbonConfigC *config);
77
83bool carbon_client_start(CarbonClientHandleC *handle);
84
89void carbon_client_stop(CarbonClientHandleC *handle);
90
94bool carbon_client_is_running(const CarbonClientHandleC *handle);
95
106bool carbon_client_try_receive_frame(CarbonClientHandleC *handle);
107
116VoyantFrameMeta carbon_client_frame_meta(const CarbonClientHandleC *handle);
117
124int64_t carbon_client_frame_points(const CarbonClientHandleC *handle,
125 PointDataV1 *dest,
126 uintptr_t capacity);
127
134bool carbon_client_get_sensor_state(const CarbonClientHandleC *handle, SensorState *out);
135
143bool carbon_client_get_time_sync_state(const CarbonClientHandleC *handle, TimeSyncState *out);
144
151
163uint8_t carbon_client_send_sdl(CarbonClientHandleC *handle, const SdlCommandParams *params);
164
174uint8_t carbon_client_poll_sdl(CarbonClientHandleC *handle);
175
184uint8_t carbon_client_send_sdl_blocking(CarbonClientHandleC *handle,
185 const SdlCommandParams *params);
186
195bool carbon_client_wait_for_heartbeat(CarbonClientHandleC *handle);
196
203bool carbon_client_ensure_idle_for_calibration(CarbonClientHandleC *handle);
204
215bool carbon_client_apply_default_background_noise(CarbonClientHandleC *handle);
216
230bool carbon_client_refine_background_noise(CarbonClientHandleC *handle,
231 uint32_t iterations);
232
249bool carbon_client_start_diagnostic_capture(CarbonClientHandleC *handle,
250 const char *path,
251 bool overwrite);
252
257void carbon_client_stop_diagnostic_capture(CarbonClientHandleC *handle);
258
262bool carbon_client_is_diagnostic_capturing(const CarbonClientHandleC *handle);
263
270uintptr_t carbon_client_diagnostic_capture_error(const CarbonClientHandleC *handle,
271 char *buf,
272 uintptr_t capacity);
273
277void carbon_client_free(CarbonClientHandleC *handle);
278
284CarbonConfigC *carbon_config_new();
285
294CarbonConfigC *carbon_config_from_json(const char *path);
295
299void carbon_config_free(CarbonConfigC *cfg);
300
304void carbon_config_set_bind_addr(CarbonConfigC *cfg, const char *v);
305
309void carbon_config_set_group_addr(CarbonConfigC *cfg, const char *v);
310
314void carbon_config_set_interface_addr(CarbonConfigC *cfg,
315 const char *v);
316
323void carbon_config_set_observer_only(CarbonConfigC *cfg, bool v);
324
332
336void carbon_config_set_use_msg_timestamp(CarbonConfigC *cfg, bool v);
337
341void carbon_config_set_batch_size(CarbonConfigC *cfg, uintptr_t v);
342
346void carbon_config_set_recv_buffer_size(CarbonConfigC *cfg, uintptr_t v);
347
351void carbon_config_set_receiver_channel_capacity(CarbonConfigC *cfg, uintptr_t v);
352
356void carbon_config_set_vel_corr_factor(CarbonConfigC *cfg, float v);
357
361void carbon_config_set_bandwidth_hz(CarbonConfigC *cfg, float v);
362
366void carbon_config_set_elevation_fov_deg(CarbonConfigC *cfg, float v);
367
371void carbon_config_set_peak_combine_twin_only(CarbonConfigC *cfg, bool v);
372
376void carbon_config_set_peak_combine_cluster_min_size(CarbonConfigC *cfg, uintptr_t v);
377
382void carbon_config_set_peak_combine_beat_thresh_hz(CarbonConfigC *cfg, float v);
383
388
394
399
404
409
413void carbon_config_set_rd_outlier_range_thresh_min_m(CarbonConfigC *cfg, float v);
414
418void carbon_config_set_rd_outlier_range_thresh_max_m(CarbonConfigC *cfg, float v);
419
424
429
433void carbon_config_set_rd_outlier_ref_range_m(CarbonConfigC *cfg, float v);
434
438void carbon_config_set_diagnostic_mode(CarbonConfigC *cfg, bool v);
439
443void carbon_config_set_range_min(CarbonConfigC *cfg, float v);
444
448void carbon_config_set_range_max(CarbonConfigC *cfg, float v);
449
453void carbon_config_set_doppler_min(CarbonConfigC *cfg, float v);
454
458void carbon_config_set_doppler_max(CarbonConfigC *cfg, float v);
459
463void carbon_config_set_azimuth_deg_min(CarbonConfigC *cfg, float v);
464
468void carbon_config_set_azimuth_deg_max(CarbonConfigC *cfg, float v);
469
473void carbon_config_set_elevation_deg_min(CarbonConfigC *cfg, float v);
474
478void carbon_config_set_elevation_deg_max(CarbonConfigC *cfg, float v);
479
483void carbon_config_set_spatial_filter_enabled(CarbonConfigC *cfg, bool v);
484
488void carbon_config_set_spatial_min_valid_neighbors(CarbonConfigC *cfg, uint8_t v);
489
493void carbon_config_set_spatial_point_cluster_size(CarbonConfigC *cfg, uint8_t v);
494
499 float v);
500
504void carbon_config_set_eval_mode(CarbonConfigC *cfg, bool v);
505
509void carbon_config_set_report_dir(CarbonConfigC *cfg, const char *v);
510
514void carbon_config_set_fpga_target_addr(CarbonConfigC *cfg, const char *v);
515
519void carbon_config_set_sdl_timeout_sec(CarbonConfigC *cfg, float v);
520
524void carbon_config_set_sdl_max_retries(CarbonConfigC *cfg, uint8_t v);
525
526} // extern "C"
void carbon_config_set_observer_only(CarbonConfigC *cfg, bool v)
void carbon_config_set_stream_transport(CarbonConfigC *cfg, StreamTransport v)
void carbon_config_set_interface_addr(CarbonConfigC *cfg, const char *v)
void carbon_config_set_diagnostic_mode(CarbonConfigC *cfg, bool v)
void carbon_config_set_sdl_max_retries(CarbonConfigC *cfg, uint8_t v)
void carbon_client_stop_diagnostic_capture(CarbonClientHandleC *handle)
bool carbon_client_is_running(const CarbonClientHandleC *handle)
void carbon_config_set_rd_outlier_range_thresh_min_m(CarbonConfigC *cfg, float v)
void carbon_config_set_fpga_target_addr(CarbonConfigC *cfg, const char *v)
bool carbon_client_get_sensor_state(const CarbonClientHandleC *handle, SensorState *out)
bool carbon_client_start(CarbonClientHandleC *handle)
CarbonConfigC * carbon_config_new()
uintptr_t carbon_client_diagnostic_capture_error(const CarbonClientHandleC *handle, char *buf, uintptr_t capacity)
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)
int64_t carbon_client_frame_points(const CarbonClientHandleC *handle, PointDataV1 *dest, uintptr_t capacity)
void carbon_config_set_elevation_deg_min(CarbonConfigC *cfg, float v)
void carbon_config_set_peak_combine_snr_pre_threshold_min_db(CarbonConfigC *cfg, float v)
void carbon_config_set_peak_combine_cluster_min_size(CarbonConfigC *cfg, uintptr_t v)
void carbon_config_set_vel_corr_factor(CarbonConfigC *cfg, float v)
void carbon_config_set_spatial_filter_enabled(CarbonConfigC *cfg, bool v)
void carbon_config_set_spatial_support_threshold(CarbonConfigC *cfg, float v)
void carbon_config_set_rd_outlier_doppler_thresh_max_mps(CarbonConfigC *cfg, float v)
void carbon_config_set_rd_outlier_range_thresh_max_m(CarbonConfigC *cfg, float v)
StreamTransport
Definition carbon_client_ffi.hpp:17
@ Unicast
Definition carbon_client_ffi.hpp:23
@ Multicast
Definition carbon_client_ffi.hpp:28
void carbon_config_set_peak_combine_snr_pre_threshold_slope_db_per_hz(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_rd_outlier_doppler_thresh_min_mps(CarbonConfigC *cfg, float v)
void carbon_config_set_bandwidth_hz(CarbonConfigC *cfg, float v)
uint8_t carbon_client_send_sdl(CarbonClientHandleC *handle, const SdlCommandParams *params)
void carbon_config_set_peak_combine_snr_pre_threshold_max_db(CarbonConfigC *cfg, float v)
void carbon_client_free(CarbonClientHandleC *handle)
void carbon_config_set_eval_mode(CarbonConfigC *cfg, bool v)
uint8_t carbon_client_poll_sdl(CarbonClientHandleC *handle)
void carbon_config_set_batch_size(CarbonConfigC *cfg, uintptr_t v)
void carbon_config_set_elevation_deg_max(CarbonConfigC *cfg, float v)
uint8_t carbon_client_send_sdl_blocking(CarbonClientHandleC *handle, const SdlCommandParams *params)
bool carbon_client_refine_background_noise(CarbonClientHandleC *handle, uint32_t iterations)
void carbon_config_set_azimuth_deg_min(CarbonConfigC *cfg, float v)
bool carbon_client_is_diagnostic_capturing(const CarbonClientHandleC *handle)
void carbon_config_set_doppler_min(CarbonConfigC *cfg, float v)
void carbon_config_set_spatial_min_valid_neighbors(CarbonConfigC *cfg, uint8_t v)
void carbon_config_free(CarbonConfigC *cfg)
bool carbon_client_start_diagnostic_capture(CarbonClientHandleC *handle, const char *path, bool overwrite)
void carbon_config_set_doppler_max(CarbonConfigC *cfg, float v)
CarbonClientHandleC * carbon_client_new(const CarbonConfigC *config)
void carbon_config_set_peak_combine_beat_outlier_removal(CarbonConfigC *cfg, bool v)
CarbonConfigC * carbon_config_from_json(const char *path)
void carbon_config_set_group_addr(CarbonConfigC *cfg, const char *v)
void carbon_config_set_peak_combine_snr_pre_threshold_enabled(CarbonConfigC *cfg, bool v)
void carbon_config_set_elevation_fov_deg(CarbonConfigC *cfg, float v)
void carbon_config_set_azimuth_deg_max(CarbonConfigC *cfg, float v)
void carbon_client_stop(CarbonClientHandleC *handle)
uint8_t sensor_state_to_sdl_command(const SensorState *state, SdlCommandParams *out)
bool carbon_client_wait_for_heartbeat(CarbonClientHandleC *handle)
void carbon_config_set_rd_outlier_ref_range_m(CarbonConfigC *cfg, float v)
void carbon_config_set_sdl_timeout_sec(CarbonConfigC *cfg, float v)
void carbon_config_set_spatial_point_cluster_size(CarbonConfigC *cfg, uint8_t v)
bool carbon_client_ensure_idle_for_calibration(CarbonClientHandleC *handle)
void carbon_config_set_bind_addr(CarbonConfigC *cfg, const char *v)
bool carbon_client_try_receive_frame(CarbonClientHandleC *handle)
void carbon_config_set_peak_combine_twin_only(CarbonConfigC *cfg, bool v)
bool carbon_client_apply_default_background_noise(CarbonClientHandleC *handle)
void carbon_config_set_peak_combine_beat_thresh_hz(CarbonConfigC *cfg, float v)
VoyantFrameMeta carbon_client_frame_meta(const CarbonClientHandleC *handle)
void carbon_config_set_range_min(CarbonConfigC *cfg, float v)
bool carbon_client_get_time_sync_state(const CarbonClientHandleC *handle, TimeSyncState *out)
Definition voyant_types_ffi.hpp:443
Definition carbon_client_ffi.hpp:49
float frame_rate_fps
Definition carbon_client_ffi.hpp:59
float hfov_deg
Definition carbon_client_ffi.hpp:51
uint8_t ramp_length
Definition carbon_client_ffi.hpp:64
uint8_t req_state
Definition carbon_client_ffi.hpp:50
float ramp_bandwidth_ghz
Definition carbon_client_ffi.hpp:60
float hfov_center_deg
Definition carbon_client_ffi.hpp:58
Definition voyant_types_ffi.hpp:350
Definition voyant_types_ffi.hpp:519
Definition voyant_types_ffi.hpp:365