26 #include <ArmarXCore/interface/statechart/RemoteStateOffererIce.h>
55 return "StatechartExecutorExample";
68 getProxy(_statechartExecutor,
"SimpleStatechartExecutor");
70 getProxy(_remoteGuiPrx,
"RemoteGuiProvider");
71 _tabName =
"StatechartExecutorExample";
72 setupRemoteGuiWidget();
76 this, &StatechartExecutorExample::runRemoteGui);
77 _remoteGuiTask->start();
97 using namespace RemoteGui;
100 StatechartExecutorExample::setupRemoteGuiWidget()
105 grid.addChild(test0Button);
107 grid.addChild(test1Button);
109 grid.addChild(test2Button);
112 hlayout.addChild(grid);
115 hlayout.addChild(stopButton);
119 manualLayout.addChild(label1);
121 manualLayout.addChild(lineedit1);
123 manualLayout.addChild(label2);
125 manualLayout.addChild(lineedit2);
127 manualLayout.addChild(runManual);
130 vlayout.addChildren({hlayout, manualLayout});
132 _remoteGuiPrx->createTab(_tabName, vlayout);
136 StatechartExecutorExample::runRemoteGui()
138 int cycleDurationMs = 20;
139 CycleUtil
c(cycleDurationMs);
140 while (!_remoteGuiTask->isStopped())
142 _remoteGuiTab.receiveUpdates();
144 if (_remoteGuiTab.getButton(
"Stop").clicked())
146 _statechartExecutor->stopImmediatly();
148 auto output = _statechartExecutor->getSetOutputParameters();
149 for (
const auto& p : output)
152 ARMARX_INFO << p.first <<
": " << var->get()->getOutputValueOnly();
156 if (_remoteGuiTab.getButton(
"Test_normal").clicked())
158 std::string proxyName =
"StatechartExecutionGroupRemoteStateOfferer";
159 std::string stateName =
"TestStateForStatechartExecution";
170 param2->value =
new SingleVariant(1);
172 inputMap[
"intTest"] = param2;
174 std::vector<PosePtr>
v;
179 inputMap[
"intListTest"] = param3;
181 std::map<std::string, PosePtr> m;
185 param4->value = StringValueMap::FromStdMap<PosePtr>(m);
187 inputMap[
"poseMapTest"] = param4;
189 _statechartExecutor->ensureVariantLibrariesAreLoaded(inputMap);
190 _statechartExecutor->startStatechart(proxyName, stateName, inputMap);
204 if (_remoteGuiTab.getButton(
"Test_args").clicked())
208 if (_remoteGuiTab.getButton(
"Test_wrongProxy").clicked())
210 StringVariantContainerBaseMap output =
211 _statechartExecutor->getSetOutputParameters();
215 SingleVariantPtr::dynamicCast(output[
"OutputInt"])->get()->get<
int>();
220 if (_remoteGuiTab.getButtonClicked(
"Run"))
224 _remoteGuiTab.sendUpdates();
225 c.waitForCycleDuration();