Voyant API 0.8.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
CarbonClient Class Reference

Client for receiving frames from a Carbon LiDAR sensor. More...

#include <carbon_client.hpp>

Public Member Functions

 CarbonClient (const CarbonConfig &config)
 Construct a CarbonClient from a CarbonConfig. The config is cloned internally — it remains valid after this call.
 
 ~CarbonClient ()
 
 CarbonClient (const CarbonClient &)=delete
 
CarbonClientoperator= (const CarbonClient &)=delete
 
 CarbonClient (CarbonClient &&)=delete
 
CarbonClientoperator= (CarbonClient &&)=delete
 
bool start ()
 Start receiving and processing data.
 
void stop ()
 Stop receiving and processing data. Safe to call multiple times. Can restart with start().
 
bool isRunning () const
 Returns true if the client is running and no shutdown has been requested.
 
bool tryReceiveFrame ()
 Try to receive the latest frame if one is available.
 
VoyantFrameWrapperlatestFrame ()
 Access the latest received frame.
 
const VoyantFrameWrapperlatestFrame () const
 

Static Public Member Functions

static void setupSignalHandling (int signal=SIGINT)
 Set up OS signal handling for graceful termination.
 
static bool isTerminated ()
 Returns true if a termination signal has been received.
 
static void resetTerminationFlag ()
 Resets the termination flag.
 

Static Private Member Functions

static void signalHandler (int)
 

Private Attributes

CarbonClientHandleC * handle_
 
std::unique_ptr< uint8_t[]> buffer_
 
VoyantFrameWrapper latestFrame_
 

Static Private Attributes

static constexpr size_t kBufferSize_ = 8 * 1024 * 1024
 
static volatile std::sig_atomic_t terminated_
 

Detailed Description

Client for receiving frames from a Carbon LiDAR sensor.

Example:

CarbonConfig config;
config.setBindAddr("0.0.0.0:5678")
.setGroupAddr("224.0.0.0")
.setInterfaceAddr("0.0.0.0");
CarbonClient client(config);
client.start();
while (client.isRunning() && !CarbonClient::isTerminated()) {
if (client.tryReceiveFrame()) {
std::cout << client.latestFrame() << std::endl;
}
}
client.stop();
Client for receiving frames from a Carbon LiDAR sensor.
Definition carbon_client.hpp:38
static bool isTerminated()
Returns true if a termination signal has been received.
static void setupSignalHandling(int signal=SIGINT)
Set up OS signal handling for graceful termination.
Configuration for the Carbon LiDAR pipeline.
Definition carbon_config.hpp:29
CarbonConfig & setBindAddr(const std::string &v)
CarbonConfig & setGroupAddr(const std::string &v)
CarbonConfig & setInterfaceAddr(const std::string &v)

Constructor & Destructor Documentation

◆ CarbonClient() [1/3]

CarbonClient::CarbonClient ( const CarbonConfig config)
explicit

Construct a CarbonClient from a CarbonConfig. The config is cloned internally — it remains valid after this call.

Parameters
configCarbonConfig with all desired settings.
Exceptions
std::runtime_errorif client creation fails.

◆ ~CarbonClient()

CarbonClient::~CarbonClient ( )

◆ CarbonClient() [2/3]

CarbonClient::CarbonClient ( const CarbonClient )
delete

◆ CarbonClient() [3/3]

CarbonClient::CarbonClient ( CarbonClient &&  )
delete

Member Function Documentation

◆ isRunning()

bool CarbonClient::isRunning ( ) const

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

◆ isTerminated()

static bool CarbonClient::isTerminated ( )
static

Returns true if a termination signal has been received.

◆ latestFrame() [1/2]

VoyantFrameWrapper & CarbonClient::latestFrame ( )

Access the latest received frame.

◆ latestFrame() [2/2]

const VoyantFrameWrapper & CarbonClient::latestFrame ( ) const

◆ operator=() [1/2]

CarbonClient & CarbonClient::operator= ( CarbonClient &&  )
delete

◆ operator=() [2/2]

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

◆ resetTerminationFlag()

static void CarbonClient::resetTerminationFlag ( )
static

Resets the termination flag.

◆ setupSignalHandling()

static void CarbonClient::setupSignalHandling ( int  signal = SIGINT)
static

Set up OS signal handling for graceful termination.

Parameters
signalSignal to handle (default: SIGINT)

◆ signalHandler()

static void CarbonClient::signalHandler ( int  )
staticprivate

◆ start()

bool CarbonClient::start ( )

Start receiving and processing data.

Returns
true on success, false on failure.

◆ stop()

void CarbonClient::stop ( )

Stop receiving and processing data. Safe to call multiple times. Can restart with start().

◆ tryReceiveFrame()

bool CarbonClient::tryReceiveFrame ( )

Try to receive the latest frame if one is available.

Returns
true if a new frame was received.

Member Data Documentation

◆ buffer_

std::unique_ptr<uint8_t[]> CarbonClient::buffer_
private

◆ handle_

CarbonClientHandleC* CarbonClient::handle_
private

◆ kBufferSize_

constexpr size_t CarbonClient::kBufferSize_ = 8 * 1024 * 1024
staticconstexprprivate

◆ latestFrame_

VoyantFrameWrapper CarbonClient::latestFrame_
private

◆ terminated_

volatile std::sig_atomic_t CarbonClient::terminated_
staticprivate

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