uc_timer.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3  */
4 
5 #include <uavcan/node/timer.hpp>
6 #include <cassert>
7 
8 namespace uavcan
9 {
10 /*
11  * TimerBase
12  */
14 {
16 
17  const MonotonicTime scheduled_time = getDeadline();
18 
20  {
21  startWithDeadline(scheduled_time + period_);
22  }
23 
24  // Application can re-register the timer with different params, it's OK
25  handleTimerEvent(TimerEvent(scheduled_time, current));
26 }
27 
29 {
30  stop();
33 }
34 
36 {
37  stop();
40 }
41 
43 {
45  stop();
46  period_ = period;
48 }
49 
50 }
uavcan::DeadlineHandler::getDeadline
MonotonicTime getDeadline() const
Definition: scheduler.hpp:41
uavcan::TimerBase::handleTimerEvent
virtual void handleTimerEvent(const TimerEvent &event)=0
uavcan::MonotonicDuration
Definition: time.hpp:182
timer.hpp
uavcan::TimerBase::startPeriodic
void startPeriodic(MonotonicDuration period)
Definition: uc_timer.cpp:42
uavcan::TimerBase::handleDeadline
virtual void handleDeadline(MonotonicTime current)
Definition: uc_timer.cpp:13
uavcan::DeadlineHandler::startWithDeadline
void startWithDeadline(MonotonicTime deadline)
Definition: uc_scheduler.cpp:14
uavcan::TimerBase::period_
MonotonicDuration period_
Definition: timer.hpp:48
uavcan::DeadlineHandler::isRunning
bool isRunning() const
Definition: uc_scheduler.cpp:32
uavcan::DeadlineHandler::stop
void stop()
Definition: uc_scheduler.cpp:27
uavcan::TimerBase::startOneShotWithDeadline
void startOneShotWithDeadline(MonotonicTime deadline)
Definition: uc_timer.cpp:28
uavcan::DeadlineHandler::startWithDelay
void startWithDelay(MonotonicDuration delay)
Definition: uc_scheduler.cpp:22
uavcan::DurationBase< MonotonicDuration >::getInfinite
static MonotonicDuration getInfinite()
Definition: time.hpp:33
uavcan::MonotonicTime
Definition: time.hpp:184
uavcan
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:204
uavcan::TimerBase::startOneShotWithDelay
void startOneShotWithDelay(MonotonicDuration delay)
Definition: uc_timer.cpp:35
UAVCAN_ASSERT
#define UAVCAN_ASSERT(x)
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:184
uavcan::TimerEvent
Definition: timer.hpp:32


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:03