35#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
44#include <armarx/control/core/Controller.h>
45#include <armarx/control/interface/ConfigurableNJointControllerInterface.h>
46#include <armarx/control/memory/config/Reader.h>
47#include <armarx/control/memory/config/Writer.h>
79 template <
auto T,
typename... Args>
84 using BuilderT =
decltype(concreteControllerBuilder<T>(args...));
87 static_assert(not std::is_void<BuilderT>::value,
88 "This controller type is not supported at the moment!");
90 return concreteControllerBuilder<T>(args...);
106 return *robotUnitPlugin;
115 memory::config::Reader&
119 return configReader.value();
122 memory::config::Writer&
126 return configWriter.value();
130 template <
auto T,
typename... Args>
132 concreteControllerBuilder(Args... args)
139 std::optional<memory::config::Reader> configReader;
140 std::optional<memory::config::Writer> configWriter;
161 return plugin->createControllerBuilder<
T>();
ManagedIceObject & parent()
friend class ManagedIceObject
const std::string & prefix() const
ManagedIceObject(ManagedIceObject const &other)
The memory name system (MNS) client.
A component plugin offering client-side access to to the working memory system by providing a Memory ...
ComponentPlugin & getControlComponentPlugin()
~ComponentPluginUser() override
ComponentPlugin(ManagedIceObject &parent, const std::string &prefix)
memory::config::Reader & configMemoryReader()
auto createControllerBuilder(Args... args)
void preOnInitComponent() override
void preOnConnectComponent() override
memory::config::Writer & configMemoryWriter()
armarx::armem::client::plugins::Plugin & getArmemPlugin()
armarx::plugins::RobotUnitComponentPlugin & getRobotUnitPlugin()
auto createControllerBuilder()
~ComponentPlugin() override
void postCreatePropertyDefinitions(armarx::PropertyDefinitionsPtr &properties) override
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
This file is part of ArmarX.
This file is part of ArmarX.
This file is part of ArmarX.
This file is part of ArmarX.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.