Voyant API 0.16.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.
CarbonConfigsetKeepInvalidPoints (bool v)
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)
CarbonConfigsetInterpRangeThreshold (float v)
CarbonConfigsetInterpDopplerThreshold (float v)
CarbonConfigsetMissingElevations (const std::vector< uint8_t > &elevations)
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:137
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)

◆ 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)

◆ setInterpDopplerThreshold()

CarbonConfig & CarbonConfig::setInterpDopplerThreshold ( float v)

◆ setInterpRangeThreshold()

CarbonConfig & CarbonConfig::setInterpRangeThreshold ( float v)

◆ setKeepInvalidPoints()

CarbonConfig & CarbonConfig::setKeepInvalidPoints ( bool v)

◆ setMissingElevations()

CarbonConfig & CarbonConfig::setMissingElevations ( const std::vector< uint8_t > & elevations)

◆ 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: