60 createEmergencyStopTab();
78 InterventionDebugger::RemoteGui_update()
81 updateEmergencyStopTab();
87 InterventionDebugger::createGamepadTab()
94 group.setLabel(
"Analog Sticks");
101 layout.addChild(HBoxLayout{
Label(
"Left Stick X:"), gamepadTab.
leftStickX});
103 gamepadTab.leftStickY.setRange(-1.0f, 1.0f);
104 gamepadTab.leftStickY.setSteps(200);
105 gamepadTab.leftStickY.setValue(0.0f);
106 layout.addChild(HBoxLayout{
Label(
"Left Stick Y:"), gamepadTab.leftStickY});
108 gamepadTab.rightStickX.setRange(-1.0f, 1.0f);
109 gamepadTab.rightStickX.setSteps(200);
110 gamepadTab.rightStickX.setValue(0.0f);
111 layout.addChild(HBoxLayout{
Label(
"Right Stick X:"), gamepadTab.rightStickX});
113 gamepadTab.rightStickY.setRange(-1.0f, 1.0f);
114 gamepadTab.rightStickY.setSteps(200);
115 gamepadTab.rightStickY.setValue(0.0f);
116 layout.addChild(HBoxLayout{
Label(
"Right Stick Y:"), gamepadTab.rightStickY});
118 group.addChild(layout);
119 root.addChild(group);
125 group.setLabel(
"D-Pad");
129 gamepadTab.dPadX.setRange(-1.0f, 1.0f);
130 gamepadTab.dPadX.setSteps(200);
131 gamepadTab.dPadX.setValue(0.0f);
132 layout.addChild(HBoxLayout{
Label(
"D-Pad X:"), gamepadTab.dPadX});
134 gamepadTab.dPadY.setRange(-1.0f, 1.0f);
135 gamepadTab.dPadY.setSteps(200);
136 gamepadTab.dPadY.setValue(0.0f);
137 layout.addChild(HBoxLayout{
Label(
"D-Pad Y:"), gamepadTab.dPadY});
139 group.addChild(layout);
140 root.addChild(group);
146 group.setLabel(
"Triggers");
150 gamepadTab.leftTrigger.setRange(0.0f, 1.0f);
151 gamepadTab.leftTrigger.setSteps(100);
152 gamepadTab.leftTrigger.setValue(0.0f);
153 layout.addChild(HBoxLayout{
Label(
"Left Trigger:"), gamepadTab.leftTrigger});
155 gamepadTab.rightTrigger.setRange(0.0f, 1.0f);
156 gamepadTab.rightTrigger.setSteps(100);
157 gamepadTab.rightTrigger.setValue(0.0f);
158 layout.addChild(HBoxLayout{
Label(
"Right Trigger:"), gamepadTab.rightTrigger});
160 group.addChild(layout);
161 root.addChild(group);
167 group.setLabel(
"Buttons");
171 gamepadTab.aButton.setLabel(
"A");
172 gamepadTab.aButton.setValue(
false);
173 gamepadTab.bButton.setLabel(
"B");
174 gamepadTab.bButton.setValue(
false);
175 gamepadTab.xButton.setLabel(
"X");
176 gamepadTab.xButton.setValue(
false);
177 gamepadTab.yButton.setLabel(
"Y");
178 gamepadTab.yButton.setValue(
false);
179 layout.addChild(HBoxLayout{
184 gamepadTab.yButton});
186 gamepadTab.leftButton.setLabel(
"LB");
187 gamepadTab.leftButton.setValue(
false);
188 gamepadTab.rightButton.setLabel(
"RB");
189 gamepadTab.rightButton.setValue(
false);
191 HBoxLayout{
Label(
"Bumpers:"), gamepadTab.leftButton, gamepadTab.rightButton});
193 gamepadTab.backButton.setLabel(
"Back");
194 gamepadTab.backButton.setValue(
false);
195 gamepadTab.startButton.setLabel(
"Start");
196 gamepadTab.startButton.setValue(
false);
197 gamepadTab.theMiddleButton.setLabel(
"Middle");
198 gamepadTab.theMiddleButton.setValue(
false);
199 layout.addChild(HBoxLayout{
Label(
"System:"),
200 gamepadTab.backButton,
201 gamepadTab.startButton,
202 gamepadTab.theMiddleButton});
204 gamepadTab.leftStickButton.setLabel(
"L3");
205 gamepadTab.leftStickButton.setValue(
false);
206 gamepadTab.rightStickButton.setLabel(
"R3");
207 gamepadTab.rightStickButton.setValue(
false);
208 layout.addChild(HBoxLayout{
209 Label(
"Stick Buttons:"), gamepadTab.leftStickButton, gamepadTab.rightStickButton});
211 group.addChild(layout);
212 root.addChild(group);
217 gamepadTab.resetAll.setLabel(
"Reset All to Zero");
218 root.addChild(HBoxLayout{gamepadTab.resetAll, HSpacer()});
221 root.addChild(VSpacer());
227 InterventionDebugger::updateGamepadTab()
232 if (gamepadTab.resetAll.wasClicked())
234 gamepadTab.leftStickX.setValue(0.0f);
235 gamepadTab.leftStickY.setValue(0.0f);
236 gamepadTab.rightStickX.setValue(0.0f);
237 gamepadTab.rightStickY.setValue(0.0f);
238 gamepadTab.dPadX.setValue(0.0f);
239 gamepadTab.dPadY.setValue(0.0f);
240 gamepadTab.leftTrigger.setValue(0.0f);
241 gamepadTab.rightTrigger.setValue(0.0f);
243 gamepadTab.aButton.setValue(
false);
244 gamepadTab.bButton.setValue(
false);
245 gamepadTab.xButton.setValue(
false);
246 gamepadTab.yButton.setValue(
false);
247 gamepadTab.leftButton.setValue(
false);
248 gamepadTab.rightButton.setValue(
false);
249 gamepadTab.backButton.setValue(
false);
250 gamepadTab.startButton.setValue(
false);
251 gamepadTab.theMiddleButton.setValue(
false);
252 gamepadTab.leftStickButton.setValue(
false);
253 gamepadTab.rightStickButton.setValue(
false);
256 publishGamepadState();
260 InterventionDebugger::publishGamepadState()
263 data.leftStickX = gamepadTab.leftStickX.getValue();
264 data.leftStickY = gamepadTab.leftStickY.getValue();
265 data.rightStickX = gamepadTab.rightStickX.getValue();
266 data.rightStickY = gamepadTab.rightStickY.getValue();
267 data.dPadX = gamepadTab.dPadX.getValue();
268 data.dPadY = gamepadTab.dPadY.getValue();
269 data.leftTrigger = gamepadTab.leftTrigger.getValue();
270 data.rightTrigger = gamepadTab.rightTrigger.getValue();
272 data.aButton = gamepadTab.aButton.getValue();
273 data.bButton = gamepadTab.bButton.getValue();
274 data.xButton = gamepadTab.xButton.getValue();
275 data.yButton = gamepadTab.yButton.getValue();
276 data.leftButton = gamepadTab.leftButton.getValue();
277 data.rightButton = gamepadTab.rightButton.getValue();
278 data.backButton = gamepadTab.backButton.getValue();
279 data.startButton = gamepadTab.startButton.getValue();
280 data.theMiddleButton = gamepadTab.theMiddleButton.getValue();
281 data.leftStickButton = gamepadTab.leftStickButton.getValue();
282 data.rightStickButton = gamepadTab.rightStickButton.getValue();
284 auto timestamp =
new TimestampVariant(IceUtil::Time::now());
286 gamepadTopicPrx->reportGamepadState(deviceName, gamepadName, data,
timestamp);
292 InterventionDebugger::createEmergencyStopTab()
297 group.setLabel(
"Emergency Stop");
299 estopTab.emergencyStopActive.setLabel(
"Emergency Stop Active");
300 estopTab.emergencyStopActive.setValue(
false);
303 layout.addChild(estopTab.emergencyStopActive);
304 layout.addChild(VSpacer());
306 group.addChild(layout);
307 root.addChild(group);
308 root.addChild(VSpacer());
314 InterventionDebugger::updateEmergencyStopTab()
316 if (estopTab.emergencyStopActive.hasValueChanged())
318 const bool active = estopTab.emergencyStopActive.getValue();
319 const auto state = active ? EmergencyStopState::eEmergencyStopActive
320 : EmergencyStopState::eEmergencyStopInactive;
322 publishEmergencyStopState(state);
323 lastPublishedEstopState = state;
328 InterventionDebugger::publishEmergencyStopState(EmergencyStopState state)
331 << (state == EmergencyStopState::eEmergencyStopActive ?
"ACTIVE" :
"INACTIVE");
333 emergencyStopTopicPrx->reportEmergencyStopState(state);
int Label(int n[], int size, int *curLabel, MiscLib::Vector< std::pair< int, size_t > > *labels)
#define ARMARX_REGISTER_COMPONENT_EXECUTABLE(ComponentT, applicationName)
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Property< PropertyType > getProperty(const std::string &name)
Debug component for InterventionObserver.
void onInitComponent() override
Pure virtual hook for the subclass.
void onDisconnectComponent() override
Hook for subclass.
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void onConnectComponent() override
Pure virtual hook for the subclass.
static std::string GetDefaultName()
void onExitComponent() override
Hook for subclass.
void offeringTopic(const std::string &name)
Registers a topic for retrival after initialization.
TopicProxyType getTopic(const std::string &name)
Returns a proxy of the specified topic.
#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.
void RemoteGui_startRunningTask()
void RemoteGui_createTab(std::string const &name, RemoteGui::Client::Widget const &rootWidget, RemoteGui::Client::Tab *tab)
void setRange(float min, float max)
void setValue(float newValue)