5#ifndef CCF_COMMON_BASE_HPP_H_
6#define CCF_COMMON_BASE_HPP_H_
12#include <fmt/format.h>
14#include <boost/exception/diagnostic_information.hpp>
16#include <config-ng/ciiConfigApi.hpp>
20#include <ifw/fnd/defs/dataType.hpp>
22#include <ifw/core/utils/base/base.hpp>
23#include <ifw/core/utils/system/system.hpp>
24#include <ifw/core/utils/time/time.hpp>
25#include <ifw/core/utils/conversion/conversion.hpp>
26#include <ifw/core/utils/bat/config.hpp>
37 log4cplus::Logger&
Logger();
49 const std::string
DB_DELIM = std::string(ifw::core::utils::bat::CONFIG_DB_DELIMITER);
103 const std::string& sender_thread_name,
104 const std::string& receiver_thread_name,
105 const std::string& data);
109 const double time_out,
116 std::string& sum_state,
117 std::string& sum_substate);
141 std::string m_class_name;
146 const std::string&
object,
147 const std::string& location);
179 ACTIVE = recif::RecStatusNames::Active,
180 COMPLETED = recif::RecStatusNames::Completed,
181 STOPPED = recif::RecStatusNames::Stopped,
182 ABORTED = recif::RecStatusNames::Aborted,
183 FAILED = recif::RecStatusNames::Failed,
184 UNDEFINED = recif::RecStatusNames::Undefined
189 const recif::RecStatusNames rec_status = recif::RecStatusNames::Undefined);
192 void CopyRecStatusObj(
const std::shared_ptr<recif::RecStatus>& src_rec_status_obj,
193 const std::shared_ptr<recif::RecStatus>& trg_rec_status_obj);
339 std::string
BuildKey(
const std::vector<std::string>& elements);
342 std::vector<std::string>
SplitKey(
const std::string& key);
346#define CCFTIME ifw::core::utils::time::Time()
357#define CCFDEBUG(msg) \
359 fmt::print(stdout, "CCF-DEBUG#####>>>>> {}: {}\n", IFWLOC, msg); \
360 std::fflush(stdout); \
366#define CCFTHROW(msg) throw rad::Exception(IFWLOC + ": " + msg)
Class to be used as parent all CCF classes.
Definition base.hpp:120
static ifw::ccf::mptk::Manager & Mptk()
Return reference to internal MPTK instance (singleton).
Definition base.hpp:124
void SetClassName(const std::string &class_name)
Set the name of the class in question.
Definition base.cpp:129
const std::string & GetClassName() const
Return the allocated name of the class.
Definition base.cpp:124
~Base()
Definition base.cpp:122
Base()
Definition base.cpp:120
IFW CTD Multiprocessing Toolkit Manager class.
Definition manager.hpp:21
IFW CTD Multiprocessing Toolkit Message class.
Definition message.hpp:24
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:189
constexpr auto SETUP_KEY_NOISE
Definition base.hpp:287
constexpr auto PUB_STAT_NAME_COMPLETED
Definition base.hpp:325
constexpr auto META_KEY_CAM_ID
Definition base.hpp:77
constexpr auto SETUP_KEY_PORT
Definition base.hpp:288
constexpr auto CFG_KEY_ID
Definition base.hpp:231
constexpr auto SETUP_KEY_FILE
Definition base.hpp:275
constexpr auto CFG_KEY_MODEL
Definition base.hpp:240
constexpr auto META_KEY_EXPO_WIN_BINX
Definition base.hpp:71
constexpr auto STATE_ON_OP_ACQ_REC
Definition base.hpp:90
constexpr auto CFG_KEY_NAME
Definition base.hpp:241
constexpr auto SETUP_KEY_ADDRESS
Definition base.hpp:269
constexpr auto SETUP_KEY_INTERFACE
Definition base.hpp:279
constexpr auto SETUP_KEY_RATE
Definition base.hpp:286
SimType
Simulation type.
Definition base.hpp:311
constexpr auto SIM_TYPE_PATTERN1_STR
Definition base.hpp:319
PubStatus
Defines the various possible states of a Data Publisher.
Definition base.hpp:178
log4cplus::Logger & FastLogger()
Definition base.cpp:34
const std::string DB_NODE_SM_STATE
Definition base.hpp:56
constexpr auto SETUP_KEY_FORMAT
Definition base.hpp:276
constexpr auto PUB_STAT_NAME_FAILED
Definition base.hpp:328
log4cplus::Logger & Logger()
Definition base.cpp:23
constexpr auto CFG_KEY_PUBLISHERS
Definition base.hpp:250
constexpr auto STATE_ON_OP_ACQ_NOT_REC
Definition base.hpp:89
constexpr auto SIM_TYPE_FILE_STR
Definition base.hpp:318
constexpr auto CFG_KEY_NB_OF_SAMPLES
Definition base.hpp:243
constexpr auto CFG_KEY_WRITE_ON_INIT
Definition base.hpp:261
constexpr auto CFG_KEY_ALLOW_LOST_FRAMES
Definition base.hpp:226
const std::string DB_DELIM
Definition base.hpp:49
ExpoMode ExpoModeToNb(const std::string &expo_mode)
Convert exposure mode from number representation to string.
Definition base.cpp:134
constexpr auto CFG_KEY_ALLOW_FRAME_SKIPPING
Definition base.hpp:225
constexpr auto SETUP_KEY_BIN_X
Definition base.hpp:271
constexpr auto CFG_KEY_MAPPING
Definition base.hpp:235
constexpr auto CFG_KEY_NAMES
Definition base.hpp:242
constexpr auto CFG_KEY_PIPELINE
Definition base.hpp:247
constexpr auto META_KEY_EXPO_WIN_STARTY
Definition base.hpp:74
constexpr auto META_KEY_EXPO_TIME
Definition base.hpp:70
constexpr auto PUB_STAT_NAME_STOPPED
Definition base.hpp:326
constexpr auto STATE_ON_NOT_OP_READY
Definition base.hpp:86
constexpr auto CFG_KEY_AUTO_ADJUST_TIME_RATE
Definition base.hpp:224
constexpr auto SETUP_KEY_FRAME_RATE_LIMIT
Definition base.hpp:278
ThreadType
Definition base.hpp:93
constexpr auto CFG_NODE_PROCESSING
Definition base.hpp:217
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:171
constexpr auto SETUP_KEY_WIN_START_X
Definition base.hpp:291
const std::string DB_NODE_SM_STATUS_SUBSTATE
Definition base.hpp:54
constexpr auto CFG_KEY_METADATA_MAP
Definition base.hpp:238
constexpr auto CFG_NODE_TELEMETRY
Definition base.hpp:216
constexpr auto CFG_KEY_OLDB_NODE
Definition base.hpp:244
constexpr auto META_KEY_EXPO_RATE
Definition base.hpp:69
constexpr auto CCF_VERSION
Version of CCF.
Definition base.hpp:41
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:57
constexpr auto SETUP_KEY_MODE
Definition base.hpp:284
constexpr auto PUB_STAT_NAME_ABORTED
Definition base.hpp:327
constexpr auto CFG_NODE_RECORDING
Definition base.hpp:218
std::string RecStatusNameToStr(recif::RecStatusNames rec_status_nb)
Recording Status name, number to string representation.
Definition base.cpp:166
constexpr auto SETUP_NODE_SIM
Definition base.hpp:267
constexpr auto SETUP_NODE_EXPO
Definition base.hpp:266
constexpr auto CFG_KEY_INIT_SETUP
Definition base.hpp:232
constexpr auto CFG_KEY_PROPERTIES
Definition base.hpp:248
constexpr auto CFG_KEY_MAX_RATE
Definition base.hpp:236
constexpr auto CFG_NODE_SERVER
Definition base.hpp:219
std::string StatusToStr(ifw::ccf::Status status)
Convert the status from number to string.
Definition base.cpp:146
constexpr auto SETUP_KEY_BIN_Y
Definition base.hpp:272
constexpr auto SETUP_KEY_MAX_RATE
Definition base.hpp:280
const std::string DB_NODE_SM_STATUS_STATE
Definition base.hpp:52
constexpr auto META_KEY_EXPO_WIN_STARTX
Definition base.hpp:73
constexpr auto CFG_KEY_MANUFACTURER
Definition base.hpp:234
constexpr auto META_KEY_SYSTEM
Definition base.hpp:75
ExpoMode
Exposure modes.
Definition base.hpp:206
constexpr auto SETUP_KEY_DELAY
Definition base.hpp:273
constexpr auto CFG_KEY_ENABLED
Definition base.hpp:228
constexpr auto CFG_KEY_MAX_RESOLUTION
Definition base.hpp:237
constexpr auto EXPO_MODE_FINITE
Definition base.hpp:299
constexpr auto SUCCESS
Definition base.hpp:163
constexpr auto CFG_KEY_HEIGHT
Definition base.hpp:230
constexpr auto CFG_KEY_VALUE
Definition base.hpp:259
constexpr auto CFG_KEY_REC_HIST_SIZE
Definition base.hpp:253
constexpr auto CFG_KEY_SDK
Definition base.hpp:255
constexpr auto CFG_KEY_OUPUT_QUEUE_SIZE
Definition base.hpp:245
constexpr auto CFG_KEY_ADAPTER
Definition base.hpp:222
ProcStatus
Possible states for a Processing Recipe defined.
Definition base.hpp:196
constexpr auto CFG_KEY_INPUT_QUEUE_SIZE
Definition base.hpp:233
std::string PubStatusNameToStr(PubStatus pub_status_nb)
Publisher status, number representation to string.
Definition base.cpp:154
constexpr auto CFG_KEY_TYPE
Definition base.hpp:258
constexpr auto REC_ID_PREFIX
Definition base.hpp:305
std::string ccf_application_name
constexpr auto SETUP_KEY_TYPE
Definition base.hpp:290
constexpr auto SETUP_KEY_MAX_SIZE
Definition base.hpp:283
constexpr auto META_KEY_EXPO_WIN_BINY
Definition base.hpp:72
std::vector< std::string > SplitKey(const std::string &key)
Split up a concatenated key.
Definition base.cpp:244
constexpr auto EXPO_MODE_INACTIVE
Definition base.hpp:301
constexpr auto SETUP_KEY_FRAME_RATE
Definition base.hpp:277
constexpr auto CFG_KEY_METADATA_KEY
Definition base.hpp:239
constexpr auto CFG_KEY_PERIOD
Definition base.hpp:246
constexpr auto STATE_ON_NOT_OP_NOT_READY
Definition base.hpp:85
constexpr auto CFG_KEY_SIM_ADDRESS
Definition base.hpp:257
constexpr auto STATE_ON_OP_IDLE
Definition base.hpp:87
constexpr auto SETUP_KEY_WIN_HEIGHT
Definition base.hpp:294
constexpr auto EXPO_MODE_CONTINUOUS
Definition base.hpp:300
constexpr auto CFG_KEY_RESOLUTION
Definition base.hpp:254
HwStatus
HW status values.
Definition base.hpp:150
constexpr auto CFG_NODE_ACQUISITION
Definition base.hpp:214
constexpr auto META_KEY_CAM_CHIPMODEL
Definition base.hpp:79
constexpr auto IFW_VERSION
Version of IFW.
Definition base.hpp:44
void DecomposeSmStatus(const std::string &sm_state, std::string &sum_state, std::string &sum_substate)
Definition base.cpp:206
constexpr auto SETUP_KEY_TIME
Definition base.hpp:289
constexpr auto SETUP_KEY_ENABLED
Definition base.hpp:274
constexpr auto SETUP_KEY_WIN_START_Y
Definition base.hpp:292
constexpr auto META_KEY_CAM_MODEL
Definition base.hpp:78
PubType
A Publisher may be Recording or Not-Recording. A Recording Publisher publishes data into files.
Definition base.hpp:171
constexpr auto META_KEY_CAM_TYPE
Definition base.hpp:80
constexpr auto STATE_ON_OP_ACQ
Definition base.hpp:88
void SetApplicationLogName(const std::string &app_name)
Definition base.cpp:15
constexpr auto META_KEY_CAM_NAME
Definition base.hpp:76
constexpr auto SETUP_KEY_BASENAME
Definition base.hpp:270
constexpr auto CFG_KEY_SIMULATION
Definition base.hpp:256
constexpr auto SETUP_KEY_MAX_SHIFT_PR_FRAME
Definition base.hpp:282
constexpr auto FAILURE
Definition base.hpp:164
constexpr auto CFG_KEY_ADDRESS
Definition base.hpp:223
constexpr auto PUB_STAT_NAME_UNDEFINED
Definition base.hpp:329
Status
General status variable.
Definition base.hpp:156
constexpr auto SETUP_KEY_MAX_SHIFT
Definition base.hpp:281
constexpr auto PUB_STAT_NAME_ACTIVE
Definition base.hpp:324
ifw::fnd::datatype::DataType CiiCfgNodeToIfwDataType(elt::configng::CiiConfigInstanceNode &node)
Determine IFW data type from a CII Cfg Node.
Definition base.cpp:75
constexpr auto SETUP_KEY_NB
Definition base.hpp:285
constexpr auto CFG_KEY_WIDTH
Definition base.hpp:260
constexpr auto CFG_NODE_MONITORING
Definition base.hpp:215
constexpr auto SETUP_KEY_WIN_WIDTH
Definition base.hpp:293
constexpr auto CFG_KEY_RECIPES
Definition base.hpp:251
constexpr auto CFG_KEY_PROTOCOL
Definition base.hpp:249
constexpr auto CFG_KEY_AUTO_STOP_ACQ_AFTER_REC
Definition base.hpp:227
constexpr auto CFG_KEY_DEVICES
Definition base.hpp:229
constexpr auto NO_VALUE
Definition base.hpp:46
std::string BuildKey(const std::vector< std::string > &elements)
Build a concatenated key from a number of elements (<el1>.<el2.>...).
Definition base.cpp:240
constexpr auto CFG_KEY_REC_HIST_EXP
Definition base.hpp:252
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:65
constexpr auto CFG_NODE_TASKS
Definition base.hpp:220
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:47
void PrintStackTrace()
Definition base.cpp:248