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 }
void startWithDeadline(MonotonicTime deadline)
void startPeriodic(MonotonicDuration period)
Definition: uc_timer.cpp:42
void startWithDelay(MonotonicDuration delay)
virtual void handleTimerEvent(const TimerEvent &event)=0
static MonotonicDuration getInfinite()
Definition: time.hpp:33
void startOneShotWithDelay(MonotonicDuration delay)
Definition: uc_timer.cpp:35
virtual void handleDeadline(MonotonicTime current)
Definition: uc_timer.cpp:13
MonotonicTime getDeadline() const
Definition: scheduler.hpp:41
void startOneShotWithDeadline(MonotonicTime deadline)
Definition: uc_timer.cpp:28
MonotonicDuration period_
Definition: timer.hpp:48


uavcan_communicator
Author(s):
autogenerated on Wed Jan 11 2023 03:59:40