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 void
39 {
40 }
41 
42 void
44 {
45  task = new armarx::RunningTask<Component>(this, &Component::run);
46  task->start();
47 }
48 
49 void
51 {
52  const bool join = true;
53  task->stop(join);
54 }
55 
56 void
58 {
59 }
60 
61 std::string
63 {
64  return "OpenPoseStressTest";
65 }
66 
67 std::string
69 {
70  return GetDefaultName();
71 }
72 
75 {
77  new armarx::ComponentPropertyDefinitions{getConfigIdentifier()};
78 
79  defs->component(op);
80  defs->optional(wait_for, "wait_for", "Time to wait between starting and stopping OpenPose.");
81 
82  return defs;
83 }
84 
85 void
86 visionx::opstress::Component::run()
87 {
88  const std::chrono::milliseconds t1 = std::chrono::milliseconds{wait_for.toMilliSeconds()};
89  const std::chrono::milliseconds t2{200};
90 
91  while (not task->isStopped())
92  {
93  op->start();
94  std::this_thread::sleep_for(t1);
95  op->stop();
96  std::this_thread::sleep_for(t2);
97  }
98 }
visionx::opstress::Component::onExitComponent
void onExitComponent() override
Hook for subclass.
Definition: OpenPoseStressTest.cpp:57
visionx::opstress::Component::createPropertyDefinitions
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: OpenPoseStressTest.cpp:74
visionx::opstress::Component::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: OpenPoseStressTest.cpp:50
visionx::opstress::Component::GetDefaultName
static std::string GetDefaultName()
Definition: OpenPoseStressTest.cpp:62
armarx::RunningTask
Definition: ArmarXMultipleObjectsScheduler.h:36
visionx::opstress::Component::onConnectComponent
void onConnectComponent() override
Pure virtual hook for the subclass.
Definition: OpenPoseStressTest.cpp:43
visionx::opstress::Component::onInitComponent
void onInitComponent() override
Pure virtual hook for the subclass.
Definition: OpenPoseStressTest.cpp:38
PluginAll.h
armarx::ComponentPropertyDefinitions
Default component property definition container.
Definition: Component.h:69
visionx::opstress::Component::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: OpenPoseStressTest.cpp:68
IceUtil::Handle< class PropertyDefinitionContainer >
OpenPoseStressTest.h
visionx::opstress::Component::~Component
~Component() override