OpenPoseStressTest.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package VisionX::ArmarXObjects::OpenPoseStressTest
17  * @author Christian R. G. Dreher <c.dreher@kit.edu>
18  * @date 2021
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 
25 
26 
27 // STD/STL
28 #include <chrono>
29 #include <thread>
30 
31 // ArmarX
33 
34 
36 
37 
38 void
40 {
41 
42 }
43 
44 
45 void
47 {
48  task = new armarx::RunningTask<Component>(this, &Component::run);
49  task->start();
50 }
51 
52 
53 void
55 {
56  const bool join = true;
57  task->stop(join);
58 }
59 
60 
61 void
63 {
64 
65 }
66 
67 
68 std::string
70 {
71  return "OpenPoseStressTest";
72 }
73 
74 
75 std::string
77 {
78  return GetDefaultName();
79 }
80 
81 
84 {
86  new armarx::ComponentPropertyDefinitions{getConfigIdentifier()};
87 
88  defs->component(op);
89  defs->optional(wait_for, "wait_for", "Time to wait between starting and stopping OpenPose.");
90 
91  return defs;
92 }
93 
94 
95 void
96 visionx::opstress::Component::run()
97 {
98  const std::chrono::milliseconds t1 = std::chrono::milliseconds{wait_for.toMilliSeconds()};
99  const std::chrono::milliseconds t2{200};
100 
101  while (not task->isStopped())
102  {
103  op->start();
104  std::this_thread::sleep_for(t1);
105  op->stop();
106  std::this_thread::sleep_for(t2);
107  }
108 }
visionx::opstress::Component::onExitComponent
void onExitComponent() override
Hook for subclass.
Definition: OpenPoseStressTest.cpp:62
visionx::opstress::Component::createPropertyDefinitions
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: OpenPoseStressTest.cpp:83
visionx::opstress::Component::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: OpenPoseStressTest.cpp:54
visionx::opstress::Component::GetDefaultName
static std::string GetDefaultName()
Definition: OpenPoseStressTest.cpp:69
armarx::RunningTask
Definition: ArmarXMultipleObjectsScheduler.h:35
visionx::opstress::Component::onConnectComponent
void onConnectComponent() override
Pure virtual hook for the subclass.
Definition: OpenPoseStressTest.cpp:46
visionx::opstress::Component::onInitComponent
void onInitComponent() override
Pure virtual hook for the subclass.
Definition: OpenPoseStressTest.cpp:39
PluginAll.h
armarx::ComponentPropertyDefinitions
Default component property definition container.
Definition: Component.h:70
visionx::opstress::Component::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: OpenPoseStressTest.cpp:76
IceUtil::Handle< class PropertyDefinitionContainer >
OpenPoseStressTest.h
visionx::opstress::Component::~Component
~Component() override