Go to the documentation of this file.
5 #ifndef CCF_COMMON_COM_ADPT_BASE_HPP_H_
6 #define CCF_COMMON_COM_ADPT_BASE_HPP_H_
8 #include <core/utils/param/parameter.hpp>
50 const std::string&
GetId()
const;
74 LOG4CPLUS_TRACE_METHOD(
Logger(), __PRETTY_FUNCTION__);
75 std::string tmp_value;
78 core::utils::conversion::Convert(tmp_value, ret_value);
81 CCFTHROW(
"Requesting undefined device property: " + property);
114 std::string& message);
162 void Read(
const std::string& name,
163 core::utils::param::Parameter& par);
168 void Read(
const std::vector<std::string>& names,
169 std::vector<core::utils::param::Parameter>& pars);
174 std::string
Read(
const std::string& name);
178 template <
class TYPE>
179 TYPE
Read(
const std::string& name) {
180 LOG4CPLUS_TRACE_METHOD(
Logger(), __PRETTY_FUNCTION__);
181 core::utils::param::Parameter par;
184 core::utils::conversion::Convert(par.GetValue(), native_value);
191 void Write(
const core::utils::param::Parameter& par);
195 void Write(
const std::vector<core::utils::param::Parameter>& pars);
198 template <
class TYPE>
199 void Write(
const std::string& name,
const TYPE& value) {
200 LOG4CPLUS_TRACE_METHOD(
Logger(), __PRETTY_FUNCTION__);
201 core::utils::param::Parameter tmp_par(name, value);
215 bool& frame_received,
216 const double timeout,
220 void Scan(std::vector<core::utils::param::Parameter>& pars);
271 std::string& message);
299 virtual void ReadUser(
const std::string& name,
300 core::utils::param::Parameter& par);
305 virtual void ReadUser(
const std::vector<std::string>& names,
306 std::vector<core::utils::param::Parameter>& pars);
311 bool& frame_received,
312 const double timeout,
317 virtual void ScanUser(std::vector<core::utils::param::Parameter>& pars);
329 virtual void WriteUser(
const core::utils::param::Parameter& par);
334 virtual void WriteUser(
const std::vector<core::utils::param::Parameter>& pars);
357 bool m_is_sim_adapter;
358 std::string m_device_address;
359 int16_t m_device_array_width;
360 int16_t m_device_array_height;
361 int8_t m_device_pixel_resolution;
362 std::string m_host_address;
363 bool m_allow_lost_frames;
364 uint64_t m_lost_frames_count;
367 double m_min_acq_period;
368 double m_time_last_frame;
370 std::map<std::string, core::utils::param::Parameter> m_device_property_registry;
375 #endif // CCF_COMMON_COM_ADPT_BASE_HPP_H_
Class to be used as parent all CCF classes.
Definition: base.hpp:151
const std::string & GetDeviceAddress() const
Return the address from the configuration.
Definition: comAdptBase.cpp:467
virtual void DisconnectUser()
Definition: comAdptBase.cpp:411
#define CCFTHROW(msg)
Guard for TRACE logs. Ensures log text is only generated when the given log level is enabled.
Definition: base.hpp:501
virtual void HandleSetupUser()
Definition: comAdptBase.cpp:524
const int16_t GetDeviceHeight() const
Return the height of the data array from the configuration.
Definition: comAdptBase.cpp:477
void SetIsConnected(const bool connected)
Definition: comAdptBase.cpp:292
void SetDeviceAddress(const std::string &address)
Set the internal address, e.g. URI, used for communicating with the device.
Definition: comAdptBase.cpp:64
void Receive(ccf::common::DataFrame &frame, bool &frame_received, const double timeout, bool &timed_out)
Definition: comAdptBase.cpp:260
void Stop()
Stop the image acquisition in the device.
Definition: comAdptBase.cpp:329
virtual void WriteDefaultSetupUser()
Definition: comAdptBase.cpp:191
virtual void WriteUser(const core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:455
void ResetLostFramesCount()
Reset the lost frames counter.
Definition: comAdptBase.cpp:673
void Disconnect()
Disconnect from the device.
Definition: comAdptBase.cpp:208
TYPE Read(const std::string &name)
Definition: comAdptBase.hpp:179
void HandleSetup()
Definition: comAdptBase.cpp:519
void MapParFromDevice(core::utils::param::Parameter &par) const
Definition: comAdptBase.cpp:543
bool m_is_connected
Definition: comAdptBase.hpp:353
void HandleParPostRead(core::utils::param::Parameter &par)
Invoked before reading a parameter from the device, in case speciel handling is needed.
Definition: comAdptBase.cpp:497
uint64_t IncLostFramesCount()
Increment the counter of lost frames. The new value is returned.
Definition: comAdptBase.cpp:663
Definition: config.hpp:20
void CheckConnection(bool &connected)
Check if the connection to the device is OK.
Definition: comAdptBase.cpp:76
virtual void InitialiseUser()
Definition: comAdptBase.cpp:141
virtual void WriteDevicePropsUser()
Definition: comAdptBase.cpp:173
void Initialise(const bool re_init=false)
Definition: comAdptBase.cpp:96
virtual void ScanUser(std::vector< core::utils::param::Parameter > &pars)
Definition: comAdptBase.cpp:440
bool GetIsSimAdapter() const
Return the Simulation Adapter Flag.
Definition: comAdptBase.cpp:39
const int16_t GetDeviceWidth() const
Return the width of the data array from the configuration.
Definition: comAdptBase.cpp:472
virtual bool IsConnectedUser() const
Definition: comAdptBase.cpp:49
void HandleParPreWrite(core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:487
virtual void ConnectUser()
Definition: comAdptBase.cpp:406
HwStatus
HW status values.
Definition: base.hpp:195
virtual void ReadUser(const std::string &name, core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:416
const std::string & GetProtocol() const
Return the communication protocol used.
Definition: comAdptBase.cpp:54
virtual void SetDeviceAddressUser(const std::string &address)
Definition: comAdptBase.cpp:390
const int8_t GetDeviceResolution() const
Return the resolution of the data elements. from the configuration.
Definition: comAdptBase.cpp:482
virtual void StartUser()
Definition: comAdptBase.cpp:445
virtual bool HasDevicePropertyUser(const std::string &property, std::string &value)
Definition: comAdptBase.cpp:642
bool HasNameMapping(const std::string &name) const
Return true if a mapping is defined in the Device Name Mapping for the given name.
Definition: comAdptBase.cpp:554
void HandleParPostWrite(core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:492
void Write(const std::string &name, const TYPE &value)
Template method to write a parameter, taking care of converting the user data into the internal type.
Definition: comAdptBase.hpp:199
std::string GetHostAddress()
void WriteDefaultSetup()
Definition: comAdptBase.cpp:185
void CheckStatus(ccf::HwStatus &status, std::string &message)
Check the status of the device (health status).
Definition: comAdptBase.cpp:85
ComAdptBase()
Definition: comAdptBase.cpp:21
void Start()
Start the image acquisition in the device.
Definition: comAdptBase.cpp:316
double GetTheoreticFrameRate()
Render the theoritic, possible achievable frame rate (frame/s).
Definition: comAdptBase.cpp:649
Implements a name mapping service, based on a Name Mapping File to be loaded and installed.
Definition: nameMapping.hpp:20
virtual void StopUser()
Definition: comAdptBase.cpp:450
virtual void CheckStatusUser(ccf::HwStatus &status, std::string &message)
Definition: comAdptBase.cpp:400
void LoadDeviceNameMapping(const std::string &name_mapping_file)
Definition: comAdptBase.cpp:514
bool GetAllowLostFrames() const
Return flag (cfg par) indicating if lost frames shall be ignored silently.
Definition: comAdptBase.cpp:136
Definition: appBase.cpp:8
virtual double GetTheoreticFrameRateUser()
Definition: comAdptBase.cpp:654
virtual void ReceiveUser(ccf::common::DataFrame &frame, bool &frame_received, const double timeout, bool &timed_out)
Definition: comAdptBase.cpp:432
const std::string & GetId() const
Get the ID of the associated device.
Definition: comAdptBase.cpp:59
void Write(const core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:341
virtual void HandleParPostWriteUser(core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:506
virtual ~ComAdptBase()
Definition: comAdptBase.cpp:30
void Connect()
Definition: comAdptBase.cpp:145
double GetMaxFrameRate() const
Get Maximim frame rate (Hz).
Definition: comAdptBase.cpp:678
bool IsConnected() const
Returns true if the connection to the device is established and valid.
Definition: comAdptBase.cpp:44
bool HasDeviceProperty(const std::string &property, std::string &value)
Definition: comAdptBase.cpp:606
virtual void HandleParPostReadUser(core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:510
void Scan(std::vector< core::utils::param::Parameter > &pars)
Scan the address of the associated device and store the parameters in the vector.
Definition: comAdptBase.cpp:298
void WriteDeviceProps()
Definition: comAdptBase.cpp:168
void SetHostAdddress(const std::string &host_address)
Set the address of the host (network interface) used for communication.
Definition: comAdptBase.cpp:591
virtual void HandleParPreWriteUser(core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:502
void SetIsSimAdapter(const bool is_sim)
Set the Simulation Adapter Flag.
Definition: comAdptBase.cpp:34
virtual void CheckConnectionUser(bool &connected)
Definition: comAdptBase.cpp:395
uint64_t GetLostFramesCount() const
Return the number of lost frames currently registered.
Definition: comAdptBase.cpp:668
Frame class used to store the data and metadata for one frames received from the camera.
Definition: dataFrame.hpp:17
TYPE GetDeviceProperty(const std::string &property)
Definition: comAdptBase.hpp:73
void Read(const std::string &name, core::utils::param::Parameter &par)
Definition: comAdptBase.cpp:221
void MapParForDevice(core::utils::param::Parameter &par) const
Definition: comAdptBase.cpp:549
log4cplus::Logger & Logger()
Definition: base.cpp:9
virtual const std::string & GetHostAddress()
Return the address of the host (network interface) used for communicating with the device.
Definition: comAdptBase.cpp:598
Class to be used as parent for CCF Communication Adapters.
Definition: comAdptBase.hpp:31