Orocos Real-Time Toolkit
2.8.3
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
extras
SimulationActivity.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: Peter Soetens Tue Dec 21 22:43:07 CET 2004 SimulationActivity.cxx
3
4
SimulationActivity.cxx - description
5
-------------------
6
begin : Tue December 21 2004
7
copyright : (C) 2004 Peter Soetens
8
email : peter.soetens@mech.kuleuven.ac.be
9
10
***************************************************************************
11
* This library is free software; you can redistribute it and/or *
12
* modify it under the terms of the GNU General Public *
13
* License as published by the Free Software Foundation; *
14
* version 2 of the License. *
15
* *
16
* As a special exception, you may use this file as part of a free *
17
* software library without restriction. Specifically, if other files *
18
* instantiate templates or use macros or inline functions from this *
19
* file, or you compile this file and link it with other files to *
20
* produce an executable, this file does not by itself cause the *
21
* resulting executable to be covered by the GNU General Public *
22
* License. This exception does not however invalidate any other *
23
* reasons why the executable file might be covered by the GNU General *
24
* Public License. *
25
* *
26
* This library is distributed in the hope that it will be useful, *
27
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
28
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
29
* Lesser General Public License for more details. *
30
* *
31
* You should have received a copy of the GNU General Public *
32
* License along with this library; if not, write to the Free Software *
33
* Foundation, Inc., 59 Temple Place, *
34
* Suite 330, Boston, MA 02111-1307 USA *
35
* *
36
***************************************************************************/
37
38
39
#include "
SimulationActivity.hpp
"
40
#include "
SimulationThread.hpp
"
41
42
namespace
RTT
{
43
using namespace
base
;
44
using namespace
extras;
45
46
SimulationActivity::SimulationActivity
(
Seconds
period,
RunnableInterface
* r )
47
:
PeriodicActivity
(period,
SimulationThread
::Instance(), r)
48
{
49
}
50
51
SimulationActivity::SimulationActivity
(
secs
sec,
nsecs
nsec,
RunnableInterface
* r )
52
:
PeriodicActivity
(sec, nsec,
SimulationThread
::Instance(), r)
53
{
54
}
55
56
SimulationActivity::~SimulationActivity
()
57
{
58
stop
();
59
}
60
61
os::ThreadInterface
*
SimulationActivity::thread
() {
62
return
SimulationThread::Instance
()->simthread();
63
}
64
65
bool
SimulationActivity::execute
()
66
{
67
if
( this->
isRunning
() ) {
68
this->
step
();
69
return
true
;
70
}
71
return
false
;
72
}
73
74
75
// COPY/PASTE from PeriodicActivity.cxx
76
bool
SimulationActivity::start
()
77
{
78
if
(
isActive
() ) {
//|| !thread_->isRunning() ) {
79
//Logger::log() << Logger::Error << "PeriodicActivity : no timer, already active or thread not running." << Logger::endl;
80
return
false
;
81
}
82
83
active
=
true
;
84
bool
inError = !this->
initialize
();
85
if
( inError ) {
86
//Logger::log() << Logger::Error << "PeriodicActivity : initialize() returned false " << Logger::endl;
87
active
=
false
;
88
return
false
;
89
}
90
91
bool
res;
92
res =
thread_
->addActivity(
this
);
93
if
( res ==
false
) {
94
//Logger::log() << Logger::Error << "PeriodicActivity : addActivity() returned false " << Logger::endl;
95
this->
finalize
();
96
active
=
false
;
97
return
false
;
98
}
99
100
running
=
true
;
101
return
true
;
102
}
103
104
}
RTT::extras::SimulationActivity::thread
virtual os::ThreadInterface * thread()
Returns a pointer to the thread which will run this activity.
Definition:
SimulationActivity.cpp:61
RTT::Seconds
double Seconds
Seconds are stored as a double precision float.
Definition:
Time.hpp:53
SimulationActivity.hpp
RTT::extras::PeriodicActivity::isRunning
virtual bool isRunning() const
Query if the activity is initialized and executing.
Definition:
PeriodicActivity.cpp:149
RTT::extras::PeriodicActivity::stop
virtual bool stop()
Stop the activity This will stop the activity by removing it from the 'run-queue' of a thread or call...
Definition:
PeriodicActivity.cpp:134
RTT::extras::SimulationActivity::execute
virtual bool execute()
When a SimulationActivity is started, it may be executed by the user as well.
Definition:
SimulationActivity.cpp:65
RTT::extras::PeriodicActivity::isActive
virtual bool isActive() const
Query if the activity is started.
Definition:
PeriodicActivity.cpp:154
RTT::base::RunnableInterface
A class for running a certain piece of code in a thread.
Definition:
RunnableInterface.hpp:69
RTT::secs
long secs
seconds as a signed long.
Definition:
Time.hpp:57
RTT::extras::PeriodicActivity::running
bool running
State info.
Definition:
PeriodicActivity.hpp:216
RTT::extras::SimulationActivity::SimulationActivity
SimulationActivity(Seconds period, base::RunnableInterface *r=0)
Construct a SimulationActivity with a periodicity period Seconds.
Definition:
SimulationActivity.cpp:46
RTT::extras::PeriodicActivity::thread_
TimerThreadPtr thread_
The thread which runs this activity.
Definition:
PeriodicActivity.hpp:226
RTT::extras::PeriodicActivity::initialize
virtual bool initialize()
Definition:
PeriodicActivity.cpp:178
RTT::extras::SimulationThread::Instance
static SimulationThreadPtr Instance(double period=0.001)
Create the SimulationThread with a given period.
Definition:
SimulationThread.cpp:69
RTT::os::ThreadInterface
A thread which is being run.
Definition:
ThreadInterface.hpp:56
RTT::extras::PeriodicActivity
A PeriodicActivity is the general implementation of a Activity which has (realtime) periodic constrai...
Definition:
PeriodicActivity.hpp:70
base
SimulationThread.hpp
RTT::extras::SimulationThread
This thread is the simulated real-time periodic thread in the Orocos system.
Definition:
SimulationThread.hpp:64
RTT::extras::SimulationActivity::~SimulationActivity
virtual ~SimulationActivity()
Destroys this instance.
Definition:
SimulationActivity.cpp:56
RTT::extras::PeriodicActivity::active
bool active
State info.
Definition:
PeriodicActivity.hpp:221
RTT::extras::PeriodicActivity::step
virtual void step()
Definition:
PeriodicActivity.cpp:195
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:51
RTT::nsecs
long long nsecs
nanoseconds as a signed long long.
Definition:
Time.hpp:69
RTT::extras::PeriodicActivity::finalize
virtual void finalize()
Definition:
PeriodicActivity.cpp:202
RTT::extras::SimulationActivity::start
virtual bool start()
A simulated activity can be started also if the SimulationThread is not running yet.
Definition:
SimulationActivity.cpp:76
Generated on Fri Apr 5 2019 12:14:47 for Orocos Real-Time Toolkit by
1.8.11