StartPlayback.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 RobotSkillTemplates::PlayMMMFile
17  * @author Philipp Schmidt ( ufedv at student dot kit dot edu )
18  * @date 2016
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #include "StartPlayback.h"
24 
25 using namespace armarx;
26 using namespace PlayMMMFile;
27 
28 // DO NOT EDIT NEXT LINE
29 StartPlayback::SubClassRegistry StartPlayback::Registry(StartPlayback::GetName(), &StartPlayback::CreateInstance);
30 
31 
32 
34 {
35  // put your user code for the enter-point here
36  // execution time should be short (<100ms)
37 }
38 
40 {
41  // put your user code for the execution-phase here
42  // runs in seperate thread, thus can do complex operations
43  // should check constantly whether isRunningTaskStopped() returns true
44 
45  //Go to initial pose
46  this->getTrajectoryPlayer()->resetTrajectoryPlayer(false);
47  this->getTrajectoryPlayer()->setIsVelocityControl(true);
48 
49  //Start
50  if (!this->getTrajectoryPlayer()->startTrajectoryPlayer())
51  {
52  this->emitFailure();
53  }
54 
55  // uncomment this if you need a continous run function. Make sure to use sleep or use blocking wait to reduce cpu load.
56  while (!isRunningTaskStopped()) // stop run function if returning true
57  {
58  if (this->getTrajectoryPlayer()->getCurrentTime() >= this->getTrajectoryPlayer()->getEndTime())
59  {
60  ARMARX_LOG << "emitSuccess()";
61  this->emitSuccess();
62  return;
63  }
64  //Wait 50ms
65  usleep(50000);
66  }
67 }
68 
69 //void StartPlayback::onBreak()
70 //{
71 // // put your user code for the breaking point here
72 // // execution time should be short (<100ms)
73 //}
74 
76 {
77  // put your user code for the exit point here
78  // execution time should be short (<100ms)
79 }
80 
81 
82 // DO NOT EDIT NEXT FUNCTION
84 {
85  return XMLStateFactoryBasePtr(new StartPlayback(stateData));
86 }
87 
armarx::PlayMMMFile::StartPlayback::onExit
void onExit() override
Definition: StartPlayback.cpp:75
armarx::XMLStateConstructorParams
Definition: XMLState.h:50
IceInternal::Handle
Definition: forward_declarations.h:8
armarx::PlayMMMFile::StartPlayback::CreateInstance
static XMLStateFactoryBasePtr CreateInstance(XMLStateConstructorParams stateData)
Definition: StartPlayback.cpp:83
armarx::PlayMMMFile::StartPlayback::run
void run() override
Definition: StartPlayback.cpp:39
ARMARX_LOG
#define ARMARX_LOG
Definition: Logging.h:163
armarx::PlayMMMFile::StartPlayback::onEnter
void onEnter() override
Definition: StartPlayback.cpp:33
armarx::XMLStateFactoryBasePtr
IceInternal::Handle< XMLStateFactoryBase > XMLStateFactoryBasePtr
Definition: XMLState.h:65
StartPlayback.h
armarx::PlayMMMFile::StartPlayback::Registry
static SubClassRegistry Registry
Definition: StartPlayback.h:46
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::PlayMMMFile::StartPlayback::StartPlayback
StartPlayback(const XMLStateConstructorParams &stateData)
Definition: StartPlayback.h:33