9#ifndef FGF_DVC_COM_ADAPTER_HPP_H_
10#define FGF_DVC_COM_ADAPTER_HPP_H_
17#include <condition_variable>
20#include <ifw/odp/cppcpl/imageCube.hpp>
21#include <ifw/odp/cppcpl/image.hpp>
23#include <ifw/fnd/tools/tools.hpp>
34 using DevCtrlEnumKey = std::variant<ifw::fgf::common::SetupParam::ParamEnum>;
38 return std::visit([](
auto&& arg) -> std::size_t {
39 return std::hash<std::underlying_type_t<std::decay_t<
decltype(arg)>>>()
40 (
static_cast<std::underlying_type_t<std::decay_t<decltype(arg)
>>>(arg));
50 return std::visit([](
auto&& arg) -> std::size_t {
51 return std::hash<std::underlying_type_t<std::decay_t<
decltype(arg)>>>()
52 (
static_cast<std::underlying_type_t<std::decay_t<decltype(arg)
>>>(arg));
94 virtual short Setup()
override;
97 virtual short Start()
override;
100 virtual short Stop()
override;
103 virtual short Reset()
override;
110 virtual short SetLogLevel(std::string& level, std::string& logger)
override;
116 void StartAcqThread();
117 void StopAcqThread();
118 void FillDataVectors();
119 void SerialiseDataInt(
const ifw::odp::Image& image, std::vector<uint8_t>& datavec)
const;
138 std::vector<std::vector<uint8_t>> m_image_data_vector;
141 static std::atomic<bool> m_stopped;
142 std::atomic<bool> m_acq_active{
false};
143 std::atomic<bool> m_acq_running{
false};
146 std::thread m_acq_thread;
147 std::string m_filename;
150 log4cplus::Logger m_logger;
152 double m_sim_im_acq_period{0.0};
153 ifw::fnd::tools::LoopFrequencyCalculator m_frame_rate_calculator;
Abstract base class for implementing FGF Communication Adapters.
Definition iCommAdapter.hpp:24
RTMS Publisher.
Definition rtmsPublisher.hpp:39
virtual void Disconnect()
Disconnect from the camera.
Definition commAdaptor.cpp:80
virtual ~CommAdapter()
Definition commAdaptor.cpp:45
CommAdapter(ifw::fgf::common::RtmsPublisher &publisher, const std::string &filename)
Definition commAdaptor.cpp:35
void WaitForEmptyQueue(const int timeout_ms) const
Definition commAdaptor.cpp:730
virtual void Read(ifw::fgf::common::VectorVariant ¶ms) const override
Read a generic set of attributes.
Definition commAdaptor.cpp:450
std::shared_ptr< ifw::fgf::common::RawImage > m_raw_image
Definition commAdapter.hpp:128
virtual void Initialise()
Initialise camera SDK.
Definition commAdaptor.cpp:54
int m_img_bpp
Definition commAdapter.hpp:129
virtual short Reset() override
Reset frame grabber.
Definition commAdaptor.cpp:318
virtual short SetLogLevel(std::string &level, std::string &logger) override
Set the logging level for a (log4cplus) logger.
Definition commAdaptor.cpp:346
virtual short Setup() override
Setup image acquisition.
Definition commAdaptor.cpp:203
int m_img_height
Definition commAdapter.hpp:131
virtual bool IsConnected() const
IsConnected.
Definition commAdaptor.cpp:68
virtual void Connect()
Connect to camera.
Definition commAdaptor.cpp:73
virtual short Stop() override
Stop image acquisition.
Definition commAdaptor.cpp:282
int m_img_width
Definition commAdapter.hpp:130
virtual void CheckConnection(bool &connected)
CheckConnection.
Definition commAdaptor.cpp:64
virtual void Write(const ifw::fgf::common::VectorVariant ¶ms) override
Write a set of attributes.
Definition commAdaptor.cpp:476
virtual std::string GetLoggers() override
Return the set of (log4cplus) loggers currently in use.
Definition commAdaptor.cpp:332
virtual short Start() override
Start image acquisition.
Definition commAdaptor.cpp:234
std::variant< bool, int, unsigned int, short, double, std::string > Variant
Definition setupParam.hpp:21
std::vector< PairVariant > VectorVariant
Definition setupParam.hpp:24
std::pair< std::string, Variant > PairVariant
Definition setupParam.hpp:23
Definition commAdaptor.cpp:28
std::variant< ifw::fgf::common::SetupParam::ParamEnum > DevCtrlEnumKey
Definition commAdapter.hpp:34
std::variant< ifw::fgf::common::StatusParam::StatusEnum, ifw::fgf::common::SetupParam::ParamEnum > DevStatEnumKey
Definition commAdapter.hpp:45
RTMS image publisher class.
Frame Grabber Camera Base Class definitions.
Abstract base class for implementing FGF Communication Adapters.
Image class for handling images from the camera.
Structure to hold camera setup parameters.
Definition camBase.hpp:27
Structure to hold camera status parameters.
Definition camBase.hpp:43
ParamEnum
Definition setupParam.hpp:42
StatusEnum
Status ("stat" category) parameters enums.
Definition statusParam.hpp:42
Definition commAdapter.hpp:36
std::size_t operator()(const DevCtrlEnumKey &key) const
Definition commAdapter.hpp:37
Definition commAdapter.hpp:48
std::size_t operator()(const DevStatEnumKey &key) const
Definition commAdapter.hpp:49