5#ifndef CCF_CONTROL_PROC_THREAD_HPP_H_
6#define CCF_CONTROL_PROC_THREAD_HPP_H_
25 const double period = 0.1);
36 void SetInputQ(std::shared_ptr<ifw::ccf::common::FrameQueue>& queue);
42 void SetOutputQ(std::shared_ptr<ifw::ccf::common::FrameQueue>& queue);
54 void AddRecipe(std::shared_ptr<ifw::ccf::common::RecipeBase>& recipe_obj);
67 bool CheckMessageBus(
bool& new_data_available,
69 void CopyAndReleaseFrameHandle();
70 void ExecuteRecipes();
71 void SubmitAndNotify();
72 void HandleNewSetup();
74 bool m_allow_frame_skippping;
75 double m_time_for_last_frame_skipping_log;
78 std::vector<std::string> m_pub_thr_names;
82 std::list<std::shared_ptr<ifw::ccf::common::RecipeBase>> m_recipes;
85 std::map<std::string, std::shared_ptr<ifw::ccf::common::RecipeBase>> m_recipe_map;
88 std::shared_ptr<ifw::ccf::common::FrameQueue> m_input_q;
89 std::shared_ptr<ifw::ccf::common::FrameQueue> m_output_q;
96 bool m_pipeline_enabled;
Class to be used as parent all CCF classes.
Definition base.hpp:120
Frame class used to store the data and metadata for one frames received from the camera.
Definition dataFrame.hpp:18
The FrameQueue class implements a queue, to manage a set of CCF DataFrame instances as a ring buffer.
Definition frameQueue.hpp:15
Class used by the threads to store info for generating performance statistics.
Definition utilities.hpp:27
Processing Recipe base class. All recipes shall be derived from this class.
Definition recipeBase.hpp:47
Processing Thread MPTK Thread implementation (see also ifw::ccf::mptk::Thread).
Definition procThread.hpp:16
bool GetPipelineEnabled() const
Return the current enabled status of the Pipeline.
Definition procThread.cpp:329
ifw::ccf::ProcStatus GetStatus() const
Return the Processing Status of this Processing Thread.
Definition procThread.cpp:289
void Initialise()
Initialise the thread object.
Definition procThread.cpp:56
uint8_t NbOfRecipes() const
Definition procThread.cpp:308
void AddRecipe(std::shared_ptr< ifw::ccf::common::RecipeBase > &recipe_obj)
Definition procThread.cpp:294
static void SetStatusAll(const ifw::ccf::ProcStatus status)
Set the status of all Processing Threads running.
Definition procThread.cpp:13
void SetOutputQ(std::shared_ptr< ifw::ccf::common::FrameQueue > &queue)
Set reference to the Output Queue of this Processing Thread.
Definition procThread.cpp:264
ProcThread(const std::string &thread_name, ifw::ccf::mptk::MessageBus &message_bus, const double period=0.1)
See ifw::ccf::mptk::Thread.
Definition procThread.cpp:30
ifw::ccf::common::FrameQueue & GetOutputQ()
Get reference to the Output Queue of this Processing Thread.
Definition procThread.cpp:269
virtual void UserLogic()
Implements the user logic, executed periodically.
Definition procThread.cpp:79
void SetStatus(const ifw::ccf::ProcStatus status)
Set the Processing Status of this Processing Thread.
Definition procThread.cpp:277
ifw::ccf::common::FrameStatistics & GetFrameStat()
Get reference to frame handling statistics.
Definition procThread.cpp:324
const ifw::ccf::common::RecipeBase & GetRecipe(const uint16_t nb)
Definition procThread.cpp:313
virtual ~ProcThread()
Definition procThread.cpp:41
void SetInputQ(std::shared_ptr< ifw::ccf::common::FrameQueue > &queue)
Set reference to the Application Input Queue from which the thread gets the frames.
Definition procThread.cpp:251
ifw::ccf::common::FrameQueue & GetInputQ()
Get reference to the Application Input Queue from which the thread gets the frames.
Definition procThread.cpp:256
IFW CTD Multiprocessing Toolkit Message Bus.
Definition messageBus.hpp:91
IFW CTD Multiprocessing Toolkit Message class.
Definition message.hpp:24
IFW CTD Multiprocessing Toolkit Thread base class.
Definition thread.hpp:30
Definition acqThread.cpp:10
ProcStatus
Possible states for a Processing Recipe defined.
Definition base.hpp:196