Voyant API 0.16.0
Loading...
Searching...
No Matches
carbon_config.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
7#include <cstdint>
8#include <memory>
9#include <string>
10#include <vector>
11
29{
30public:
33
45 static std::unique_ptr<CarbonConfig> fromJson(const std::string& path);
46
47 // Non-copyable, non-movable (owns raw FFI pointer)
48 CarbonConfig(const CarbonConfig&) = delete;
52
53 // ── Connection ────────────────────────────────────────────────────────────
54 CarbonConfig& setBindAddr(const std::string& v);
55 CarbonConfig& setGroupAddr(const std::string& v);
56 CarbonConfig& setInterfaceAddr(const std::string& v);
57
64
71
72 // ── Receiver ──────────────────────────────────────────────────────────────
77
78 // ── DSP ───────────────────────────────────────────────────────────────────
82
83 // ── Peak Combiner ────────────────────────────────────────────────────────
92
93 // ── RD Outlier (shared peak + point thresholds) ───────────────────────────
99
100 // ── Frame Assembler ───────────────────────────────────────────────────────
102
103 // ── Geometric Bounds ──────────────────────────────────────────────────────
112
113 // ── Spatial Outlier Filter ────────────────────────────────────────────────
121
122 // ── Elevation Interpolator ────────────────────────────────────────────────
125 CarbonConfig& setMissingElevations(const std::vector<uint8_t>& elevations);
126
127 // ── Eval ──────────────────────────────────────────────────────────────────
129 CarbonConfig& setReportDir(const std::string& v);
130
131 // ── SDL ───────────────────────────────────────────────────────────────────────
132 CarbonConfig& setFpgaTargetAddr(const std::string& v);
135
136private:
137 friend class CarbonClient;
138 CarbonConfigC* cfg_; // opaque pointer — type defined in carbon_client_ffi.hpp
139 explicit CarbonConfig(CarbonConfigC* raw); // takes ownership
140};
StreamTransport
Definition carbon_client_ffi.hpp:17
CarbonConfig & setPeakCombineClusterMinSize(size_t v)
Minimum inlier/survivor count. Default: 1.
CarbonConfig & setRangeMin(float v)
CarbonConfig & setAzimuthDegMax(float v)
CarbonConfig & operator=(CarbonConfig &&)=delete
CarbonConfig & setBindAddr(const std::string &v)
CarbonConfig & setRdOutlierRefRangeM(float v)
Reference range (m). Default: 150.
CarbonConfig & setElevationFovDeg(float v)
CarbonConfig & setRdOutlierRangeThreshMinM(float v)
Range tolerance (m) at origin. Default: 0.1.
CarbonConfig & setMissingElevations(const std::vector< uint8_t > &elevations)
CarbonConfig & setElevationDegMin(float v)
CarbonConfig(CarbonConfigC *raw)
CarbonConfig & operator=(const CarbonConfig &)=delete
friend class CarbonClient
Definition carbon_config.hpp:137
CarbonConfig & setSdlMaxRetries(uint8_t v)
CarbonConfig & setObserverOnly(bool v)
CarbonConfig & setPeakCombineTwinOnly(bool v)
Use legacy literal-twin-only pairing. Default: false.
CarbonConfig & setPeakCombineSnrPreThresholdEnabled(bool v)
Enable stage-0 per-peak SNR gate. Default: true.
CarbonConfig & setVelCorrFactor(float v)
CarbonConfig & setSpatialSupportThreshold(float v)
CarbonConfig & setSpatialPointClusterSize(uint8_t v)
CarbonConfig & setSpatialFilterEnabled(bool v)
Enable the point-stage spatial outlier filter. Default: true.
CarbonConfig & setBandwidthHz(float v)
CarbonConfig & setReportDir(const std::string &v)
CarbonConfig & setDopplerMax(float v)
CarbonConfig & setKeepInvalidPoints(bool v)
CarbonConfig & setReceiverChannelCapacity(size_t v)
CarbonConfig & setGroupAddr(const std::string &v)
CarbonConfig & setSpatialMinValidNeighbors(uint8_t v)
CarbonConfig & setInterpRangeThreshold(float v)
static std::unique_ptr< CarbonConfig > fromJson(const std::string &path)
CarbonConfig & setUseMsgTimestamp(bool v)
CarbonConfig(CarbonConfig &&)=delete
CarbonConfig & setPeakCombineBeatThreshHz(float v)
Static beat-frequency threshold (Hz); pass 0 for dynamic.
CarbonConfig & setRdOutlierDopplerThreshMaxMps(float v)
Doppler tolerance (m/s) at ref_range. Default: 0.2.
CarbonConfig & setRdOutlierDopplerThreshMinMps(float v)
Doppler tolerance (m/s) at origin. Default: 0.08.
CarbonConfig & setRecvBufferSize(size_t v)
CarbonConfig & setInterfaceAddr(const std::string &v)
CarbonConfig & setAzimuthDegMin(float v)
CarbonConfig & setRangeMax(float v)
CarbonConfig & setStreamTransport(StreamTransport v)
CarbonConfig & setInterpDopplerThreshold(float v)
CarbonConfig & setElevationDegMax(float v)
CarbonConfig & setDopplerMin(float v)
CarbonConfig & setPeakCombineBeatOutlierRemoval(bool v)
Enable beat outlier removal. Default: true.
CarbonConfig & setSdlTimeoutSec(float v)
CarbonConfig & setFpgaTargetAddr(const std::string &v)
CarbonConfig & setEvalMode(bool v)
CarbonConfigC * cfg_
Definition carbon_config.hpp:138
CarbonConfig & setPeakCombineSnrPreThresholdSlopeDbPerHz(float v)
SNR slope (dB/Hz). Default: 6.0e-7.
CarbonConfig(const CarbonConfig &)=delete
CarbonConfig & setRdOutlierRangeThreshMaxM(float v)
Range tolerance (m) at ref_range. Default: 0.4.
CarbonConfig & setBatchSize(size_t v)
CarbonConfig & setPeakCombineSnrPreThresholdMaxDb(float v)
SNR threshold (dB) at DC. Default: 13.0.
CarbonConfig & setPeakCombineSnrPreThresholdMinDb(float v)
SNR threshold floor (dB). Default: 10.0.