Voyant API 0.8.0
Loading...
Searching...
No Matches
Functions
carbon_client_ffi.hpp File Reference
#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <ostream>
#include <new>

Go to the source code of this file.

Functions

CarbonClientHandleC * carbon_client_new (const CarbonConfigC *config)
 
bool carbon_client_start (CarbonClientHandleC *handle)
 
void carbon_client_stop (CarbonClientHandleC *handle)
 
bool carbon_client_is_running (const CarbonClientHandleC *handle)
 
int32_t carbon_client_copy_latest_into (CarbonClientHandleC *handle, uint8_t *dest, uintptr_t len)
 
void carbon_client_free (CarbonClientHandleC *handle)
 
CarbonConfigC * carbon_config_new ()
 
CarbonConfigC * carbon_config_from_json (const char *path)
 
void carbon_config_free (CarbonConfigC *cfg)
 
void carbon_config_set_bind_addr (CarbonConfigC *cfg, const char *v)
 
void carbon_config_set_group_addr (CarbonConfigC *cfg, const char *v)
 
void carbon_config_set_interface_addr (CarbonConfigC *cfg, const char *v)
 
void carbon_config_set_use_msg_timestamp (CarbonConfigC *cfg, bool v)
 
void carbon_config_set_batch_size (CarbonConfigC *cfg, uintptr_t v)
 
void carbon_config_set_recv_buffer_size (CarbonConfigC *cfg, uintptr_t v)
 
void carbon_config_set_receiver_channel_capacity (CarbonConfigC *cfg, uintptr_t v)
 
void carbon_config_set_pfa (CarbonConfigC *cfg, float v)
 
void carbon_config_set_vel_corr_factor (CarbonConfigC *cfg, float v)
 
void carbon_config_set_bandwidth_hz (CarbonConfigC *cfg, float v)
 
void carbon_config_set_elevation_fov_deg (CarbonConfigC *cfg, float v)
 
void carbon_config_set_keep_invalid_points (CarbonConfigC *cfg, bool v)
 
void carbon_config_set_range_min (CarbonConfigC *cfg, float v)
 
void carbon_config_set_range_max (CarbonConfigC *cfg, float v)
 
void carbon_config_set_doppler_min (CarbonConfigC *cfg, float v)
 
void carbon_config_set_doppler_max (CarbonConfigC *cfg, float v)
 
void carbon_config_set_azimuth_deg_min (CarbonConfigC *cfg, float v)
 
void carbon_config_set_azimuth_deg_max (CarbonConfigC *cfg, float v)
 
void carbon_config_set_elevation_deg_min (CarbonConfigC *cfg, float v)
 
void carbon_config_set_elevation_deg_max (CarbonConfigC *cfg, float v)
 
void carbon_config_set_spatial_range_threshold (CarbonConfigC *cfg, float v)
 
void carbon_config_set_spatial_doppler_threshold (CarbonConfigC *cfg, float v)
 
void carbon_config_set_spatial_min_neighbors (CarbonConfigC *cfg, uint8_t v)
 
void carbon_config_set_interp_range_threshold (CarbonConfigC *cfg, float v)
 
void carbon_config_set_interp_doppler_threshold (CarbonConfigC *cfg, float v)
 
void carbon_config_set_missing_elevations (CarbonConfigC *cfg, const uint8_t *elevations, uintptr_t len)
 
void carbon_config_set_mirror_peaks (CarbonConfigC *cfg, bool v)
 
void carbon_config_set_mirror_group_addr (CarbonConfigC *cfg, const char *v)
 
void carbon_config_set_mirror_bind_addr (CarbonConfigC *cfg, const char *v)
 
void carbon_config_set_eval_mode (CarbonConfigC *cfg, bool v)
 
void carbon_config_set_report_dir (CarbonConfigC *cfg, const char *v)
 

Function Documentation

◆ carbon_client_copy_latest_into()

int32_t carbon_client_copy_latest_into ( CarbonClientHandleC *  handle,
uint8_t *  dest,
uintptr_t  len 
)

Copies the latest frame into dest if a new one is available.

Returns
Positive: bytes written. 0: no new frame. -1: error.

◆ carbon_client_free()

void carbon_client_free ( CarbonClientHandleC *  handle)

Frees a CarbonClientHandle. Stops the client if running. Safe to call with null.

◆ carbon_client_is_running()

bool carbon_client_is_running ( const CarbonClientHandleC *  handle)

Returns true if the client is running and no OS shutdown has been requested.

◆ carbon_client_new()

CarbonClientHandleC * carbon_client_new ( const CarbonConfigC *  config)

Creates and initializes a CarbonClientHandle from a CarbonConfig. The config is cloned internally — it can be freed immediately after this call.

Parameters
configPointer to a CarbonConfig created via carbon_config_new().
Returns
Opaque handle, or null on failure. Free with carbon_client_free().

◆ carbon_client_start()

bool carbon_client_start ( CarbonClientHandleC *  handle)

Start receiving and processing data.

Returns
true on success, false on failure.

◆ carbon_client_stop()

void carbon_client_stop ( CarbonClientHandleC *  handle)

Stop receiving and processing data. Safe to call multiple times. The client can be restarted by calling carbon_client_start() again.

◆ carbon_config_free()

void carbon_config_free ( CarbonConfigC *  cfg)

Frees a CarbonConfig. Safe to call with null.

◆ carbon_config_from_json()

CarbonConfigC * carbon_config_from_json ( const char *  path)

Load a CarbonConfig from a JSON file. Missing fields default to their standard values. Returns null on failure (file not found, parse error, or validation failure).

Parameters
pathNull-terminated path to the JSON config file.
Returns
Pointer to a new CarbonConfig, or null on failure. Free with carbon_config_free().

◆ carbon_config_new()

CarbonConfigC * carbon_config_new ( )

Creates a new CarbonConfig with default values.

Returns
Pointer to a new CarbonConfig. Free with carbon_config_free().

◆ carbon_config_set_azimuth_deg_max()

void carbon_config_set_azimuth_deg_max ( CarbonConfigC *  cfg,
float  v 
)

Maximum azimuth filter in degrees.

◆ carbon_config_set_azimuth_deg_min()

void carbon_config_set_azimuth_deg_min ( CarbonConfigC *  cfg,
float  v 
)

Minimum azimuth filter in degrees.

◆ carbon_config_set_bandwidth_hz()

void carbon_config_set_bandwidth_hz ( CarbonConfigC *  cfg,
float  v 
)

Chirp sweep bandwidth in Hz.

◆ carbon_config_set_batch_size()

void carbon_config_set_batch_size ( CarbonConfigC *  cfg,
uintptr_t  v 
)

Maximum number of peaks messages per batch before flushing to the pipeline.

◆ carbon_config_set_bind_addr()

void carbon_config_set_bind_addr ( CarbonConfigC *  cfg,
const char *  v 
)

Set the UDP bind address including port (e.g. "0.0.0.0:5678")

◆ carbon_config_set_doppler_max()

void carbon_config_set_doppler_max ( CarbonConfigC *  cfg,
float  v 
)

Maximum Doppler filter in m/s.

◆ carbon_config_set_doppler_min()

void carbon_config_set_doppler_min ( CarbonConfigC *  cfg,
float  v 
)

Minimum Doppler filter in m/s.

◆ carbon_config_set_elevation_deg_max()

void carbon_config_set_elevation_deg_max ( CarbonConfigC *  cfg,
float  v 
)

Maximum elevation filter in degrees.

◆ carbon_config_set_elevation_deg_min()

void carbon_config_set_elevation_deg_min ( CarbonConfigC *  cfg,
float  v 
)

Minimum elevation filter in degrees.

◆ carbon_config_set_elevation_fov_deg()

void carbon_config_set_elevation_fov_deg ( CarbonConfigC *  cfg,
float  v 
)

Elevation field of view in degrees.

◆ carbon_config_set_eval_mode()

void carbon_config_set_eval_mode ( CarbonConfigC *  cfg,
bool  v 
)

Enable timing and drop statistics evaluation with generated reports.

◆ carbon_config_set_group_addr()

void carbon_config_set_group_addr ( CarbonConfigC *  cfg,
const char *  v 
)

Set the multicast group address (e.g. "224.0.0.0")

◆ carbon_config_set_interface_addr()

void carbon_config_set_interface_addr ( CarbonConfigC *  cfg,
const char *  v 
)

Set the network interface address (e.g. "0.0.0.0" for default)

◆ carbon_config_set_interp_doppler_threshold()

void carbon_config_set_interp_doppler_threshold ( CarbonConfigC *  cfg,
float  v 
)

Doppler threshold for elevation interpolation in m/s. Default: 0.25

◆ carbon_config_set_interp_range_threshold()

void carbon_config_set_interp_range_threshold ( CarbonConfigC *  cfg,
float  v 
)

Range threshold for elevation interpolation in meters. Default: 5.0

◆ carbon_config_set_keep_invalid_points()

void carbon_config_set_keep_invalid_points ( CarbonConfigC *  cfg,
bool  v 
)

Keep invalid points in the assembled point cloud. Default: false.

◆ carbon_config_set_mirror_bind_addr()

void carbon_config_set_mirror_bind_addr ( CarbonConfigC *  cfg,
const char *  v 
)

Bind address for the peaks mirror sender (e.g. "127.0.0.1:0").

◆ carbon_config_set_mirror_group_addr()

void carbon_config_set_mirror_group_addr ( CarbonConfigC *  cfg,
const char *  v 
)

Multicast group address for peaks mirroring (e.g. "224.0.0.1:5555").

◆ carbon_config_set_mirror_peaks()

void carbon_config_set_mirror_peaks ( CarbonConfigC *  cfg,
bool  v 
)

Enable multicast mirroring of raw peaks for external logging.

◆ carbon_config_set_missing_elevations()

void carbon_config_set_missing_elevations ( CarbonConfigC *  cfg,
const uint8_t *  elevations,
uintptr_t  len 
)

Missing elevation indices to interpolate (must be even: 0, 2, 4, ... 254). Setting this enables elevation interpolation. Default: disabled (empty).

◆ carbon_config_set_pfa()

void carbon_config_set_pfa ( CarbonConfigC *  cfg,
float  v 
)

Probability of False Alarm for optional SNR thresholding. Recommended range: [1e-6, 1e-3].

◆ carbon_config_set_range_max()

void carbon_config_set_range_max ( CarbonConfigC *  cfg,
float  v 
)

Maximum range filter in meters.

◆ carbon_config_set_range_min()

void carbon_config_set_range_min ( CarbonConfigC *  cfg,
float  v 
)

Minimum range filter in meters.

◆ carbon_config_set_receiver_channel_capacity()

void carbon_config_set_receiver_channel_capacity ( CarbonConfigC *  cfg,
uintptr_t  v 
)

Channel capacity for batched messages from receiver to pipeline.

◆ carbon_config_set_recv_buffer_size()

void carbon_config_set_recv_buffer_size ( CarbonConfigC *  cfg,
uintptr_t  v 
)

Size of the pre-allocated UDP receive buffer in bytes.

◆ carbon_config_set_report_dir()

void carbon_config_set_report_dir ( CarbonConfigC *  cfg,
const char *  v 
)

Directory for evaluation report files. Only used when eval mode is enabled. Default: "./reports"

◆ carbon_config_set_spatial_doppler_threshold()

void carbon_config_set_spatial_doppler_threshold ( CarbonConfigC *  cfg,
float  v 
)

Doppler threshold for spatial outlier filter in m/s. Default: 0.1

◆ carbon_config_set_spatial_min_neighbors()

void carbon_config_set_spatial_min_neighbors ( CarbonConfigC *  cfg,
uint8_t  v 
)

Minimum number of neighbors for a point to pass the spatial outlier filter. Default: 1

◆ carbon_config_set_spatial_range_threshold()

void carbon_config_set_spatial_range_threshold ( CarbonConfigC *  cfg,
float  v 
)

Range threshold for spatial outlier filter in meters. Default: 0.1

◆ carbon_config_set_use_msg_timestamp()

void carbon_config_set_use_msg_timestamp ( CarbonConfigC *  cfg,
bool  v 
)

Use timestamps from received packets instead of system time on receipt.

◆ carbon_config_set_vel_corr_factor()

void carbon_config_set_vel_corr_factor ( CarbonConfigC *  cfg,
float  v 
)

Velocity correction multiplier.