9#ifndef CAMCOM_COMMON_ADAPTERBASE_HPP
10#define CAMCOM_COMMON_ADAPTERBASE_HPP
79 virtual std::map<std::string, Parameter>
Connect() = 0;
114 bool allow_device_id =
false);
119 std::span<uint8_t>& data,
136 virtual std::vector<Parameter>
Read(
const std::vector<std::string>& names) = 0;
150 virtual void Write(
const std::vector<Parameter>& parameters) = 0;
158 virtual std::vector<Parameter>
Scan() = 0;
200 m_timeout = std::chrono::duration<double_t>(timeout_seconds);
209 std::chrono::time_point<std::chrono::system_clock>
Header file for the CamCom Common Library.
virtual std::vector< Parameter > Read(const std::vector< std::string > &names)=0
Read multiple parameters from the camera.
virtual void Disconnect()=0
std::chrono::duration< double_t > m_timeout
Definition adapterBase.hpp:207
virtual NativeDocument GetNativeParameterDocument() const
Get native parameter document from camera (protocol-specific) For GenICam cameras,...
Definition adapterBase.hpp:166
std::string m_cam_address
Definition adapterBase.hpp:206
virtual CheckResult CheckConnection() const =0
virtual ~AdapterBase()
Definition adapterBase.cpp:58
virtual Parameter Read(const std::string &name)=0
Read a single parameter from the camera.
virtual AcquisitionState GetAcquisitionState() const =0
Get the current acquisition state.
virtual std::string GetProtocol() const =0
Get the protocol name used by this adapter.
bool m_initialised
Definition adapterBase.hpp:208
const std::chrono::duration< double_t > m_connect_timeout
Definition adapterBase.hpp:204
std::chrono::time_point< std::chrono::system_clock > m_time_last_frame_recv
Definition adapterBase.hpp:211
virtual void ReceiveFrame(bool &received_frame, uint64_t max_size, std::span< uint8_t > &data, FrameInfo &frame_info)=0
AdapterBase()
Definition adapterBase.cpp:56
virtual void Initialise(const ReceiveCfg &cfg)
Definition adapterBase.cpp:87
bool m_waiting_for_frame
Definition adapterBase.hpp:212
virtual void Write(const Parameter ¶meter)=0
Write a single parameter to the camera.
virtual std::map< std::string, Parameter > Connect()=0
static std::string ResolveAddress(const std::string &address, bool allow_device_id=false)
Definition adapterBase.cpp:60
virtual void Write(const std::vector< Parameter > ¶meters)=0
Write multiple parameters to the camera.
virtual bool IsConnected() const =0
void SetTimeout(double timeout_seconds)
Set the connection timeout.
Definition adapterBase.hpp:199
std::chrono::time_point< std::chrono::system_clock > m_time_last_stop
Definition adapterBase.hpp:210
void SetAddress(const std::string &address)
Set the camera address/URI for connection.
Definition adapterBase.hpp:193
virtual std::vector< Parameter > Scan()=0
Scan all available parameters from the camera Re-scans the device parameter space,...
virtual void StartAcquisition(std::optional< int64_t > frame_count=std::nullopt)=0
Start frame acquisition.
virtual BasicParams GetBasicParams() const =0
Get basic camera parameters in standardized units. Adapters read their native parameters and convert ...
virtual void StopAcquisition()=0
Stop frame acquisition.
Definition frameInfo.hpp:23
Definition parameter.hpp:24
Definition receiveCfg.hpp:22
Header file for the CamCom Common Library.
Definition adapterBase.cpp:18
AcqMode
Acquisition mode states.
Definition adapterBase.hpp:31
@ Inactive
No acquisition in progress.
Definition adapterBase.hpp:32
@ Finite
Finite acquisition (specific frame count)
Definition adapterBase.hpp:34
@ Continuous
Continuous acquisition (no frame limit)
Definition adapterBase.hpp:33
std::chrono::time_point< std::chrono::system_clock > TimeNow()
Definition tools.cpp:19
Header file for the CamCom Common Library.
Header file for the CamCom Common Library.
Current acquisition state information.
Definition adapterBase.hpp:40
AcqMode mode
Definition adapterBase.hpp:41
std::optional< int64_t > remaining_frames
Set only if mode == Finite.
Definition adapterBase.hpp:42
double current_fps
Measured frame rate, 0 if unknown.
Definition adapterBase.hpp:43
Standardized basic camera parameters in common units.
Definition basicParams.hpp:38
Connection health check result.
Definition adapterBase.hpp:63
bool ok
Definition adapterBase.hpp:64
std::vector< std::string > diagnostics
Definition adapterBase.hpp:65
Native parameter document from camera (protocol-specific)
Definition adapterBase.hpp:49
std::string content
Document content (e.g., GenICam XML)
Definition adapterBase.hpp:50
std::string extension
File extension including dot (e.g., ".xml")
Definition adapterBase.hpp:51
bool available() const
Definition adapterBase.hpp:52