ifw-ccf  2.1.0-pre1
base.hpp
Go to the documentation of this file.
1 
5 #ifndef CCF_COMMON_BASE_HPP_H_
6 #define CCF_COMMON_BASE_HPP_H_
7 
8 #include <fmt/format.h>
9 
10 #include <boost/exception/diagnostic_information.hpp>
11 
12 #include <Recif.hpp>
13 #include <core/utils/base/base.hpp>
14 #include <core/utils/system/system.hpp>
15 #include <core/utils/time/time.hpp>
16 #include <core/utils/conversion/conversion.hpp>
17 #include <utils/bat/config.hpp>
18 
19 #include <ccf/mptk/manager.hpp>
20 #include <ccf/common/dataType.hpp>
21 
22 namespace ccf {
24 
26  enum class LogLevel {
27  OFF = 0,
28  FATAL = 100,
29  ERROR = 200,
30  WARN = 300,
31  INFO = 400,
32  DEBUG = 500,
33  DEBUG2 = 501,
34  DEBUG3 = 502,
35  TRACE = 600,
36  NOT_SET = -1
37  };
38 
40  // @{
41  namespace loglevel {
42  constexpr auto OFF = "OFF";
43  constexpr auto FATAL = "FATAL";
44  constexpr auto ERROR = "ERROR";
45  constexpr auto WARN = "WARN";
46  constexpr auto INFO = "INFO";
47  constexpr auto DEBUG = "DEBUG";
48  constexpr auto DEBUG2 = "DEBUG2";
49  constexpr auto DEBUG3 = "DEBUG3";
50  constexpr auto TRACE = "TRACE";
51  }
52  // @}
53 
54  inline LogLevel LogLevelToNb(const std::string& log_level) {
55  static std::map<std::string, LogLevel> s_log_level_str_to_nb_map =
61  try {
62  return s_log_level_str_to_nb_map[log_level];
63  } catch (...) {
64  throw std::runtime_error("Invalid log level given: " + log_level);
65  }
66  }
67 
68  inline std::string LogLevelToString(const LogLevel log_level) {
69  static std::map<LogLevel, std::string> s_log_level_nb_to_str_map =
75  return s_log_level_nb_to_str_map[log_level];
76  }
77 
79  constexpr auto CCF_VERSION = "1.2.0";
80 
82  constexpr auto IFW_VERSION = "4.0";
83 
84  constexpr auto NO_VALUE = "__NO__VALUE__";
85 
87  const std::string DB_DELIM = std::string(utils::bat::CONFIG_DB_DELIMITER);
88 
89  // @{
90  const std::string DB_NODE_SM_STATUS_STATE =
91  ("sm" + DB_DELIM + "status" + DB_DELIM + "state");
92  const std::string DB_NODE_SM_STATUS_SUBSTATE =
93  ("sm" + DB_DELIM + "status" + DB_DELIM + "substate");
94  const std::string DB_NODE_SM_STATE =
95  ("sm" + DB_DELIM + "state");
96  // @}
97 
99  // @{
100  constexpr auto META_KEY_EXPO_RATE = "MetaExpoType";
101  constexpr auto META_KEY_EXPO_TIME = "MetaExpoTime";
102  constexpr auto META_KEY_EXPO_WIN_BINX = "MetaExpoWinBinX";
103  constexpr auto META_KEY_EXPO_WIN_BINY = "MetaExpoWinBinY";
104  constexpr auto META_KEY_EXPO_WIN_STARTX = "MetaExpoWinStartX";
105  constexpr auto META_KEY_EXPO_WIN_STARTY = "MetaExpoWinStartY";
106  constexpr auto META_KEY_SYSTEM = "MetaSystem";
107  constexpr auto META_KEY_CAM_NAME = "MetaCamName";
108  constexpr auto META_KEY_CAM_ID = "MetaCamId";
109  constexpr auto META_KEY_CAM_MODEL = "MetaCamModel";
110  constexpr auto META_KEY_CAM_CHIPMODEL = "MetaCamChipModel";
111  constexpr auto META_KEY_CAM_TYPE = "MetaCamType";
112  // @}
113 
115  // @{
116  constexpr auto STATE_ON_NOT_OP_NOT_READY = "On::NotOperational::NotReady";
117  constexpr auto STATE_ON_NOT_OP_READY = "On::NotOperational::Ready";
118  constexpr auto STATE_ON_OP_IDLE = "On::Operational::Idle";
119  constexpr auto STATE_ON_OP_ACQ = "On::Operational::Acquisition";
120  constexpr auto STATE_ON_OP_ACQ_NOT_REC = "On::Operational::Acquisition::NotRecording";
121  constexpr auto STATE_ON_OP_ACQ_REC = "On::Operational::Acquisition::Recording";
122  // @}
123 
124  enum class ThreadType {
125  MONITOR = 1,
126  ACQUISITION,
127  PROCESSING,
128  PUBLISHER,
129  UNDEFINED = -1
130  };
131 
133  void SendThrMsg(const std::string& command,
134  const std::string& sender_thread_name,
135  const std::string& receiver_thread_name,
136  const std::string& data);
137 
139  bool ReceiveThrMsg(const std::string& receiver_thread_name,
140  const double time_out,
141  ccf::mptk::Message& message);
142 
146  void DecomposeSmStatus(const std::string& sm_state,
147  std::string& sum_state,
148  std::string& sum_substate);
149 
151  class Base {
152  public:
153 
156  return s_mptk_mgr;
157  }
158 
160  static void SetLogLevel(const ccf::LogLevel log_level);
161 
163  static ccf::LogLevel GetLogLevel();
164 
165  Base();
166  ~Base();
167 
169  const std::string& GetClassName() const;
170 
173 
174  protected:
176  void SetClassName(const std::string& class_name);
177 
179  void SetLogger(log4cplus::Logger& logger);
180 
182 
183  private:
184  static ccf::mptk::Manager s_mptk_mgr;
185  static ccf::LogLevel s_log_level;
186  std::string m_class_name;
187  };
188 
190  void AssertPtr(const void* ptr,
191  const std::string& object,
192  const std::string& location);
193 
195  enum class HwStatus {
196  NOT_OK = 0,
197  OK
198  };
199 
201  enum class Status {
202  FAILURE = 0,
203  SUCCESS = 1
204  };
205 
207  // @{
208  constexpr auto SUCCESS = "Success";
209  constexpr auto FAILURE = "Failure";
210  // @}
211 
213  std::string StatusToStr(ccf::Status status);
214 
216  enum class Bitpix {
217  UNKNOWN = -1,
218  BYTE = 8, // 8 bit
219  PRESCALED = -8, // Prescaled
220  INT16 = 16, // 16 bit signed
221  UINT16 = -16, // 16 bit unsigned
222  INT32 = 32, // 32 bit integer
223  FLOAT = -32, // 32 bit floating point
224  INT64 = 64, // 64 bit integer (long long int)
225  DOUBLE = -64 // 64 bit double precision
226  };
227 
229  inline DataTypes BitpixToDataType(const Bitpix bitpix) {
230  switch (bitpix) {
231  case Bitpix::BYTE:
232  return DataTypes::BYTE;
233  case Bitpix::INT16:
234  return DataTypes::INT16;
235  case Bitpix::UINT16:
236  return DataTypes::UINT16;
237  case Bitpix::INT32:
238  return DataTypes::INT32;
239  case Bitpix::FLOAT:
240  return DataTypes::FLOAT;
241  case Bitpix::INT64:
242  return DataTypes::INT64;
243  case Bitpix::DOUBLE:
244  return DataTypes::DOUBLE;
245  default:
246  return DataTypes::INVALID;
247  }
248  }
249 
251  inline static Bitpix DataTypeToBitpix(const DataTypes data_type) {
252  switch (data_type) {
253  case DataTypes::BYTE:
254  return Bitpix::BYTE;
255  break;
256  case DataTypes::INT16:
257  return Bitpix::INT16;
258  break;
259  case DataTypes::UINT16:
260  return Bitpix::UINT16;
261  break;
262  case DataTypes::INT32:
263  return Bitpix::INT32;
264  break;
265  case DataTypes::FLOAT:
266  return Bitpix::FLOAT;
267  break;
268  case DataTypes::DOUBLE:
269  return Bitpix::DOUBLE;
270  break;
271  default:
272  return Bitpix::UNKNOWN;
273  }
274  }
275 
277  enum class PubType {
278  UNDEFINED = -1,
279  RECORDING = 1,
281  };
282 
284  enum class PubStatus {
285  ACTIVE = recif::RecStatusNames::Active,
286  COMPLETED = recif::RecStatusNames::Completed,
287  STOPPED = recif::RecStatusNames::Stopped,
288  ABORTED = recif::RecStatusNames::Aborted,
289  FAILED = recif::RecStatusNames::Failed,
290  UNDEFINED = recif::RecStatusNames::Undefined
291  };
292 
294  void ResetRecStatusObj(std::shared_ptr<recif::RecStatus>& rec_status_obj,
295  const recif::RecStatusNames rec_status = recif::RecStatusNames::Undefined);
296 
298  void CopyRecStatusObj(const std::shared_ptr<recif::RecStatus>& src_rec_status_obj,
299  const std::shared_ptr<recif::RecStatus>& trg_rec_status_obj);
300 
302  enum class ProcStatus {
303  UNDEFINED = -1,
304  IDLE = 1,
305  PROCESSING = 32,
306  FINISHED = 128,
307  FAILED = 256
308  };
309 
310  // TODO: Change name to Acquisition Mode.
312  enum class ExpoMode {
313  FINITE = 1,
314  CONTINUOUS,
315  INACTIVE
316  };
317 
319 // @{
320  constexpr auto CFG_NODE_ACQUISITION = "acquisition";
321  constexpr auto CFG_NODE_MONITORING = "monitoring";
322  constexpr auto CFG_NODE_PROCESSING = "processing";
323  constexpr auto CFG_NODE_RECORDING = "recording";
324  constexpr auto CFG_NODE_SERVER = "server";
325  constexpr auto CFG_NODE_TASKS = "tasks";
326 
327  constexpr auto CFG_KEY_ADAPTER = "adapter";
328  constexpr auto CFG_KEY_ADDRESS = "address";
329  constexpr auto CFG_KEY_ALLOW_FRAME_SKIPPING = "allow_frame_skipping";
330  constexpr auto CFG_KEY_ALLOW_LOST_FRAMES = "allow_lost_frames";
331  constexpr auto CFG_KEY_DEVICES = "devices";
332  constexpr auto CFG_KEY_HEIGHT = "height";
333  constexpr auto CFG_KEY_ID = "id";
334  constexpr auto CFG_KEY_IMAGE_DIR = "image_dir";
335  constexpr auto CFG_KEY_INIT_SETUP = "init_setup";
336  constexpr auto CFG_KEY_INPUT_QUEUE_SIZE = "input_queue_size";
337  constexpr auto CFG_KEY_MANUFACTURER = "manufacturer";
338  constexpr auto CFG_KEY_MAPPING = "mapping";
339  constexpr auto CFG_KEY_MAX_RATE = "max_rate";
340  constexpr auto CFG_KEY_MAX_RESOLUTION = "max_resolution";
341  constexpr auto CFG_KEY_METADATA_MAP = "metadata_map";
342  constexpr auto CFG_KEY_MODEL = "model";
343  constexpr auto CFG_KEY_NAME = "name";
344  constexpr auto CFG_KEY_NAMES = "names";
345  constexpr auto CFG_KEY_NB_OF_SAMPLES = "nb_of_samples";
346  constexpr auto CFG_KEY_OUPUT_QUEUE_SIZE = "output_queue_size";
347  constexpr auto CFG_KEY_PERIOD = "period";
348  constexpr auto CFG_KEY_PIPELINE = "pipeline";
349  constexpr auto CFG_KEY_PROPERTIES = "properties";
350  constexpr auto CFG_KEY_PROTOCOL = "protocol";
351  constexpr auto CFG_KEY_PUBLISHERS = "publishers";
352  constexpr auto CFG_KEY_RECIPES = "recipes";
353  constexpr auto CFG_KEY_REC_HIST_EXP = "rec_hist_expiration";
354  constexpr auto CFG_KEY_REC_HIST_SIZE = "rec_hist_size";
355  constexpr auto CFG_KEY_RESOLUTION = "resolution";
356  constexpr auto CFG_KEY_SDK = "sdk";
357  constexpr auto CFG_KEY_SIMULATION = "simulation";
358  constexpr auto CFG_KEY_SIM_ADDRESS = "sim_address";
359  constexpr auto CFG_KEY_TYPE = "type";
360  constexpr auto CFG_KEY_VALUE = "value";
361  constexpr auto CFG_KEY_WIDTH = "width";
362 // @}
363 
365  // @{
366  constexpr auto SETUP_NODE_EXPO = "expo";
367  constexpr auto SETUP_NODE_SIM = "sim";
368 
369  constexpr auto SETUP_KEY_ADDRESS = "address";
370  constexpr auto SETUP_KEY_BASENAME = "basename";
371  constexpr auto SETUP_KEY_BIN_X = "bin_x";
372  constexpr auto SETUP_KEY_BIN_Y = "bin_y";
373  constexpr auto SETUP_KEY_DELAY = "delay";
374  constexpr auto SETUP_KEY_ENABLED = "enabled";
375  constexpr auto SETUP_KEY_FILE = "file";
376  constexpr auto SETUP_KEY_FORMAT = "format";
377  constexpr auto SETUP_KEY_FRAME_RATE = "frame_rate";
378  constexpr auto SETUP_KEY_FRAME_RATE_LIMIT = "frame_rate_limit";
379  constexpr auto SETUP_KEY_MAX_RATE = "max_rate";
380  constexpr auto SETUP_KEY_MAX_SHIFT = "max_shift";
381  constexpr auto SETUP_KEY_MAX_SHIFT_PR_FRAME = "max_shift_pr_frame";
382  constexpr auto SETUP_KEY_MAX_SIZE = "max_size";
383  constexpr auto SETUP_KEY_MODE = "mode";
384  constexpr auto SETUP_KEY_NB = "nb";
385  constexpr auto SETUP_KEY_RATE = "rate";
386  constexpr auto SETUP_KEY_NOISE = "noise";
387  constexpr auto SETUP_KEY_PORT = "port";
388  constexpr auto SETUP_KEY_TIME = "time";
389  constexpr auto SETUP_KEY_TYPE = "type";
390  constexpr auto SETUP_KEY_WIN_START_X = "win_start_x";
391  constexpr auto SETUP_KEY_WIN_START_Y = "win_start_y";
392  constexpr auto SETUP_KEY_WIN_WIDTH = "win_width";
393  constexpr auto SETUP_KEY_WIN_HEIGHT = "win_height";
394 // @}
395 
397  // @{
398  constexpr auto EXPO_MODE_FINITE = "Finite";
399  constexpr auto EXPO_MODE_CONTINUOUS = "Continuous";
400  constexpr auto EXPO_MODE_INACTIVE = "Inactive";
401  // @}
402 
403  // Prefix prepended to Recording Session IDs.
404  constexpr auto REC_ID_PREFIX = "RecId";
405 
407  ExpoMode ExpoModeToNb(const std::string& expo_mode);
408 
410  enum class SimType {
411  FILE = 1,
412  PATTERN1
413  };
414 
416  // @{
417  constexpr auto SIM_TYPE_FILE_STR = "File";
418  constexpr auto SIM_TYPE_PATTERN1_STR = "Pattern1";
419  // @}
420 
422  // @{
423  constexpr auto PUB_STAT_NAME_ACTIVE = "Active";
424  constexpr auto PUB_STAT_NAME_COMPLETED = "Completed";
425  constexpr auto PUB_STAT_NAME_STOPPED = "Stopped";
426  constexpr auto PUB_STAT_NAME_ABORTED = "Aborted";
427  constexpr auto PUB_STAT_NAME_FAILED = "Failed";
428  constexpr auto PUB_STAT_NAME_UNDEFINED = "Undefined";
429  // @}
430 
432  std::string RecStatusNameToStr(recif::RecStatusNames rec_status_nb);
433 
435  std::string PubStatusNameToStr(PubStatus pub_status_nb);
436 
438  std::string BuildKey(const std::vector<std::string>& elements);
439 
441  std::vector<std::string> SplitKey(const std::string& key);
442 
443 }
444 
446 inline std::string CcfThreadName() {
447  char thread_name[32];
448  pthread_getname_np(pthread_self(), thread_name, 32);
449  return thread_name;
450 }
451 
453 #define CCFLOC (std::string(__FILE__) + ":" + std::to_string(__LINE__) + ":" + \
454  std::string(__FUNCTION__) + ":" + CcfThreadName())
455 #define CCFL0C (std::string(__FILE__) + ":" + std::to_string(__LINE__) + ":" + \
456  std::string(__FUNCTION__) + ":" + CcfThreadName() + ": ")
457 
460 inline void CcfDebug(const std::string& location,
461  const std::string& msg) {
462  fmt::print("{}:{}#> {}\n", core::utils::time::IsoTimeNow(), location, msg);
463  fflush(stdout);
464 }
465 
467 #define INFO_LOG_GUARD if (ccf::Base::GetLogLevel() >= ccf::LogLevel::INFO)
468 
470 #define DEBUG_LOG_GUARD if (ccf::Base::GetLogLevel() >= ccf::LogLevel::DEBUG)
471 
473 #define DEBUG2_LOG_GUARD if (ccf::Base::GetLogLevel() >= ccf::LogLevel::DEBUG2)
474 
476 #define DEBUG3_LOG_GUARD if (ccf::Base::GetLogLevel() >= ccf::LogLevel::DEBUG3)
477 
479 //#define TRACE_LOG_GUARD if (ccf::Base::GetLogLevel() >= ccf::LogLevel::TRACE)
480 
482 //#define CCF_ERROR(logger, msg) LOG4CPLUS_ERROR(logger, CCFLOC << ": " << msg)
483 
485 //#define CCF_WARNING(logger, msg) LOG4CPLUS_WARN(logger, CCFLOC << ": " << msg)
486 
488 //#define CCF_INFO(logger, msg) INFO_LOG_GUARD { LOG4CPLUS_INFO(logger, CCFLOC << ": " << msg); }
489 
491 //#define CCF_DEBUG(logger, msg) DEBUG_LOG_GUARD { LOG4CPLUS_DEBUG(logger, CCFLOC << ": " << msg); }
492 
494 //#define CCF_DEBUG2(logger, msg) DEBUG2_LOG_GUARD { LOG4CPLUS_DEBUG(logger, CCFLOC << ": " << msg); }
495 
497 //#define CCF_DEBUG3(logger, msg) DEBUG3_LOG_GUARD { LOG4CPLUS_DEBUG(logger, CCFLOC << ": " << msg); }
498 
501 #define CCFTHROW(msg) throw rad::Exception(CCFLOC + ": " + msg)
502 
503 #endif // CCF_COMMON_BASE_HPP_H_
ccf::META_KEY_CAM_MODEL
constexpr auto META_KEY_CAM_MODEL
Definition: base.hpp:109
ccf::Base
Class to be used as parent all CCF classes.
Definition: base.hpp:151
ccf::DB_NODE_SM_STATE
const std::string DB_NODE_SM_STATE
Definition: base.hpp:94
ccf::CFG_KEY_ADDRESS
constexpr auto CFG_KEY_ADDRESS
Definition: base.hpp:328
ccf::SETUP_KEY_TYPE
constexpr auto SETUP_KEY_TYPE
Definition: base.hpp:389
ccf::loglevel::ERROR
constexpr auto ERROR
Definition: base.hpp:44
ccf::CFG_KEY_IMAGE_DIR
constexpr auto CFG_KEY_IMAGE_DIR
Definition: base.hpp:334
ccf::CFG_KEY_OUPUT_QUEUE_SIZE
constexpr auto CFG_KEY_OUPUT_QUEUE_SIZE
Definition: base.hpp:346
ccf::IFW_VERSION
constexpr auto IFW_VERSION
Version of IFW.
Definition: base.hpp:82
ccf::SETUP_KEY_FORMAT
constexpr auto SETUP_KEY_FORMAT
Definition: base.hpp:376
ccf::CFG_KEY_METADATA_MAP
constexpr auto CFG_KEY_METADATA_MAP
Definition: base.hpp:341
ccf::SETUP_KEY_BIN_X
constexpr auto SETUP_KEY_BIN_X
Definition: base.hpp:371
ccf::SETUP_KEY_MAX_RATE
constexpr auto SETUP_KEY_MAX_RATE
Definition: base.hpp:379
ccf::SendThrMsg
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:36
ccf::PUB_STAT_NAME_FAILED
constexpr auto PUB_STAT_NAME_FAILED
Definition: base.hpp:427
ccf::ThreadType::MONITOR
@ MONITOR
ccf::META_KEY_EXPO_RATE
constexpr auto META_KEY_EXPO_RATE
Definition: base.hpp:100
dataType.hpp
CcfThreadName
std::string CcfThreadName()
Return thread name allocated.
Definition: base.hpp:446
ccf::StatusToStr
std::string StatusToStr(ccf::Status status)
Convert the status from number to string.
Definition: base.cpp:124
ccf::CFG_KEY_MANUFACTURER
constexpr auto CFG_KEY_MANUFACTURER
Definition: base.hpp:337
ccf::Base::GetLogLevel
static ccf::LogLevel GetLogLevel()
Return the current CCF log level.
Definition: base.cpp:84
ccf::CFG_KEY_PROPERTIES
constexpr auto CFG_KEY_PROPERTIES
Definition: base.hpp:349
ccf::PubType
PubType
A Publisher may be Recording or Not-Recording. A Recording Publisher publishes data into files.
Definition: base.hpp:277
ccf::CFG_KEY_PROTOCOL
constexpr auto CFG_KEY_PROTOCOL
Definition: base.hpp:350
ccf::CFG_KEY_REC_HIST_EXP
constexpr auto CFG_KEY_REC_HIST_EXP
Definition: base.hpp:353
ccf::AssertPtr
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:53
ccf::STATE_ON_NOT_OP_READY
constexpr auto STATE_ON_NOT_OP_READY
Definition: base.hpp:117
ccf::CFG_KEY_PIPELINE
constexpr auto CFG_KEY_PIPELINE
Definition: base.hpp:348
ccf::DecomposeSmStatus
void DecomposeSmStatus(const std::string &sm_state, std::string &sum_state, std::string &sum_substate)
Definition: base.cpp:184
ccf::CFG_KEY_SIMULATION
constexpr auto CFG_KEY_SIMULATION
Definition: base.hpp:357
ccf::SETUP_KEY_ADDRESS
constexpr auto SETUP_KEY_ADDRESS
Definition: base.hpp:369
ccf::Base::SetLogger
void SetLogger(log4cplus::Logger &logger)
Set reference to logger used in this context.
Definition: base.cpp:92
ccf::Base::SetLogLevel
static void SetLogLevel(const ccf::LogLevel log_level)
Set the log level.
Definition: base.cpp:79
ccf::SETUP_KEY_FRAME_RATE_LIMIT
constexpr auto SETUP_KEY_FRAME_RATE_LIMIT
Definition: base.hpp:378
ccf::CFG_KEY_NAME
constexpr auto CFG_KEY_NAME
Definition: base.hpp:343
ccf::PUB_STAT_NAME_STOPPED
constexpr auto PUB_STAT_NAME_STOPPED
Definition: base.hpp:425
ccf::META_KEY_CAM_TYPE
constexpr auto META_KEY_CAM_TYPE
Definition: base.hpp:111
ccf::STATE_ON_OP_IDLE
constexpr auto STATE_ON_OP_IDLE
Definition: base.hpp:118
ccf::SETUP_KEY_MAX_SHIFT
constexpr auto SETUP_KEY_MAX_SHIFT
Definition: base.hpp:380
manager.hpp
ccf::SETUP_KEY_NB
constexpr auto SETUP_KEY_NB
Definition: base.hpp:384
ccf::META_KEY_EXPO_TIME
constexpr auto META_KEY_EXPO_TIME
Definition: base.hpp:101
ccf::CFG_KEY_ALLOW_FRAME_SKIPPING
constexpr auto CFG_KEY_ALLOW_FRAME_SKIPPING
Definition: base.hpp:329
ccf::META_KEY_CAM_NAME
constexpr auto META_KEY_CAM_NAME
Definition: base.hpp:107
ccf::EXPO_MODE_FINITE
constexpr auto EXPO_MODE_FINITE
Definition: base.hpp:398
ccf::Base::Base
Base()
Definition: base.cpp:63
ccf::META_KEY_EXPO_WIN_STARTX
constexpr auto META_KEY_EXPO_WIN_STARTX
Definition: base.hpp:104
ccf::loglevel::OFF
constexpr auto OFF
Definition: base.hpp:42
ccf::CFG_KEY_ADAPTER
constexpr auto CFG_KEY_ADAPTER
Definition: base.hpp:327
ccf::Base::~Base
~Base()
Definition: base.cpp:67
ccf::CFG_KEY_RESOLUTION
constexpr auto CFG_KEY_RESOLUTION
Definition: base.hpp:355
ccf::SimType::FILE
@ FILE
ccf::FAILURE
constexpr auto FAILURE
Definition: base.hpp:209
ccf::SIM_TYPE_PATTERN1_STR
constexpr auto SIM_TYPE_PATTERN1_STR
Definition: base.hpp:418
ccf::Bitpix::UNKNOWN
@ UNKNOWN
ccf::NO_VALUE
constexpr auto NO_VALUE
Definition: base.hpp:84
ccf::loglevel::TRACE
constexpr auto TRACE
Definition: base.hpp:50
ccf::SETUP_KEY_ENABLED
constexpr auto SETUP_KEY_ENABLED
Definition: base.hpp:374
ccf::CFG_KEY_RECIPES
constexpr auto CFG_KEY_RECIPES
Definition: base.hpp:352
ccf::CFG_KEY_MAPPING
constexpr auto CFG_KEY_MAPPING
Definition: base.hpp:338
ccf::PubStatus::ACTIVE
@ ACTIVE
ccf::SimType
SimType
Simulation type.
Definition: base.hpp:410
ccf::LogLevel::OFF
@ OFF
ccf::PUB_STAT_NAME_COMPLETED
constexpr auto PUB_STAT_NAME_COMPLETED
Definition: base.hpp:424
ccf::SETUP_KEY_FRAME_RATE
constexpr auto SETUP_KEY_FRAME_RATE
Definition: base.hpp:377
ccf::SETUP_KEY_MAX_SIZE
constexpr auto SETUP_KEY_MAX_SIZE
Definition: base.hpp:382
ccf::mptk::Manager
IFW CTD Multiprocessing Toolkit Manager class.
Definition: manager.hpp:21
ccf::Base::GetClassName
const std::string & GetClassName() const
Return the allocated name of the class.
Definition: base.cpp:69
ccf::META_KEY_CAM_ID
constexpr auto META_KEY_CAM_ID
Definition: base.hpp:108
CcfDebug
void CcfDebug(const std::string &location, const std::string &msg)
Definition: base.hpp:460
ccf::STATE_ON_OP_ACQ_REC
constexpr auto STATE_ON_OP_ACQ_REC
Definition: base.hpp:121
ccf::EXPO_MODE_CONTINUOUS
constexpr auto EXPO_MODE_CONTINUOUS
Definition: base.hpp:399
ccf::Status
Status
General status variable.
Definition: base.hpp:201
ccf::loglevel::INFO
constexpr auto INFO
Definition: base.hpp:46
ccf::HwStatus
HwStatus
HW status values.
Definition: base.hpp:195
ccf::CFG_KEY_MAX_RESOLUTION
constexpr auto CFG_KEY_MAX_RESOLUTION
Definition: base.hpp:340
ccf::SETUP_KEY_DELAY
constexpr auto SETUP_KEY_DELAY
Definition: base.hpp:373
ccf::PubStatus
PubStatus
Defines the various possible states of a Data Publisher.
Definition: base.hpp:284
ccf::META_KEY_EXPO_WIN_BINX
constexpr auto META_KEY_EXPO_WIN_BINX
Definition: base.hpp:102
ccf::CFG_KEY_ID
constexpr auto CFG_KEY_ID
Definition: base.hpp:333
ccf::LogLevelToNb
LogLevel LogLevelToNb(const std::string &log_level)
Definition: base.hpp:54
ccf::SETUP_KEY_BASENAME
constexpr auto SETUP_KEY_BASENAME
Definition: base.hpp:370
ccf::CFG_NODE_TASKS
constexpr auto CFG_NODE_TASKS
Definition: base.hpp:325
ccf::CFG_KEY_PERIOD
constexpr auto CFG_KEY_PERIOD
Definition: base.hpp:347
ccf::SETUP_KEY_MODE
constexpr auto SETUP_KEY_MODE
Definition: base.hpp:383
ccf::STATE_ON_OP_ACQ
constexpr auto STATE_ON_OP_ACQ
Definition: base.hpp:119
ccf::PubStatusNameToStr
std::string PubStatusNameToStr(PubStatus pub_status_nb)
Publisher status, number representation to string.
Definition: base.cpp:132
ccf::ThreadType
ThreadType
Definition: base.hpp:124
ccf::SETUP_KEY_WIN_HEIGHT
constexpr auto SETUP_KEY_WIN_HEIGHT
Definition: base.hpp:393
ccf::ProcStatus
ProcStatus
Possible states for a Processing Recipe defined.
Definition: base.hpp:302
ccf::CFG_NODE_SERVER
constexpr auto CFG_NODE_SERVER
Definition: base.hpp:324
ccf::SETUP_KEY_MAX_SHIFT_PR_FRAME
constexpr auto SETUP_KEY_MAX_SHIFT_PR_FRAME
Definition: base.hpp:381
ccf::CFG_KEY_VALUE
constexpr auto CFG_KEY_VALUE
Definition: base.hpp:360
ccf::SETUP_NODE_SIM
constexpr auto SETUP_NODE_SIM
Definition: base.hpp:367
ccf::PUB_STAT_NAME_ABORTED
constexpr auto PUB_STAT_NAME_ABORTED
Definition: base.hpp:426
ccf::SETUP_KEY_NOISE
constexpr auto SETUP_KEY_NOISE
Definition: base.hpp:386
ccf::Base::Mptk
static ccf::mptk::Manager & Mptk()
Return reference to internal MPTK instance (singleton).
Definition: base.hpp:155
ccf::CopyRecStatusObj
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:167
ccf::Status::FAILURE
@ FAILURE
ccf
Definition: appBase.cpp:8
ccf::Bitpix
Bitpix
CCF image data types. Based on the values defined for BITPIX in the FITS standard.
Definition: base.hpp:216
ccf::Base::m_logger
log4cplus::Logger m_logger
Definition: base.hpp:181
ccf::mptk::Message
IFW CTD Multiprocessing Toolkit Message class.
Definition: message.hpp:19
ccf::BitpixToDataType
DataTypes BitpixToDataType(const Bitpix bitpix)
Converts the FITS BITPIX value into a data type.
Definition: base.hpp:229
ccf::ExpoMode::FINITE
@ FINITE
ccf::SETUP_KEY_WIN_START_Y
constexpr auto SETUP_KEY_WIN_START_Y
Definition: base.hpp:391
ccf::CFG_KEY_ALLOW_LOST_FRAMES
constexpr auto CFG_KEY_ALLOW_LOST_FRAMES
Definition: base.hpp:330
ccf::CFG_KEY_NB_OF_SAMPLES
constexpr auto CFG_KEY_NB_OF_SAMPLES
Definition: base.hpp:345
ccf::CFG_KEY_INIT_SETUP
constexpr auto CFG_KEY_INIT_SETUP
Definition: base.hpp:335
ccf::CFG_NODE_RECORDING
constexpr auto CFG_NODE_RECORDING
Definition: base.hpp:323
ccf::loglevel::FATAL
constexpr auto FATAL
Definition: base.hpp:43
ccf::CFG_KEY_NAMES
constexpr auto CFG_KEY_NAMES
Definition: base.hpp:344
ccf::SETUP_KEY_BIN_Y
constexpr auto SETUP_KEY_BIN_Y
Definition: base.hpp:372
ccf::loglevel::DEBUG3
constexpr auto DEBUG3
Definition: base.hpp:49
ccf::SETUP_KEY_PORT
constexpr auto SETUP_KEY_PORT
Definition: base.hpp:387
ccf::META_KEY_EXPO_WIN_BINY
constexpr auto META_KEY_EXPO_WIN_BINY
Definition: base.hpp:103
ccf::ProcStatus::UNDEFINED
@ UNDEFINED
ccf::EXPO_MODE_INACTIVE
constexpr auto EXPO_MODE_INACTIVE
Definition: base.hpp:400
ccf::STATE_ON_NOT_OP_NOT_READY
constexpr auto STATE_ON_NOT_OP_NOT_READY
Definition: base.hpp:116
ccf::loglevel::DEBUG2
constexpr auto DEBUG2
Definition: base.hpp:48
ccf::CFG_KEY_SDK
constexpr auto CFG_KEY_SDK
Definition: base.hpp:356
ccf::loglevel::DEBUG
constexpr auto DEBUG
Definition: base.hpp:47
ccf::ResetRecStatusObj
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:149
ccf::LogLevelToString
std::string LogLevelToString(const LogLevel log_level)
Definition: base.hpp:68
ccf::loglevel::WARN
constexpr auto WARN
Definition: base.hpp:45
ccf::CFG_KEY_MAX_RATE
constexpr auto CFG_KEY_MAX_RATE
Definition: base.hpp:339
ccf::SETUP_KEY_WIN_START_X
constexpr auto SETUP_KEY_WIN_START_X
Definition: base.hpp:390
ccf::LogLevel
LogLevel
Log levels defined for CCF; adds two debugging levels: DEBUG2, DEBUG3.
Definition: base.hpp:26
ccf::SIM_TYPE_FILE_STR
constexpr auto SIM_TYPE_FILE_STR
Definition: base.hpp:417
ccf::ExpoMode
ExpoMode
Exposure modes.
Definition: base.hpp:312
ccf::CFG_KEY_WIDTH
constexpr auto CFG_KEY_WIDTH
Definition: base.hpp:361
ccf::PUB_STAT_NAME_UNDEFINED
constexpr auto PUB_STAT_NAME_UNDEFINED
Definition: base.hpp:428
ccf::DB_NODE_SM_STATUS_STATE
const std::string DB_NODE_SM_STATUS_STATE
Definition: base.hpp:90
ccf::CFG_NODE_MONITORING
constexpr auto CFG_NODE_MONITORING
Definition: base.hpp:321
ccf::DB_DELIM
const std::string DB_DELIM
Definition: base.hpp:87
ccf::META_KEY_SYSTEM
constexpr auto META_KEY_SYSTEM
Definition: base.hpp:106
ccf::CFG_KEY_SIM_ADDRESS
constexpr auto CFG_KEY_SIM_ADDRESS
Definition: base.hpp:358
ccf::CFG_NODE_PROCESSING
constexpr auto CFG_NODE_PROCESSING
Definition: base.hpp:322
ccf::META_KEY_EXPO_WIN_STARTY
constexpr auto META_KEY_EXPO_WIN_STARTY
Definition: base.hpp:105
ccf::CFG_KEY_DEVICES
constexpr auto CFG_KEY_DEVICES
Definition: base.hpp:331
ccf::PubType::UNDEFINED
@ UNDEFINED
ccf::CFG_KEY_MODEL
constexpr auto CFG_KEY_MODEL
Definition: base.hpp:342
ccf::META_KEY_CAM_CHIPMODEL
constexpr auto META_KEY_CAM_CHIPMODEL
Definition: base.hpp:110
ccf::ExpoModeToNb
ExpoMode ExpoModeToNb(const std::string &expo_mode)
Convert exposure mode from number representation to string.
Definition: base.cpp:96
ccf::CFG_KEY_PUBLISHERS
constexpr auto CFG_KEY_PUBLISHERS
Definition: base.hpp:351
ccf::REC_ID_PREFIX
constexpr auto REC_ID_PREFIX
Definition: base.hpp:404
ccf::PUB_STAT_NAME_ACTIVE
constexpr auto PUB_STAT_NAME_ACTIVE
Definition: base.hpp:423
ccf::SETUP_KEY_FILE
constexpr auto SETUP_KEY_FILE
Definition: base.hpp:375
ccf::SETUP_KEY_WIN_WIDTH
constexpr auto SETUP_KEY_WIN_WIDTH
Definition: base.hpp:392
ccf::CFG_KEY_HEIGHT
constexpr auto CFG_KEY_HEIGHT
Definition: base.hpp:332
ccf::RecStatusNameToStr
std::string RecStatusNameToStr(recif::RecStatusNames rec_status_nb)
Recording Status name, number to string representation.
Definition: base.cpp:144
ccf::Base::Loggger
log4cplus::Logger & Loggger()
Return reference to logger used in this context.
Definition: base.cpp:88
ccf::DB_NODE_SM_STATUS_SUBSTATE
const std::string DB_NODE_SM_STATUS_SUBSTATE
Definition: base.hpp:92
ccf::CFG_KEY_REC_HIST_SIZE
constexpr auto CFG_KEY_REC_HIST_SIZE
Definition: base.hpp:354
ccf::STATE_ON_OP_ACQ_NOT_REC
constexpr auto STATE_ON_OP_ACQ_NOT_REC
Definition: base.hpp:120
ccf::CFG_KEY_INPUT_QUEUE_SIZE
constexpr auto CFG_KEY_INPUT_QUEUE_SIZE
Definition: base.hpp:336
ccf::DataTypes
DataTypes
Definition: dataType.hpp:46
ccf::ReceiveThrMsg
bool ReceiveThrMsg(const std::string &receiver_thread_name, const double time_out, ccf::mptk::Message &message)
Receive a message from the given thread. Returns true if message received.
Definition: base.cpp:45
ccf::CCF_VERSION
constexpr auto CCF_VERSION
Version of CCF.
Definition: base.hpp:79
ccf::SETUP_KEY_RATE
constexpr auto SETUP_KEY_RATE
Definition: base.hpp:385
ccf::SUCCESS
constexpr auto SUCCESS
Definition: base.hpp:208
ccf::CFG_NODE_ACQUISITION
constexpr auto CFG_NODE_ACQUISITION
Definition: base.hpp:320
ccf::HwStatus::NOT_OK
@ NOT_OK
ccf::CFG_KEY_TYPE
constexpr auto CFG_KEY_TYPE
Definition: base.hpp:359
ccf::BuildKey
std::string BuildKey(const std::vector< std::string > &elements)
Build a concatenated key from a number of elements (<el1>.<el2.>...).
Definition: base.cpp:218
ccf::SETUP_NODE_EXPO
constexpr auto SETUP_NODE_EXPO
Definition: base.hpp:366
ccf::SETUP_KEY_TIME
constexpr auto SETUP_KEY_TIME
Definition: base.hpp:388
ccf::SplitKey
std::vector< std::string > SplitKey(const std::string &key)
Split up a concatenated key.
Definition: base.cpp:222
ccf::Logger
log4cplus::Logger & Logger()
Definition: base.cpp:9
ccf::Base::SetClassName
void SetClassName(const std::string &class_name)
Set the name of the class in question.
Definition: base.cpp:74