Voyant API 1.0.0
Loading...
Searching...
No Matches
CarbonConfig Class Reference

Configuration for the Carbon LiDAR pipeline. More...

#include <carbon_config.hpp>

Public Member Functions

 CarbonConfig ()
 ~CarbonConfig ()
 CarbonConfig (const CarbonConfig &)=delete
CarbonConfigoperator= (const CarbonConfig &)=delete
 CarbonConfig (CarbonConfig &&)=delete
CarbonConfigoperator= (CarbonConfig &&)=delete
CarbonConfigsetBindAddr (const std::string &v)
CarbonConfigsetGroupAddr (const std::string &v)
CarbonConfigsetInterfaceAddr (const std::string &v)
CarbonConfigsetObserverOnly (bool v)
CarbonConfigsetStreamTransport (StreamTransport v)
CarbonConfigsetUseMsgTimestamp (bool v)
CarbonConfigsetBatchSize (size_t v)
CarbonConfigsetRecvBufferSize (size_t v)
CarbonConfigsetReceiverChannelCapacity (size_t v)
CarbonConfigsetVelCorrFactor (float v)
CarbonConfigsetBandwidthHz (float v)
CarbonConfigsetElevationFovDeg (float v)
CarbonConfigsetPeakCombineTwinOnly (bool v)
 Use legacy literal-twin-only pairing. Default: false.
CarbonConfigsetPeakCombineClusterMinSize (size_t v)
 Minimum inlier/survivor count. Default: 1.
CarbonConfigsetPeakCombineBeatThreshHz (float v)
 Static beat-frequency threshold (Hz); pass 0 for dynamic.
CarbonConfigsetPeakCombineBeatOutlierRemoval (bool v)
 Enable beat outlier removal. Default: true.
CarbonConfigsetPeakCombineSnrPreThresholdEnabled (bool v)
 Enable stage-0 per-peak SNR gate. Default: true.
CarbonConfigsetPeakCombineSnrPreThresholdMaxDb (float v)
 SNR threshold (dB) at DC. Default: 13.0.
CarbonConfigsetPeakCombineSnrPreThresholdMinDb (float v)
 SNR threshold floor (dB). Default: 10.0.
CarbonConfigsetPeakCombineSnrPreThresholdSlopeDbPerHz (float v)
 SNR slope (dB/Hz). Default: 6.0e-7.
CarbonConfigsetRdOutlierRangeThreshMinM (float v)
 Range tolerance (m) at origin. Default: 0.1.
CarbonConfigsetRdOutlierRangeThreshMaxM (float v)
 Range tolerance (m) at ref_range. Default: 0.4.
CarbonConfigsetRdOutlierDopplerThreshMinMps (float v)
 Doppler tolerance (m/s) at origin. Default: 0.08.
CarbonConfigsetRdOutlierDopplerThreshMaxMps (float v)
 Doppler tolerance (m/s) at ref_range. Default: 0.2.
CarbonConfigsetRdOutlierRefRangeM (float v)
 Reference range (m). Default: 150.
CarbonConfigsetDiagnosticMode (bool v)
 Include invalid points (with their drop reason). Default: false.
CarbonConfigsetRangeMin (float v)
CarbonConfigsetRangeMax (float v)
CarbonConfigsetDopplerMin (float v)
CarbonConfigsetDopplerMax (float v)
CarbonConfigsetAzimuthDegMin (float v)
CarbonConfigsetAzimuthDegMax (float v)
CarbonConfigsetElevationDegMin (float v)
CarbonConfigsetElevationDegMax (float v)
CarbonConfigsetSpatialFilterEnabled (bool v)
 Enable the point-stage spatial outlier filter. Default: true.
CarbonConfigsetSpatialMinValidNeighbors (uint8_t v)
CarbonConfigsetSpatialPointClusterSize (uint8_t v)
CarbonConfigsetSpatialSupportThreshold (float v)
CarbonConfigsetEvalMode (bool v)
CarbonConfigsetReportDir (const std::string &v)
CarbonConfigsetFpgaTargetAddr (const std::string &v)
CarbonConfigsetSdlTimeoutSec (float v)
CarbonConfigsetSdlMaxRetries (uint8_t v)

Static Public Member Functions

static std::unique_ptr< CarbonConfigfromJson (const std::string &path)

Private Member Functions

 CarbonConfig (CarbonConfigC *raw)

Private Attributes

CarbonConfigC * cfg_

Friends

class CarbonClient

Detailed Description

Configuration for the Carbon LiDAR pipeline.

Construct with default values, then use setters to override what you need. Pass to CarbonClient constructor — the client clones it internally.

Setters return *this for optional chaining:

CarbonConfig config;
config.setBindAddr("0.0.0.0:5678")
.setGroupAddr("239.255.48.84")
.setInterfaceAddr("192.168.1.100")
.setRangeMax(50.0f);
CarbonConfig & setBindAddr(const std::string &v)
CarbonConfig & setGroupAddr(const std::string &v)
CarbonConfig & setInterfaceAddr(const std::string &v)
CarbonConfig & setRangeMax(float v)

Constructor & Destructor Documentation

◆ CarbonConfig() [1/4]

CarbonConfig::CarbonConfig ( )

◆ ~CarbonConfig()

CarbonConfig::~CarbonConfig ( )

◆ CarbonConfig() [2/4]

CarbonConfig::CarbonConfig ( const CarbonConfig & )
delete

◆ CarbonConfig() [3/4]

CarbonConfig::CarbonConfig ( CarbonConfig && )
delete

◆ CarbonConfig() [4/4]

CarbonConfig::CarbonConfig ( CarbonConfigC * raw)
explicitprivate

Member Function Documentation

◆ fromJson()

std::unique_ptr< CarbonConfig > CarbonConfig::fromJson ( const std::string & path)
static

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

auto config = CarbonConfig::fromJson("config.json");
if (!config) { // handle error }
CarbonClient client(*config);
friend class CarbonClient
Definition carbon_config.hpp:132
static std::unique_ptr< CarbonConfig > fromJson(const std::string &path)

◆ operator=() [1/2]

CarbonConfig & CarbonConfig::operator= ( CarbonConfig && )
delete

◆ operator=() [2/2]

CarbonConfig & CarbonConfig::operator= ( const CarbonConfig & )
delete

◆ setAzimuthDegMax()

CarbonConfig & CarbonConfig::setAzimuthDegMax ( float v)

◆ setAzimuthDegMin()

CarbonConfig & CarbonConfig::setAzimuthDegMin ( float v)

◆ setBandwidthHz()

CarbonConfig & CarbonConfig::setBandwidthHz ( float v)

◆ setBatchSize()

CarbonConfig & CarbonConfig::setBatchSize ( size_t v)

◆ setBindAddr()

CarbonConfig & CarbonConfig::setBindAddr ( const std::string & v)

◆ setDiagnosticMode()

CarbonConfig & CarbonConfig::setDiagnosticMode ( bool v)

Include invalid points (with their drop reason). Default: false.

◆ setDopplerMax()

CarbonConfig & CarbonConfig::setDopplerMax ( float v)

◆ setDopplerMin()

CarbonConfig & CarbonConfig::setDopplerMin ( float v)

◆ setElevationDegMax()

CarbonConfig & CarbonConfig::setElevationDegMax ( float v)

◆ setElevationDegMin()

CarbonConfig & CarbonConfig::setElevationDegMin ( float v)

◆ setElevationFovDeg()

CarbonConfig & CarbonConfig::setElevationFovDeg ( float v)

◆ setEvalMode()

CarbonConfig & CarbonConfig::setEvalMode ( bool v)

◆ setFpgaTargetAddr()

CarbonConfig & CarbonConfig::setFpgaTargetAddr ( const std::string & v)

◆ setGroupAddr()

CarbonConfig & CarbonConfig::setGroupAddr ( const std::string & v)

◆ setInterfaceAddr()

CarbonConfig & CarbonConfig::setInterfaceAddr ( const std::string & v)

◆ setObserverOnly()

CarbonConfig & CarbonConfig::setObserverOnly ( bool v)

Observer-only mode: passively receive the point stream without sending anything to the FPGA. Disables SDL commands, host<->FPGA time-sync, and comms-health probing so multiple clients can share one sensor — but only with Multicast transport; under the default unicast the sensor streams to a single client. Exactly one primary (non-observer) client should own the FPGA.

◆ setPeakCombineBeatOutlierRemoval()

CarbonConfig & CarbonConfig::setPeakCombineBeatOutlierRemoval ( bool v)

Enable beat outlier removal. Default: true.

◆ setPeakCombineBeatThreshHz()

CarbonConfig & CarbonConfig::setPeakCombineBeatThreshHz ( float v)

Static beat-frequency threshold (Hz); pass 0 for dynamic.

◆ setPeakCombineClusterMinSize()

CarbonConfig & CarbonConfig::setPeakCombineClusterMinSize ( size_t v)

Minimum inlier/survivor count. Default: 1.

◆ setPeakCombineSnrPreThresholdEnabled()

CarbonConfig & CarbonConfig::setPeakCombineSnrPreThresholdEnabled ( bool v)

Enable stage-0 per-peak SNR gate. Default: true.

◆ setPeakCombineSnrPreThresholdMaxDb()

CarbonConfig & CarbonConfig::setPeakCombineSnrPreThresholdMaxDb ( float v)

SNR threshold (dB) at DC. Default: 13.0.

◆ setPeakCombineSnrPreThresholdMinDb()

CarbonConfig & CarbonConfig::setPeakCombineSnrPreThresholdMinDb ( float v)

SNR threshold floor (dB). Default: 10.0.

◆ setPeakCombineSnrPreThresholdSlopeDbPerHz()

CarbonConfig & CarbonConfig::setPeakCombineSnrPreThresholdSlopeDbPerHz ( float v)

SNR slope (dB/Hz). Default: 6.0e-7.

◆ setPeakCombineTwinOnly()

CarbonConfig & CarbonConfig::setPeakCombineTwinOnly ( bool v)

Use legacy literal-twin-only pairing. Default: false.

◆ setRangeMax()

CarbonConfig & CarbonConfig::setRangeMax ( float v)

◆ setRangeMin()

CarbonConfig & CarbonConfig::setRangeMin ( float v)

◆ setRdOutlierDopplerThreshMaxMps()

CarbonConfig & CarbonConfig::setRdOutlierDopplerThreshMaxMps ( float v)

Doppler tolerance (m/s) at ref_range. Default: 0.2.

◆ setRdOutlierDopplerThreshMinMps()

CarbonConfig & CarbonConfig::setRdOutlierDopplerThreshMinMps ( float v)

Doppler tolerance (m/s) at origin. Default: 0.08.

◆ setRdOutlierRangeThreshMaxM()

CarbonConfig & CarbonConfig::setRdOutlierRangeThreshMaxM ( float v)

Range tolerance (m) at ref_range. Default: 0.4.

◆ setRdOutlierRangeThreshMinM()

CarbonConfig & CarbonConfig::setRdOutlierRangeThreshMinM ( float v)

Range tolerance (m) at origin. Default: 0.1.

◆ setRdOutlierRefRangeM()

CarbonConfig & CarbonConfig::setRdOutlierRefRangeM ( float v)

Reference range (m). Default: 150.

◆ setReceiverChannelCapacity()

CarbonConfig & CarbonConfig::setReceiverChannelCapacity ( size_t v)

◆ setRecvBufferSize()

CarbonConfig & CarbonConfig::setRecvBufferSize ( size_t v)

◆ setReportDir()

CarbonConfig & CarbonConfig::setReportDir ( const std::string & v)

◆ setSdlMaxRetries()

CarbonConfig & CarbonConfig::setSdlMaxRetries ( uint8_t v)

◆ setSdlTimeoutSec()

CarbonConfig & CarbonConfig::setSdlTimeoutSec ( float v)

◆ setSpatialFilterEnabled()

CarbonConfig & CarbonConfig::setSpatialFilterEnabled ( bool v)

Enable the point-stage spatial outlier filter. Default: true.

◆ setSpatialMinValidNeighbors()

CarbonConfig & CarbonConfig::setSpatialMinValidNeighbors ( uint8_t v)

Minimum number of valid neighbors before either check runs. Default: 1.

◆ setSpatialPointClusterSize()

CarbonConfig & CarbonConfig::setSpatialPointClusterSize ( uint8_t v)

Minimum number of range- and Doppler-close neighbors required to keep a point. Default: 1.

◆ setSpatialSupportThreshold()

CarbonConfig & CarbonConfig::setSpatialSupportThreshold ( float v)

Drop the point when its own confidence plus the sum over Doppler-close neighbors falls below this. Default: 1.0.

◆ setStreamTransport()

CarbonConfig & CarbonConfig::setStreamTransport ( StreamTransport v)

How the sensor delivers its push stream: StreamTransport::Unicast (default; the sensor replies only to this client and arrives reliably even when the host has several network connections active at once) or StreamTransport::Multicast (streams to a shared group so several clients can view one sensor). A primary writes this to the FPGA on connect; observers ignore it.

◆ setUseMsgTimestamp()

CarbonConfig & CarbonConfig::setUseMsgTimestamp ( bool v)

◆ setVelCorrFactor()

CarbonConfig & CarbonConfig::setVelCorrFactor ( float v)

◆ CarbonClient

friend class CarbonClient
friend

Member Data Documentation

◆ cfg_

CarbonConfigC* CarbonConfig::cfg_
private

The documentation for this class was generated from the following file: