7#ifndef CCF_COMMON_BASE_HPP_H_
8#define CCF_COMMON_BASE_HPP_H_
14#include <fmt/format.h>
16#include <boost/exception/diagnostic_information.hpp>
18#include <config-ng/ciiConfigApi.hpp>
22#include <ifw/fnd/defs/dataType.hpp>
24#include <ifw/core/utils/base/base.hpp>
25#include <ifw/core/utils/system/system.hpp>
26#include <ifw/core/utils/time/time.hpp>
27#include <ifw/core/utils/conversion/conversion.hpp>
28#include <ifw/core/utils/bat/config.hpp>
39 log4cplus::Logger&
Logger();
51 const std::string
DB_DELIM = std::string(ifw::core::utils::bat::CONFIG_DB_DELIMITER);
105 const std::string& sender_thread_name,
106 const std::string& receiver_thread_name,
107 const std::string& data);
111 const double time_out,
118 std::string& sum_state,
119 std::string& sum_substate);
143 std::string m_class_name;
148 const std::string&
object,
149 const std::string& location);
191 const recif::RecStatusNames rec_status = recif::RecStatusNames::Undefined);
194 void CopyRecStatusObj(
const std::shared_ptr<recif::RecStatus>& src_rec_status_obj,
195 const std::shared_ptr<recif::RecStatus>& trg_rec_status_obj);
372 std::string
BuildKey(
const std::vector<std::string>& elements);
375 std::vector<std::string>
SplitKey(
const std::string& key);
379#define CCFTIME ifw::core::utils::time::Time()
390#define CCFDEBUG(msg) \
392 fmt::print(stdout, "CCF-DEBUG#####>>>>> {}: {}\n", IFWLOC, msg); \
393 std::fflush(stdout); \
399#define CCFTHROW(msg) throw rad::Exception(IFWLOC + ": " + msg)
static ifw::ccf::mptk::Manager & Mptk()
Return reference to internal MPTK instance (singleton).
Definition base.hpp:126
void SetClassName(const std::string &class_name)
Set the name of the class in question.
Definition base.cpp:130
const std::string & GetClassName() const
Return the allocated name of the class.
Definition base.cpp:125
~Base()
Definition base.cpp:123
Base()
Definition base.cpp:121
IFW CTD Multiprocessing Toolkit Manager class.
Definition manager.hpp:21
IFW CTD Multiprocessing Toolkit Message class.
Definition message.hpp:25
Definition appBase.cpp:10
void CopyRecStatusObj(const std::shared_ptr< recif::RecStatus > &src_rec_status_obj, const std::shared_ptr< recif::RecStatus > &trg_rec_status_obj)
Cope the members of one Recording Status Object to another.
Definition base.cpp:190
constexpr auto SETUP_KEY_NOISE
Definition base.hpp:290
GradientDir
Gradient direction.
Definition base.hpp:328
@ VERTICAL
Definition base.hpp:330
@ HORIZONTAL
Definition base.hpp:329
@ RADIAL
Definition base.hpp:331
constexpr auto PUB_STAT_NAME_COMPLETED
Definition base.hpp:358
constexpr auto META_KEY_CAM_ID
Definition base.hpp:79
constexpr auto SETUP_KEY_PORT
Definition base.hpp:291
constexpr auto CFG_KEY_ID
Definition base.hpp:234
constexpr auto SETUP_KEY_FILE
Definition base.hpp:278
constexpr auto CFG_KEY_MODEL
Definition base.hpp:243
constexpr auto META_KEY_EXPO_WIN_BINX
Definition base.hpp:73
constexpr auto STATE_ON_OP_ACQ_REC
Definition base.hpp:92
constexpr auto CFG_KEY_NAME
Definition base.hpp:244
constexpr auto SETUP_KEY_ADDRESS
Definition base.hpp:272
constexpr auto SETUP_KEY_INTERFACE
Definition base.hpp:282
constexpr auto SETUP_KEY_RATE
Definition base.hpp:289
SimType
Simulation type.
Definition base.hpp:314
@ GAUSSIAN
Definition base.hpp:316
@ NOISE
Definition base.hpp:323
@ GRATING
Definition base.hpp:324
@ MULTI_GAUSSIAN
Definition base.hpp:317
@ GRADIENT
Definition base.hpp:320
@ FILE
Definition base.hpp:315
@ GRID
Definition base.hpp:319
@ CHECKERBOARD
Definition base.hpp:322
@ RING
Definition base.hpp:321
@ FLAT
Definition base.hpp:318
PubStatus
Defines the various possible states of a Data Publisher.
Definition base.hpp:180
@ STOPPED
Definition base.hpp:183
@ ACTIVE
Definition base.hpp:181
@ ABORTED
Definition base.hpp:184
@ COMPLETED
Definition base.hpp:182
@ FAILED
Definition base.hpp:185
log4cplus::Logger & FastLogger()
Definition base.cpp:35
const std::string DB_NODE_SM_STATE
Definition base.hpp:58
constexpr auto SETUP_KEY_FORMAT
Definition base.hpp:279
constexpr auto PUB_STAT_NAME_FAILED
Definition base.hpp:361
constexpr auto SIM_TYPE_RING_STR
Definition base.hpp:349
constexpr auto SIM_TYPE_GAUSSIAN_STR
Definition base.hpp:344
log4cplus::Logger & Logger()
Definition base.cpp:24
constexpr auto CFG_KEY_PUBLISHERS
Definition base.hpp:253
constexpr auto STATE_ON_OP_ACQ_NOT_REC
Definition base.hpp:91
constexpr auto SIM_TYPE_FILE_STR
Definition base.hpp:343
constexpr auto CFG_KEY_NB_OF_SAMPLES
Definition base.hpp:246
constexpr auto CFG_KEY_WRITE_ON_INIT
Definition base.hpp:264
constexpr auto CFG_KEY_ALLOW_LOST_FRAMES
Definition base.hpp:228
const std::string DB_DELIM
Definition base.hpp:51
ExpoMode ExpoModeToNb(const std::string &expo_mode)
Convert exposure mode from number representation to string.
Definition base.cpp:135
constexpr auto CFG_KEY_ALLOW_FRAME_SKIPPING
Definition base.hpp:227
constexpr auto SETUP_KEY_BIN_X
Definition base.hpp:274
constexpr auto CFG_KEY_MAPPING
Definition base.hpp:238
constexpr auto CFG_KEY_NAMES
Definition base.hpp:245
constexpr auto CFG_KEY_PIPELINE
Definition base.hpp:250
constexpr auto META_KEY_EXPO_WIN_STARTY
Definition base.hpp:76
constexpr auto META_KEY_EXPO_TIME
Definition base.hpp:72
constexpr auto PUB_STAT_NAME_STOPPED
Definition base.hpp:359
constexpr auto STATE_ON_NOT_OP_READY
Definition base.hpp:88
constexpr auto CFG_KEY_AUTO_ADJUST_TIME_RATE
Definition base.hpp:226
constexpr auto SETUP_KEY_FRAME_RATE_LIMIT
Definition base.hpp:281
ThreadType
Definition base.hpp:95
@ PUBLISHER
Definition base.hpp:99
@ UNDEFINED
Definition base.hpp:100
@ ACQUISITION
Definition base.hpp:97
@ PROCESSING
Definition base.hpp:98
@ MONITOR
Definition base.hpp:96
constexpr auto CFG_NODE_PROCESSING
Definition base.hpp:219
void ResetRecStatusObj(std::shared_ptr< recif::RecStatus > &rec_status_obj, const recif::RecStatusNames rec_status)
Reset the members of the Recording Status Object.
Definition base.cpp:172
constexpr auto SETUP_KEY_WIN_START_X
Definition base.hpp:294
const std::string DB_NODE_SM_STATUS_SUBSTATE
Definition base.hpp:56
constexpr auto CFG_KEY_METADATA_MAP
Definition base.hpp:241
constexpr auto CFG_NODE_TELEMETRY
Definition base.hpp:218
constexpr auto CFG_KEY_OLDB_NODE
Definition base.hpp:247
constexpr auto META_KEY_EXPO_RATE
Definition base.hpp:71
constexpr auto CCF_VERSION
Version of CCF.
Definition base.hpp:43
bool ReceiveThrMsg(const std::string &receiver_thread_name, const double time_out, ifw::ccf::mptk::Message &message)
Receive a message from the given thread. Returns true if message received.
Definition base.cpp:58
constexpr auto SETUP_KEY_MODE
Definition base.hpp:287
constexpr auto PUB_STAT_NAME_ABORTED
Definition base.hpp:360
constexpr auto CFG_NODE_RECORDING
Definition base.hpp:220
constexpr auto SIM_TYPE_GRADIENT_STR
Definition base.hpp:348
std::string RecStatusNameToStr(recif::RecStatusNames rec_status_nb)
Recording Status name, number to string representation.
Definition base.cpp:167
constexpr auto CFG_KEY_DATA_TYPE
Definition base.hpp:231
constexpr auto SETUP_NODE_SIM
Definition base.hpp:270
constexpr auto SETUP_NODE_EXPO
Definition base.hpp:269
constexpr auto CFG_KEY_INIT_SETUP
Definition base.hpp:235
constexpr auto CFG_KEY_PROPERTIES
Definition base.hpp:251
constexpr auto CFG_KEY_MAX_RATE
Definition base.hpp:239
constexpr auto CFG_NODE_SERVER
Definition base.hpp:221
std::string StatusToStr(ifw::ccf::Status status)
Convert the status from number to string.
Definition base.cpp:147
constexpr auto SETUP_KEY_BIN_Y
Definition base.hpp:275
constexpr auto SETUP_KEY_MAX_RATE
Definition base.hpp:283
const std::string DB_NODE_SM_STATUS_STATE
Definition base.hpp:54
constexpr auto META_KEY_EXPO_WIN_STARTX
Definition base.hpp:75
constexpr auto CFG_KEY_MANUFACTURER
Definition base.hpp:237
constexpr auto META_KEY_SYSTEM
Definition base.hpp:77
ExpoMode
Exposure modes.
Definition base.hpp:208
@ INACTIVE
Definition base.hpp:211
@ CONTINUOUS
Definition base.hpp:210
@ FINITE
Definition base.hpp:209
constexpr auto SETUP_KEY_DELAY
Definition base.hpp:276
constexpr auto SIM_TYPE_CHECKERBOARD_STR
Definition base.hpp:350
constexpr auto CFG_KEY_ENABLED
Definition base.hpp:230
constexpr auto CFG_KEY_MAX_RESOLUTION
Definition base.hpp:240
constexpr auto EXPO_MODE_FINITE
Definition base.hpp:302
constexpr auto SUCCESS
Definition base.hpp:165
constexpr auto CFG_KEY_HEIGHT
Definition base.hpp:233
constexpr auto SIM_TYPE_MULTI_GAUSSIAN_STR
Definition base.hpp:345
constexpr auto CFG_KEY_VALUE
Definition base.hpp:262
constexpr auto SIM_TYPE_GRID_STR
Definition base.hpp:347
constexpr auto CFG_KEY_REC_HIST_SIZE
Definition base.hpp:256
constexpr auto CFG_KEY_SDK
Definition base.hpp:258
constexpr auto CFG_KEY_OUPUT_QUEUE_SIZE
Definition base.hpp:248
constexpr auto CFG_KEY_ADAPTER
Definition base.hpp:224
ProcStatus
Possible states for a Processing Recipe defined.
Definition base.hpp:198
@ FINISHED
Definition base.hpp:202
@ IDLE
Definition base.hpp:200
constexpr auto CFG_KEY_INPUT_QUEUE_SIZE
Definition base.hpp:236
std::string PubStatusNameToStr(PubStatus pub_status_nb)
Publisher status, number representation to string.
Definition base.cpp:155
constexpr auto SIM_TYPE_FLAT_STR
Definition base.hpp:346
constexpr auto CFG_KEY_TYPE
Definition base.hpp:261
constexpr auto REC_ID_PREFIX
Definition base.hpp:308
std::string ccf_application_name
Definition base.cpp:11
constexpr auto SETUP_KEY_TYPE
Definition base.hpp:293
constexpr auto SETUP_KEY_MAX_SIZE
Definition base.hpp:286
constexpr auto META_KEY_EXPO_WIN_BINY
Definition base.hpp:74
std::vector< std::string > SplitKey(const std::string &key)
Split up a concatenated key.
Definition base.cpp:245
constexpr auto EXPO_MODE_INACTIVE
Definition base.hpp:304
constexpr auto SETUP_KEY_FRAME_RATE
Definition base.hpp:280
constexpr auto CFG_KEY_METADATA_KEY
Definition base.hpp:242
constexpr auto CFG_KEY_PERIOD
Definition base.hpp:249
NoiseDist
Noise distribution type.
Definition base.hpp:335
@ UNIFORM
Definition base.hpp:338
@ POISSON
Definition base.hpp:337
constexpr auto STATE_ON_NOT_OP_NOT_READY
Definition base.hpp:87
constexpr auto CFG_KEY_SIM_ADDRESS
Definition base.hpp:260
constexpr auto STATE_ON_OP_IDLE
Definition base.hpp:89
constexpr auto SETUP_KEY_WIN_HEIGHT
Definition base.hpp:297
constexpr auto EXPO_MODE_CONTINUOUS
Definition base.hpp:303
constexpr auto CFG_KEY_RESOLUTION
Definition base.hpp:257
HwStatus
HW status values.
Definition base.hpp:152
@ NOT_OK
Definition base.hpp:153
@ OK
Definition base.hpp:154
constexpr auto CFG_NODE_ACQUISITION
Definition base.hpp:216
constexpr auto META_KEY_CAM_CHIPMODEL
Definition base.hpp:81
constexpr auto IFW_VERSION
Version of IFW.
Definition base.hpp:46
void DecomposeSmStatus(const std::string &sm_state, std::string &sum_state, std::string &sum_substate)
Definition base.cpp:207
constexpr auto SETUP_KEY_TIME
Definition base.hpp:292
constexpr auto SETUP_KEY_ENABLED
Definition base.hpp:277
constexpr auto SETUP_KEY_WIN_START_Y
Definition base.hpp:295
constexpr auto META_KEY_CAM_MODEL
Definition base.hpp:80
PubType
A Publisher may be Recording or Not-Recording. A Recording Publisher publishes data into files.
Definition base.hpp:173
@ RECORDING
Definition base.hpp:175
@ NOT_RECORDING
Definition base.hpp:176
constexpr auto META_KEY_CAM_TYPE
Definition base.hpp:82
constexpr auto STATE_ON_OP_ACQ
Definition base.hpp:90
void SetApplicationLogName(const std::string &app_name)
Definition base.cpp:16
constexpr auto META_KEY_CAM_NAME
Definition base.hpp:78
constexpr auto SIM_TYPE_GRATING_STR
Definition base.hpp:352
constexpr auto SETUP_KEY_BASENAME
Definition base.hpp:273
constexpr auto CFG_KEY_SIMULATION
Definition base.hpp:259
constexpr auto SETUP_KEY_MAX_SHIFT_PR_FRAME
Definition base.hpp:285
constexpr auto FAILURE
Definition base.hpp:166
constexpr auto CFG_KEY_ADDRESS
Definition base.hpp:225
constexpr auto PUB_STAT_NAME_UNDEFINED
Definition base.hpp:362
Status
General status variable.
Definition base.hpp:158
constexpr auto SETUP_KEY_MAX_SHIFT
Definition base.hpp:284
constexpr auto PUB_STAT_NAME_ACTIVE
Definition base.hpp:357
ifw::fnd::datatype::DataType CiiCfgNodeToIfwDataType(elt::configng::CiiConfigInstanceNode &node)
Determine IFW data type from a CII Cfg Node.
Definition base.cpp:76
constexpr auto SIM_TYPE_NOISE_STR
Definition base.hpp:351
constexpr auto SETUP_KEY_NB
Definition base.hpp:288
constexpr auto CFG_KEY_WIDTH
Definition base.hpp:263
constexpr auto CFG_NODE_MONITORING
Definition base.hpp:217
constexpr auto SETUP_KEY_WIN_WIDTH
Definition base.hpp:296
constexpr auto CFG_KEY_RECIPES
Definition base.hpp:254
constexpr auto CFG_KEY_PROTOCOL
Definition base.hpp:252
constexpr auto CFG_KEY_AUTO_STOP_ACQ_AFTER_REC
Definition base.hpp:229
constexpr auto CFG_KEY_DEVICES
Definition base.hpp:232
constexpr auto NO_VALUE
Definition base.hpp:48
std::string BuildKey(const std::vector< std::string > &elements)
Build a concatenated key from a number of elements (<el1>.<el2.>...).
Definition base.cpp:241
constexpr auto CFG_KEY_REC_HIST_EXP
Definition base.hpp:255
void AssertPtr(const void *ptr, const std::string &object, const std::string &location)
Check that pointer is not nullptr and raise rad::exception in case it is.
Definition base.cpp:66
constexpr auto CFG_NODE_TASKS
Definition base.hpp:222
void SendThrMsg(const std::string &command, const std::string &sender_thread_name, const std::string &receiver_thread_name, const std::string &data)
Send MPTK message via internal Message Bus.
Definition base.cpp:48
void PrintStackTrace()
Definition base.cpp:249