28#include <Ice/ProxyHandle.h>
34 class DebugDrawerInterface;
35 class DebugObserverInterface;
41 typedef ::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface>
43 typedef ::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface>
109 virtual void rtRun(
const IceUtil::Time& sensorValuesTimestamp,
110 const IceUtil::Time& timeSinceLastIteration) = 0;
117 std::atomic_bool activated{
false};
119 std::size_t controlModeHash{0};
120 std::size_t hardwareControlModeHash{0};
125 template <
class ControlTargetType>
128 static_assert(std::is_base_of<ControlTargetBase, ControlTargetType>::value,
129 "ControlTargetType has to inherit SensorValueBase");
132 using JointController::JointController;
143 inline const ControlTargetBase*
162 inline const std::string&
177 return controlModeHash;
183 return controlModeHash;
189 return hardwareControlModeHash;
195 return hardwareControlModeHash;
215 JointController::rtActivate()
222 JointController::rtDeactivate()
229 template <
class ControlTargetType>
230 inline ControlTargetType*
The ControlDevice class represents a logical unit accepting commands via its JointControllers.
Brief description of class JointControlTargetBase.
virtual const std::string & getControlMode() const =0
virtual bool isValid() const =0
ControlTargetType controlTarget
ControlTargetType * getControlTarget() final
The JointController class represents one joint in one control mode.
virtual ControlTargetBase * getControlTarget()=0
std::size_t getHardwareControlModeHash() const
ControlDevice & getParent() const
ControlDevice & rtGetParent() const
std::size_t rtGetHardwareControlModeHash() const
virtual StringVariantBaseMap publish(const DebugDrawerInterfacePrx &draw, const DebugObserverInterfacePrx &observer) const
Hook for publishing data from JointController, mainly for debugging purposes.
virtual bool rtIsTargetValid() const
virtual void rtPreActivateController()
called when this JointController is activated
virtual std::string getHardwareControlMode() const
virtual void rtPostDeactivateController()
virtual const std::string & getControlMode() const
friend class ControlDevice
called when this JointController is deactivated
std::size_t getControlModeHash() const
virtual ~JointController()=default
const T * getControlTarget() const
virtual void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration)=0
called when this JointController is run
virtual void rtResetTarget()
std::size_t rtGetControlModeHash() const
This file offers overloads of toIce() and fromIce() functions for STL container types.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
std::map< std::string, VariantBasePtr > StringVariantBaseMap
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx