60 "The GamepadControlUnit");
80 defs->optional(enableHeartBeat,
82 "Flag to enable send a heart beat to the robot healh topic");
88 const std::string& name,
89 const GamepadData&
data,
91 const Ice::Current&
c)
120 if (
data.leftTrigger > 0)
122 emergencyStop->setEmergencyStopState(EmergencyStopState::eEmergencyStopActive);
125 else if (
data.startButton)
127 emergencyStop->setEmergencyStopState(EmergencyStopState::eEmergencyStopInactive);
130 if (
data.rightTrigger > 0)
132 platformUnitPrx->move(
data.leftStickY * scaleX,
133 data.leftStickX * scaleY,
134 data.rightStickX * scaleRotation);
138 platformUnitPrx->move(0, 0, 0);
145 if (leftHandTime <= 0.0)
147 leftHandTime = IceUtil::Time::now().toMicroSeconds();
149 else if ((IceUtil::Time::now().toMicroSeconds() - leftHandTime) > 1000 * 1000)
155 std::string shapeName = (leftHandOpen) ?
"Close" :
"Open";
156 handUnit->setShape(shapeName);
157 leftHandOpen = !leftHandOpen;
167 if (
data.rightButton)
170 if (rightHandTime <= 0.0)
172 rightHandTime = IceUtil::Time::now().toMicroSeconds();
174 else if ((IceUtil::Time::now().toMicroSeconds() - rightHandTime) > 1000 * 1000)
179 std::string shapeName = (rightHandOpen) ?
"Close" :
"Open";
180 handUnit->setShape(shapeName);
181 rightHandOpen = !rightHandOpen;
193 heartbeatPlugin->heartbeat();
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Property< PropertyType > getProperty(const std::string &name)
void onInitComponent() override
void onDisconnectComponent() override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void onConnectComponent() override
void reportGamepadState(const std::string &device, const std::string &name, const GamepadData &data, const TimestampBasePtr ×tamp, const Ice::Current &c) override
void onExitComponent() override
bool usingProxy(const std::string &name, const std::string &endpoints="")
Registers a proxy for retrieval after initialization and adds it to the dependency list.
PluginT * addPlugin(const std::string prefix="", ParamsT &&... params)
void usingTopic(const std::string &name, bool orderedPublishing=false)
Registers a proxy for subscription after initialization.
Ice::ObjectPrx getProxy(long timeoutMs=0, bool waitForScheduler=true) const
Returns the proxy of this object (optionally it waits for the proxy)
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
#define ARMARX_INFO
The normal logging level.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.