camcom 1.0.3
 
Loading...
Searching...
No Matches
camcom::common::AdapterBase Class Referenceabstract

#include <adapterBase.hpp>

Inheritance diagram for camcom::common::AdapterBase:
camcom::common::TestAdapter camcom::genicam::GenICamAdapter camcom::genicam::GenICamEmulator camcom::server::MockAdapter camcom::sim::SimAdapter

Public Member Functions

 AdapterBase ()
 
virtual ~AdapterBase ()
 
virtual std::map< std::string, ParameterConnect ()=0
 
virtual void Disconnect ()=0
 
virtual CheckResult CheckConnection () const =0
 
virtual bool IsConnected () const =0
 
virtual std::string GetProtocol () const =0
 Get the protocol name used by this adapter.
 
virtual BasicParams GetBasicParams () const =0
 Get basic camera parameters in standardized units. Adapters read their native parameters and convert to common units.
 
virtual void Initialise (const ReceiveCfg &cfg)
 
virtual void ReceiveFrame (bool &received_frame, uint64_t max_size, std::span< uint8_t > &data, FrameInfo &frame_info)=0
 
virtual Parameter Read (const std::string &name)=0
 Read a single parameter from the camera.
 
virtual std::vector< ParameterRead (const std::vector< std::string > &names)=0
 Read multiple parameters from the camera.
 
virtual void Write (const Parameter &parameter)=0
 Write a single parameter to the camera.
 
virtual void Write (const std::vector< Parameter > &parameters)=0
 Write multiple parameters to the camera.
 
virtual std::vector< ParameterScan ()=0
 Scan all available parameters from the camera Re-scans the device parameter space, updates the namespace repository, and returns all discovered parameters.
 
virtual NativeDocument GetNativeParameterDocument () const
 Get native parameter document from camera (protocol-specific) For GenICam cameras, returns the XML register description. Default implementation returns empty NativeDocument (not supported).
 
virtual AcquisitionState GetAcquisitionState () const =0
 Get the current acquisition state.
 
virtual void StartAcquisition (std::optional< int64_t > frame_count=std::nullopt)=0
 Start frame acquisition.
 
virtual void StopAcquisition ()=0
 Stop frame acquisition.
 
void SetAddress (const std::string &address)
 Set the camera address/URI for connection.
 
void SetTimeout (double timeout_seconds)
 Set the connection timeout.
 

Static Public Member Functions

static std::string ResolveAddress (const std::string &address, bool allow_device_id=false)
 

Protected Attributes

const std::chrono::duration< double_t > m_connect_timeout {std::chrono::seconds(10)}
 
std::string m_cam_address
 
std::chrono::duration< double_t > m_timeout
 
bool m_initialised {false}
 
std::chrono::time_point< std::chrono::system_clock > m_time_last_stop {common::TimeNow()}
 
std::chrono::time_point< std::chrono::system_clock > m_time_last_frame_recv {m_time_last_stop}
 
bool m_waiting_for_frame {false}
 

Constructor & Destructor Documentation

◆ AdapterBase()

camcom::common::AdapterBase::AdapterBase ( )

◆ ~AdapterBase()

camcom::common::AdapterBase::~AdapterBase ( )
virtual

Member Function Documentation

◆ CheckConnection()

virtual CheckResult camcom::common::AdapterBase::CheckConnection ( ) const
pure virtual

◆ Connect()

virtual std::map< std::string, Parameter > camcom::common::AdapterBase::Connect ( )
pure virtual

◆ Disconnect()

virtual void camcom::common::AdapterBase::Disconnect ( )
pure virtual

◆ GetAcquisitionState()

virtual AcquisitionState camcom::common::AdapterBase::GetAcquisitionState ( ) const
pure virtual

Get the current acquisition state.

Returns
AcquisitionState with mode, remaining frames (if finite), and current FPS

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ GetBasicParams()

virtual BasicParams camcom::common::AdapterBase::GetBasicParams ( ) const
pure virtual

Get basic camera parameters in standardized units. Adapters read their native parameters and convert to common units.

Returns
BasicParams struct with timing, geometry, and buffer info

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ GetNativeParameterDocument()

virtual NativeDocument camcom::common::AdapterBase::GetNativeParameterDocument ( ) const
inlinevirtual

Get native parameter document from camera (protocol-specific) For GenICam cameras, returns the XML register description. Default implementation returns empty NativeDocument (not supported).

Returns
NativeDocument with content and extension, or empty if not supported

Reimplemented in camcom::genicam::GenICamAdapter.

◆ GetProtocol()

virtual std::string camcom::common::AdapterBase::GetProtocol ( ) const
pure virtual

Get the protocol name used by this adapter.

Returns
Protocol identifier string (e.g., "CamComSim", "GenICam", "CameraLink")

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ Initialise()

void camcom::common::AdapterBase::Initialise ( const ReceiveCfg & cfg)
virtual

◆ IsConnected()

virtual bool camcom::common::AdapterBase::IsConnected ( ) const
pure virtual

◆ Read() [1/2]

virtual Parameter camcom::common::AdapterBase::Read ( const std::string & name)
pure virtual

Read a single parameter from the camera.

Parameters
nameName of the parameter to read
Returns
Parameter object with current value from camera
Exceptions
std::runtime_errorif parameter not found or read fails

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ Read() [2/2]

virtual std::vector< Parameter > camcom::common::AdapterBase::Read ( const std::vector< std::string > & names)
pure virtual

Read multiple parameters from the camera.

Parameters
namesVector of parameter names to read
Returns
Vector of Parameter objects with current values from camera
Exceptions
std::runtime_errorif any parameter not found or read fails

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ ReceiveFrame()

virtual void camcom::common::AdapterBase::ReceiveFrame ( bool & received_frame,
uint64_t max_size,
std::span< uint8_t > & data,
FrameInfo & frame_info )
pure virtual

◆ ResolveAddress()

std::string camcom::common::AdapterBase::ResolveAddress ( const std::string & address,
bool allow_device_id = false )
static

◆ Scan()

virtual std::vector< Parameter > camcom::common::AdapterBase::Scan ( )
pure virtual

Scan all available parameters from the camera Re-scans the device parameter space, updates the namespace repository, and returns all discovered parameters.

Returns
Vector of all available parameters with current values

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ SetAddress()

void camcom::common::AdapterBase::SetAddress ( const std::string & address)
inline

Set the camera address/URI for connection.

Parameters
addressCamera address (IP, serial number, URI, etc.)

◆ SetTimeout()

void camcom::common::AdapterBase::SetTimeout ( double timeout_seconds)
inline

Set the connection timeout.

Parameters
timeout_secondsTimeout in seconds

◆ StartAcquisition()

virtual void camcom::common::AdapterBase::StartAcquisition ( std::optional< int64_t > frame_count = std::nullopt)
pure virtual

Start frame acquisition.

Parameters
frame_countNumber of frames to acquire, or std::nullopt for continuous
  • std::nullopt: Continuous mode (stream until StopAcquisition)
  • value > 0: Finite mode (acquire exactly N frames then stop)

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ StopAcquisition()

virtual void camcom::common::AdapterBase::StopAcquisition ( )
pure virtual

◆ Write() [1/2]

virtual void camcom::common::AdapterBase::Write ( const Parameter & parameter)
pure virtual

Write a single parameter to the camera.

Parameters
parameterParameter object containing name, value, and type to write
Exceptions
std::runtime_errorif parameter not found or write fails

Implemented in camcom::common::TestAdapter, camcom::genicam::GenICamAdapter, camcom::genicam::GenICamEmulator, camcom::server::MockAdapter, and camcom::sim::SimAdapter.

◆ Write() [2/2]

virtual void camcom::common::AdapterBase::Write ( const std::vector< Parameter > & parameters)
pure virtual

Write multiple parameters to the camera.

Parameters
parametersVector of Parameter objects to write
Exceptions
std::runtime_errorif any parameter not found or write fails

Implemented in camcom::common::TestAdapter.

Member Data Documentation

◆ m_cam_address

std::string camcom::common::AdapterBase::m_cam_address
protected

◆ m_connect_timeout

const std::chrono::duration<double_t> camcom::common::AdapterBase::m_connect_timeout {std::chrono::seconds(10)}
protected

◆ m_initialised

bool camcom::common::AdapterBase::m_initialised {false}
protected

◆ m_time_last_frame_recv

std::chrono::time_point<std::chrono::system_clock> camcom::common::AdapterBase::m_time_last_frame_recv {m_time_last_stop}
protected

◆ m_time_last_stop

std::chrono::time_point<std::chrono::system_clock> camcom::common::AdapterBase::m_time_last_stop {common::TimeNow()}
protected

◆ m_timeout

std::chrono::duration<double_t> camcom::common::AdapterBase::m_timeout
protected

◆ m_waiting_for_frame

bool camcom::common::AdapterBase::m_waiting_for_frame {false}
protected

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