Orocos Real-Time Toolkit
2.9.0
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
this->
work
(
RunnableInterface::TimeOut
);
70
return
true
;
71
}
72
return
false
;
73
}
74
75
76
// COPY/PASTE from PeriodicActivity.cxx
77
bool
SimulationActivity::start
()
78
{
79
if
(
isActive
() ) {
//|| !thread_->isRunning() ) {
80
//Logger::log() << Logger::Error << "PeriodicActivity : no timer, already active or thread not running." << Logger::endl;
81
return
false
;
82
}
83
84
active
=
true
;
85
bool
inError = !this->
initialize
();
86
if
( inError ) {
87
//Logger::log() << Logger::Error << "PeriodicActivity : initialize() returned false " << Logger::endl;
88
active
=
false
;
89
return
false
;
90
}
91
92
bool
res;
93
res =
thread_
->addActivity(
this
);
94
if
( res ==
false
) {
95
//Logger::log() << Logger::Error << "PeriodicActivity : addActivity() returned false " << Logger::endl;
96
this->
finalize
();
97
active
=
false
;
98
return
false
;
99
}
100
101
running
=
true
;
102
return
true
;
103
}
104
105
}
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:223
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:233
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::work
virtual void work(base::RunnableInterface::WorkReason reason)
Definition:
PeriodicActivity.cpp:207
RTT::extras::PeriodicActivity::active
bool active
State info.
Definition:
PeriodicActivity.hpp:228
RTT::base::RunnableInterface::TimeOut
Definition:
RunnableInterface.hpp:76
RTT::extras::PeriodicActivity::step
virtual void step()
Definition:
PeriodicActivity.cpp:200
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:52
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:214
RTT::extras::SimulationActivity::start
virtual bool start()
A simulated activity can be started also if the SimulationThread is not running yet.
Definition:
SimulationActivity.cpp:77
Generated on Fri Apr 5 2019 11:59:35 for Orocos Real-Time Toolkit by
1.8.11