ifw-ccf 4.0.0
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions | Variables
base.hpp File Reference
#include <fmt/format.h>
#include <boost/exception/diagnostic_information.hpp>
#include <config-ng/ciiConfigApi.hpp>
#include <Recif.hpp>
#include <core/utils/base/base.hpp>
#include <core/utils/system/system.hpp>
#include <core/utils/time/time.hpp>
#include <core/utils/conversion/conversion.hpp>
#include <utils/bat/config.hpp>
#include <ccf/mptk/manager.hpp>
#include <ccf/common/dataType.hpp>

Go to the source code of this file.

Classes

class  ccf::Base
 Class to be used as parent all CCF classes. More...
 

Namespaces

namespace  ccf
 

Macros

#define CCFLOC
 Macro generating a location identifier: "<file>:<line>:<function>:<thread>".
 
#define CCFL0C
 
#define CCFTIME   core::utils::time::Time()
 
#define CCFTHROW(msg)   throw rad::Exception(CCFLOC + ": " + msg)
 

Functions

log4cplus::Logger & ccf::Logger ()
 
log4cplus::Logger & ccf::FastLogger ()
 
std::string CcfThreadName ()
 Return thread name allocated.
 
void CcfDebug (const std::string &location, const std::string &msg)
 

Variables

constexpr auto ccf::CCF_VERSION = "1.2.0"
 Version of CCF.
 
constexpr auto ccf::IFW_VERSION = "4.0"
 Version of IFW.
 
constexpr auto ccf::NO_VALUE = "__NO__VALUE__"
 
Standard metadata keywords.
constexpr auto ccf::META_KEY_EXPO_RATE = "MetaExpoType"
 
constexpr auto ccf::META_KEY_EXPO_TIME = "MetaExpoTime"
 
constexpr auto ccf::META_KEY_EXPO_WIN_BINX = "MetaExpoWinBinX"
 
constexpr auto ccf::META_KEY_EXPO_WIN_BINY = "MetaExpoWinBinY"
 
constexpr auto ccf::META_KEY_EXPO_WIN_STARTX = "MetaExpoWinStartX"
 
constexpr auto ccf::META_KEY_EXPO_WIN_STARTY = "MetaExpoWinStartY"
 
constexpr auto ccf::META_KEY_SYSTEM = "MetaSystem"
 
constexpr auto ccf::META_KEY_CAM_NAME = "MetaCamName"
 
constexpr auto ccf::META_KEY_CAM_ID = "MetaCamId"
 
constexpr auto ccf::META_KEY_CAM_MODEL = "MetaCamModel"
 
constexpr auto ccf::META_KEY_CAM_CHIPMODEL = "MetaCamChipModel"
 
constexpr auto ccf::META_KEY_CAM_TYPE = "MetaCamType"
 
Configuration parameter names.
constexpr auto ccf::CFG_NODE_ACQUISITION = "acquisition"
 
constexpr auto ccf::CFG_NODE_MONITORING = "monitoring"
 
constexpr auto ccf::CFG_NODE_TELEMETRY = "telemetry"
 
constexpr auto ccf::CFG_NODE_PROCESSING = "processing"
 
constexpr auto ccf::CFG_NODE_RECORDING = "recording"
 
constexpr auto ccf::CFG_NODE_SERVER = "server"
 
constexpr auto ccf::CFG_NODE_TASKS = "tasks"
 
constexpr auto ccf::CFG_KEY_ADAPTER = "adapter"
 
constexpr auto ccf::CFG_KEY_ADDRESS = "address"
 
constexpr auto ccf::CFG_KEY_ALLOW_FRAME_SKIPPING = "allow_frame_skipping"
 
constexpr auto ccf::CFG_KEY_ALLOW_LOST_FRAMES = "allow_lost_frames"
 
constexpr auto ccf::CFG_KEY_AUTO_STOP_ACQ_AFTER_REC = "auto_stop_acq_after_rec"
 
constexpr auto ccf::CFG_KEY_ENABLED = "enabled"
 
constexpr auto ccf::CFG_KEY_DEVICES = "devices"
 
constexpr auto ccf::CFG_KEY_HEIGHT = "height"
 
constexpr auto ccf::CFG_KEY_ID = "id"
 
constexpr auto ccf::CFG_KEY_INIT_SETUP = "init_setup"
 
constexpr auto ccf::CFG_KEY_INPUT_QUEUE_SIZE = "input_queue_size"
 
constexpr auto ccf::CFG_KEY_MANUFACTURER = "manufacturer"
 
constexpr auto ccf::CFG_KEY_MAPPING = "mapping"
 
constexpr auto ccf::CFG_KEY_MAX_RATE = "max_rate"
 
constexpr auto ccf::CFG_KEY_MAX_RESOLUTION = "max_resolution"
 
constexpr auto ccf::CFG_KEY_METADATA_MAP = "metadata_map"
 
constexpr auto ccf::CFG_KEY_MODEL = "model"
 
constexpr auto ccf::CFG_KEY_NAME = "name"
 
constexpr auto ccf::CFG_KEY_NAMES = "names"
 
constexpr auto ccf::CFG_KEY_NB_OF_SAMPLES = "nb_of_samples"
 
constexpr auto ccf::CFG_KEY_OLDB_NODE = "oldb_node"
 
constexpr auto ccf::CFG_KEY_OUPUT_QUEUE_SIZE = "output_queue_size"
 
constexpr auto ccf::CFG_KEY_PERIOD = "period"
 
constexpr auto ccf::CFG_KEY_PIPELINE = "pipeline"
 
constexpr auto ccf::CFG_KEY_PROPERTIES = "properties"
 
constexpr auto ccf::CFG_KEY_PROTOCOL = "protocol"
 
constexpr auto ccf::CFG_KEY_PUBLISHERS = "publishers"
 
constexpr auto ccf::CFG_KEY_RECIPES = "recipes"
 
constexpr auto ccf::CFG_KEY_REC_HIST_EXP = "rec_hist_expiration"
 
constexpr auto ccf::CFG_KEY_REC_HIST_SIZE = "rec_hist_size"
 
constexpr auto ccf::CFG_KEY_RESOLUTION = "resolution"
 
constexpr auto ccf::CFG_KEY_SDK = "sdk"
 
constexpr auto ccf::CFG_KEY_SIMULATION = "simulation"
 
constexpr auto ccf::CFG_KEY_SIM_ADDRESS = "sim_address"
 
constexpr auto ccf::CFG_KEY_TYPE = "type"
 
constexpr auto ccf::CFG_KEY_VALUE = "value"
 
constexpr auto ccf::CFG_KEY_WIDTH = "width"
 
constexpr auto ccf::CFG_KEY_WRITE_ON_INIT = "write_on_init"
 
Setup parameter names.
constexpr auto ccf::SETUP_NODE_EXPO = "expo"
 
constexpr auto ccf::SETUP_NODE_SIM = "sim"
 
constexpr auto ccf::SETUP_KEY_ADDRESS = "address"
 
constexpr auto ccf::SETUP_KEY_BASENAME = "basename"
 
constexpr auto ccf::SETUP_KEY_BIN_X = "bin_x"
 
constexpr auto ccf::SETUP_KEY_BIN_Y = "bin_y"
 
constexpr auto ccf::SETUP_KEY_DELAY = "delay"
 
constexpr auto ccf::SETUP_KEY_ENABLED = "enabled"
 
constexpr auto ccf::SETUP_KEY_FILE = "file"
 
constexpr auto ccf::SETUP_KEY_FORMAT = "format"
 
constexpr auto ccf::SETUP_KEY_FRAME_RATE = "frame_rate"
 
constexpr auto ccf::SETUP_KEY_FRAME_RATE_LIMIT = "frame_rate_limit"
 
constexpr auto ccf::SETUP_KEY_INTERFACE = "interface"
 
constexpr auto ccf::SETUP_KEY_MAX_RATE = "max_rate"
 
constexpr auto ccf::SETUP_KEY_MAX_SHIFT = "max_shift"
 
constexpr auto ccf::SETUP_KEY_MAX_SHIFT_PR_FRAME = "max_shift_pr_frame"
 
constexpr auto ccf::SETUP_KEY_MAX_SIZE = "max_size"
 
constexpr auto ccf::SETUP_KEY_MODE = "mode"
 
constexpr auto ccf::SETUP_KEY_NB = "nb"
 
constexpr auto ccf::SETUP_KEY_RATE = "rate"
 
constexpr auto ccf::SETUP_KEY_NOISE = "noise"
 
constexpr auto ccf::SETUP_KEY_PORT = "port"
 
constexpr auto ccf::SETUP_KEY_TIME = "time"
 
constexpr auto ccf::SETUP_KEY_TYPE = "type"
 
constexpr auto ccf::SETUP_KEY_WIN_START_X = "win_start_x"
 
constexpr auto ccf::SETUP_KEY_WIN_START_Y = "win_start_y"
 
constexpr auto ccf::SETUP_KEY_WIN_WIDTH = "win_width"
 
constexpr auto ccf::SETUP_KEY_WIN_HEIGHT = "win_height"
 
Simulation type.
constexpr auto ccf::SIM_TYPE_FILE_STR = "File"
 
constexpr auto ccf::SIM_TYPE_PATTERN1_STR = "Pattern1"
 

States (composite).

enum class  ccf::ThreadType {
  ccf::MONITOR = 1 , ccf::ACQUISITION , ccf::PROCESSING , ccf::PUBLISHER ,
  ccf::UNDEFINED = -1
}
 
enum class  ccf::HwStatus { ccf::NOT_OK = 0 , ccf::OK }
 HW status values. More...
 
enum class  ccf::Status { ccf::FAILURE = 0 , ccf::SUCCESS = 1 }
 General status variable. More...
 
constexpr auto ccf::STATE_ON_NOT_OP_NOT_READY = "On::NotOperational::NotReady"
 
constexpr auto ccf::STATE_ON_NOT_OP_READY = "On::NotOperational::Ready"
 
constexpr auto ccf::STATE_ON_OP_IDLE = "On::Operational::Idle"
 
constexpr auto ccf::STATE_ON_OP_ACQ = "On::Operational::Acquisition"
 
constexpr auto ccf::STATE_ON_OP_ACQ_NOT_REC = "On::Operational::Acquisition::NotRecording"
 
constexpr auto ccf::STATE_ON_OP_ACQ_REC = "On::Operational::Acquisition::Recording"
 
void ccf::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.
 
bool ccf::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.
 
void ccf::DecomposeSmStatus (const std::string &sm_state, std::string &sum_state, std::string &sum_substate)
 
void ccf::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.
 

Execution status.

enum class  ccf::PubType { ccf::UNDEFINED = -1 , ccf::RECORDING = 1 , ccf::NOT_RECORDING }
 A Publisher may be Recording or Not-Recording. A Recording Publisher publishes data into files. More...
 
enum class  ccf::PubStatus {
  ccf::ACTIVE = recif::RecStatusNames::Active , ccf::COMPLETED = recif::RecStatusNames::Completed , ccf::STOPPED = recif::RecStatusNames::Stopped , ccf::ABORTED = recif::RecStatusNames::Aborted ,
  ccf::FAILED = recif::RecStatusNames::Failed , ccf::UNDEFINED = recif::RecStatusNames::Undefined
}
 Defines the various possible states of a Data Publisher. More...
 
enum class  ccf::ProcStatus {
  ccf::UNDEFINED = -1 , ccf::IDLE = 1 , ccf::PROCESSING = 32 , ccf::FINISHED = 128 ,
  ccf::FAILED = 256
}
 Possible states for a Processing Recipe defined. More...
 
enum class  ccf::ExpoMode { ccf::FINITE = 1 , ccf::CONTINUOUS , ccf::INACTIVE }
 Exposure modes. More...
 
constexpr auto ccf::SUCCESS = "Success"
 
constexpr auto ccf::FAILURE = "Failure"
 
std::string ccf::StatusToStr (ccf::Status status)
 Convert the status from number to string.
 
DataType ccf::BitpixToDataType (const int8_t bitpix)
 Converts the FITS BITPIX value into a data type.
 
void ccf::ResetRecStatusObj (std::shared_ptr< recif::RecStatus > &rec_status_obj, const recif::RecStatusNames rec_status=recif::RecStatusNames::Undefined)
 Reset the members of the Recording Status Object.
 
void ccf::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.
 

Exposure modes.

enum class  ccf::SimType { ccf::FILE = 1 , ccf::PATTERN1 }
 Simulation type. More...
 
constexpr auto ccf::EXPO_MODE_FINITE = "Finite"
 
constexpr auto ccf::EXPO_MODE_CONTINUOUS = "Continuous"
 
constexpr auto ccf::EXPO_MODE_INACTIVE = "Inactive"
 
constexpr auto ccf::REC_ID_PREFIX = "RecId"
 
ExpoMode ccf::ExpoModeToNb (const std::string &expo_mode)
 Convert exposure mode from number representation to string.
 

DB state nodes names.

const std::string ccf::DB_DELIM = std::string(utils::bat::CONFIG_DB_DELIMITER)
 
const std::string ccf::DB_NODE_SM_STATUS_STATE
 
const std::string ccf::DB_NODE_SM_STATUS_SUBSTATE
 
const std::string ccf::DB_NODE_SM_STATE
 
ccf::DataType ccf::CiiCfgNodeToCcfType (elt::configng::CiiConfigInstanceNode &node)
 Determine CCF data type from a CII Cfg Node.
 

Publisher Status names.

constexpr auto ccf::PUB_STAT_NAME_ACTIVE = "Active"
 
constexpr auto ccf::PUB_STAT_NAME_COMPLETED = "Completed"
 
constexpr auto ccf::PUB_STAT_NAME_STOPPED = "Stopped"
 
constexpr auto ccf::PUB_STAT_NAME_ABORTED = "Aborted"
 
constexpr auto ccf::PUB_STAT_NAME_FAILED = "Failed"
 
constexpr auto ccf::PUB_STAT_NAME_UNDEFINED = "Undefined"
 
std::string ccf::RecStatusNameToStr (recif::RecStatusNames rec_status_nb)
 Recording Status name, number to string representation.
 
std::string ccf::PubStatusNameToStr (PubStatus pub_status_nb)
 Publisher status, number representation to string.
 
std::string ccf::BuildKey (const std::vector< std::string > &elements)
 Build a concatenated key from a number of elements (<el1>.<el2.>...).
 
std::vector< std::string > ccf::SplitKey (const std::string &key)
 Split up a concatenated key.
 

Macro Definition Documentation

◆ CCFL0C

#define CCFL0C
Value:
(std::string(__FILE__) + ":" + std::to_string(__LINE__) + ":" + \
std::string(__FUNCTION__) + ":" + CcfThreadName() + ": ")
std::string CcfThreadName()
Return thread name allocated.
Definition: base.hpp:380

◆ CCFLOC

#define CCFLOC
Value:
(std::string(__FILE__) + ":" + std::to_string(__LINE__) + ":" + \
std::string(__FUNCTION__) + ":" + CcfThreadName())

Macro generating a location identifier: "<file>:<line>:<function>:<thread>".

◆ CCFTHROW

#define CCFTHROW (   msg)    throw rad::Exception(CCFLOC + ": " + msg)

Throw a "rad::Exception()". The location ("CCFLOC") for the throw statement is added to the message.

◆ CCFTIME

#define CCFTIME   core::utils::time::Time()

Function Documentation

◆ CcfDebug()

void CcfDebug ( const std::string &  location,
const std::string &  msg 
)
inline

Used for debugging purposes to print out info to "stdout". It is attempted to flush the "stdout" file descriptor to ensure the message is displayed on "stdout".

◆ CcfThreadName()

std::string CcfThreadName ( )
inline

Return thread name allocated.