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
37void
41
42void
44{
45 task = new armarx::RunningTask<Component>(this, &Component::run);
46 task->start();
47}
48
49void
51{
52 const bool join = true;
53 task->stop(join);
54}
55
56void
60
61std::string
63{
64 return "OpenPoseStressTest";
65}
66
67std::string
72
75{
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
85void
86visionx::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}
Default component property definition container.
Definition Component.h:70
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Definition Component.cpp:90
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.
std::string getDefaultName() const override
Retrieve default name of component.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.