Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2435c1e

Browse files
committed
rtt_rosclock: updated SimClockActivity for API changes in orocos-toolchain/rtt#91
Signed-off-by: Johannes Meyer <[email protected]>
1 parent 7771a5b commit 2435c1e

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

rtt_rosclock/include/rtt_rosclock/rtt_rosclock_sim_clock_activity.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#define __RTT_ROSCLOCK_RTT_ROSCLOCK_SIM_CLOCK_ACTIVITY_H
4444

4545
#include <rtt/base/ActivityInterface.hpp>
46+
#include <rtt/base/RunnableInterface.hpp>
4647

4748
#include <rtt/os/TimeService.hpp>
4849
#include <rtt/os/Mutex.hpp>
@@ -78,7 +79,7 @@ namespace rtt_rosclock {
7879

7980
virtual bool initialize();
8081
virtual void step();
81-
virtual void loop();
82+
virtual void work(RTT::base::RunnableInterface::WorkReason reason);
8283
virtual bool breakLoop();
8384
virtual void finalize();
8485

@@ -91,6 +92,7 @@ namespace rtt_rosclock {
9192

9293
virtual bool execute();
9394
virtual bool trigger();
95+
virtual bool timeout();
9496

9597
virtual RTT::os::TimeService::ticks getLastExecutionTicks() const;
9698

rtt_rosclock/src/rtt_rosclock_sim_clock_activity.cpp

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -111,26 +111,35 @@ RTT::os::ThreadInterface* SimClockActivity::thread()
111111

112112
bool SimClockActivity::initialize()
113113
{
114-
return true;
114+
if (runner != 0)
115+
return runner->initialize();
116+
else
117+
return true;
115118
}
116119

117120
void SimClockActivity::step()
118121
{
122+
// override this method to avoid running runner.
123+
if (runner != 0)
124+
runner->step();
119125
}
120126

121-
void SimClockActivity::loop()
127+
void SimClockActivity::work(RunnableInterface::WorkReason reason)
122128
{
123-
this->step();
129+
// override this method to avoid running runner.
130+
if (runner != 0)
131+
runner->work(reason);
124132
}
125133

126134
bool SimClockActivity::breakLoop()
127135
{
128136
return false;
129137
}
130138

131-
132139
void SimClockActivity::finalize()
133140
{
141+
if (runner != 0)
142+
runner->finalize();
134143
}
135144

136145
bool SimClockActivity::start()
@@ -144,7 +153,7 @@ bool SimClockActivity::start()
144153
active_ = true;
145154
last_ = 0;
146155

147-
if ( runner ? runner->initialize() : this->initialize() ) {
156+
if ( this->initialize() ) {
148157
running_ = true;
149158
} else {
150159
active_ = false;
@@ -159,10 +168,7 @@ bool SimClockActivity::stop()
159168
return false;
160169

161170
running_ = false;
162-
if (runner)
163-
runner->finalize();
164-
else
165-
this->finalize();
171+
this->finalize();
166172
active_ = false;
167173
return true;
168174
}
@@ -189,10 +195,17 @@ bool SimClockActivity::trigger()
189195

190196
bool SimClockActivity::execute()
191197
{
192-
if (!running_) return false;
193-
if (runner) runner->step(); else this->step();
194-
last_ = RTT::os::TimeService::Instance()->getTicks();
195-
return true;
198+
if ( this->isRunning() ) {
199+
this->step();
200+
this->work(RunnableInterface::TimeOut);
201+
return true;
202+
}
203+
return false;
204+
}
205+
206+
bool SimClockActivity::timeout()
207+
{
208+
return false;
196209
}
197210

198211
RTT::os::TimeService::ticks SimClockActivity::getLastExecutionTicks() const

0 commit comments

Comments
 (0)