47 config(
"update", update_);
50 config(
"successRequired", successRequired_);
75 auto ptr =
dynamic_cast<T *
>(observer_.get());
79 mc_rtc::type_name<T>());
86 {
return const_cast<T &
>(
static_cast<const PipelineObserver *
>(
this)->observer<T>()); }
88 bool update() const noexcept {
return update_; }
90 bool log() const noexcept {
return log_; }
92 bool gui() const noexcept {
return gui_; }
95 bool success() const noexcept {
return success_; }
107 bool successRequired_ =
true;
108 bool success_ =
true;
161 inline bool success() const noexcept {
return success_; }
170 auto it = std::find_if(pipelineObservers_.begin(), pipelineObservers_.end(),
171 [&name](
const PipelineObserver & obs) { return obs.observer().name() == name; });
172 if(it == pipelineObservers_.end())
183 const std::vector<PipelineObserver> &
observers()
const {
return pipelineObservers_; }
185 std::vector<PipelineObserver> &
observers() {
return pipelineObservers_; }
196 return std::find_if(pipelineObservers_.begin(), pipelineObservers_.end(),
197 [&name](
const PipelineObserver & obs) { return obs.observer().name() == name; })
198 != pipelineObservers_.end();
212 return std::find_if(pipelineObservers_.begin(), pipelineObservers_.end(),
213 [&type](
const PipelineObserver & obs) { return obs.observer().type() == type; })
214 != pipelineObservers_.end();
218 inline const std::string &
desc() const noexcept {
return desc_; }
221 inline const std::string &
name() const noexcept {
return name_; }
230 std::string name_ = {
"DefaultObserverPipeline"};
232 std::string desc_ = {
""};
233 bool runObservers_ =
true;
234 bool updateObservers_ =
true;
235 bool success_ =
false;
#define MC_OBSERVERS_DLLAPI
Definition: api.h:47
Definition: CompletionCriteria.h:11
Definition: BodySensorObserver.h:14
std::shared_ptr< mc_observers::Observer > ObserverPtr
Definition: Observer.h:202
Definition: generic_gripper.h:15
void error_and_throw(const S &format, Args &&... args)
Definition: logging.h:40
MCController is the base class to implement all controllers. It assumes that at least two robots are ...
Definition: MCController.h:99
Definition: ObserverPipeline.h:41
PipelineObserver(const mc_observers::ObserverPtr &observer, const mc_rtc::Configuration &config)
Definition: ObserverPipeline.h:44
bool update() const noexcept
Definition: ObserverPipeline.h:88
bool log() const noexcept
Definition: ObserverPipeline.h:90
bool successRequired() const noexcept
Definition: ObserverPipeline.h:100
T & observer()
Definition: ObserverPipeline.h:85
const Observer & observer() const
Definition: ObserverPipeline.h:58
bool gui() const noexcept
Definition: ObserverPipeline.h:92
bool success() const noexcept
Definition: ObserverPipeline.h:95
Observer & observer()
Definition: ObserverPipeline.h:61
const T & observer() const
Definition: ObserverPipeline.h:73
State observation pipeline.
Definition: ObserverPipeline.h:38
bool updateObservers() const
Definition: ObserverPipeline.h:145
const PipelineObserver & observer(const std::string &name) const
Definition: ObserverPipeline.h:168
void runObservers(bool status)
Whether to run the observers in this pipeline.
Definition: ObserverPipeline.h:141
ObserverPipeline(mc_control::MCController &ctl, const std::string &name)
mc_control::MCController & ctl_
Definition: ObserverPipeline.h:229
~ObserverPipeline()=default
void removeFromGUI(mc_rtc::gui::StateBuilder &)
void updateObservers(bool status)
Whether to update the observers in this pipeline.
Definition: ObserverPipeline.h:154
bool hasObserverType(const std::string &type) const
Checks if there is an observer of a specific type in the pipeline.
Definition: ObserverPipeline.h:210
bool runObservers() const noexcept
Definition: ObserverPipeline.h:134
std::vector< PipelineObserver > & observers()
Definition: ObserverPipeline.h:185
ObserverPipeline(mc_control::MCController &ctl)
PipelineObserver & observer(const std::string &name)
Definition: ObserverPipeline.h:180
void create(const mc_rtc::Configuration &config, double dt)
bool success() const noexcept
Checks whether the last run of the pipeline succeeded.
Definition: ObserverPipeline.h:161
void addToLogger(mc_rtc::Logger &)
const std::string & desc() const noexcept
Short description of the pipeline.
Definition: ObserverPipeline.h:218
const std::string & name() const noexcept
Definition: ObserverPipeline.h:221
void addToGUI(mc_rtc::gui::StateBuilder &)
const std::vector< PipelineObserver > & observers() const
Definition: ObserverPipeline.h:183
std::vector< PipelineObserver > pipelineObservers_
Definition: ObserverPipeline.h:238
bool hasObserver(const std::string &name) const
Checks whether this pipeline has an observer.
Definition: ObserverPipeline.h:194
void removeFromLogger(mc_rtc::Logger &)
State observation API.
Definition: Observer.h:51
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166
Logs controller data to disk.
Definition: Logger.h:30
Definition: StateBuilder.h:28