ifw-ccf 6.0.0
 
Loading...
Searching...
No Matches
comAdptGenICam.hpp
Go to the documentation of this file.
1
22
23#ifndef CCF_PROTOCOLS_GENICAM_COM_ADPT_GENICAM_HPP_H_
24#define CCF_PROTOCOLS_GENICAM_COM_ADPT_GENICAM_HPP_H_
25
26#include <memory>
27#include <span>
28#include <string>
29#include <vector>
30
31#include <ifw/fnd/defs/dataType.hpp>
32#include <ifw/core/utils/param/parameter.hpp>
33
36
37// camcom — only the abstract base + value types are needed in the header; the
38// concrete GenICamAdapter (which links Aravis) is created in the .cpp.
39#include <camcom/common/adapterBase.hpp>
40#include <camcom/common/parameter.hpp>
41#include <camcom/common/datatype.hpp>
42#include <camcom/common/frameInfo.hpp>
43#include <camcom/common/receiveCfg.hpp>
44
46
49 public:
51 ~ComAdptGenICam() override;
52
55
56 // --- Lifecycle / connection ---
57 void InitialiseUser() override;
58 void SetDeviceAddressUser(const std::string& address) override;
59 void ConnectUser() override;
60 void DisconnectUser() override;
61 void CheckConnectionUser(bool& connected) override;
62 bool IsConnectedUser() const override;
63 void CheckStatusUser(ifw::ccf::HwStatus& status, std::string& message) override;
64
65 // --- Parameters ---
66 void ReadUser(const std::string& name,
67 ifw::core::utils::param::Parameter& par) override;
68 void WriteUser(const ifw::core::utils::param::Parameter& par) override;
69 void ScanUser(std::vector<ifw::core::utils::param::Parameter>& pars) override;
70
71 // --- Acquisition ---
72 void StartUser() override;
73 void StopUser() override;
75 bool& frame_received,
76 const double timeout,
77 bool& timed_out) override;
78
79 private:
80 // --- Type translation seam (implemented in parameterConversion.cpp) ---
81 static camcom::common::Parameter
82 CcfToCamCom(const ifw::core::utils::param::Parameter& ccf_par);
83 // Infer a numeric camcom type (int/double, else string) from an untyped
84 // value string — used for setup parameters that arrive without a CCF
85 // DataType, so a numeric GenICam node isn't handed a string. See
86 // CcfToCamCom for the why.
87 static camcom::common::Parameter
88 InferTypedParam(const std::string& name, const std::string& value);
89 static ifw::core::utils::param::Parameter
90 CamComToCcf(const camcom::common::Parameter& camcom_par);
91
92 // Copy a received camcom frame (span + FrameInfo) into a CCF DataFrame
93 // (implemented in acquisition.cpp).
94 void StoreFrame(std::span<uint8_t> data,
95 const camcom::common::FrameInfo& info,
97
98 // The camcom GenICam adapter doing the real work. Held as the abstract
99 // base so this header doesn't pull in the Aravis-linked concrete type.
100 std::unique_ptr<camcom::common::AdapterBase> m_camcom;
101
102 // Reusable receive buffer (camcom ReceiveFrame writes into a span we own).
103 std::vector<uint8_t> m_frame_buffer;
104 };
105
106} // namespace ifw::ccf::protocols::genicam
107
108#endif // CCF_PROTOCOLS_GENICAM_COM_ADPT_GENICAM_HPP_H_
Class to be used as parent for CCF Communication Adapters.
Definition comAdptBase.hpp:48
Frame class used to store the data and metadata for one frames received from the camera.
Definition dataFrame.hpp:20
void WriteUser(const ifw::core::utils::param::Parameter &par) override
Definition parameterConversion.cpp:155
ComAdptGenICam()
Definition comAdptGenICam.cpp:21
void SetDeviceAddressUser(const std::string &address) override
Definition comAdptGenICam.cpp:52
void ReceiveUser(ifw::ccf::common::DataFrame &frame, bool &frame_received, const double timeout, bool &timed_out) override
Definition acquisition.cpp:38
void InitialiseUser() override
Definition comAdptGenICam.cpp:40
ComAdptGenICam & operator=(const ComAdptGenICam &)=delete
void DisconnectUser() override
Definition comAdptGenICam.cpp:80
~ComAdptGenICam() override
Definition comAdptGenICam.cpp:25
void ConnectUser() override
Definition comAdptGenICam.cpp:66
void ScanUser(std::vector< ifw::core::utils::param::Parameter > &pars) override
Definition parameterConversion.cpp:163
void StartUser() override
Definition acquisition.cpp:19
void StopUser() override
Definition acquisition.cpp:30
void CheckConnectionUser(bool &connected) override
Definition comAdptGenICam.cpp:88
void CheckStatusUser(ifw::ccf::HwStatus &status, std::string &message) override
Definition comAdptGenICam.cpp:108
ComAdptGenICam(const ComAdptGenICam &)=delete
bool IsConnectedUser() const override
Definition comAdptGenICam.cpp:104
void ReadUser(const std::string &name, ifw::core::utils::param::Parameter &par) override
Definition parameterConversion.cpp:145
Definition acquisition.cpp:17
HwStatus
HW status values.
Definition base.hpp:152