5 #include <gtest/gtest.h> 8 #include "../clock.hpp" 9 #include "../transport/can/can.hpp" 12 #if !defined(UAVCAN_CPP11) || !defined(UAVCAN_CPP_VERSION) 13 # error UAVCAN_CPP_VERSION 51 a.startOneShotWithDeadline(start_ts +
durMono(100000));
59 ASSERT_EQ(0, node.
spin(start_ts +
durMono(1000000)));
66 ASSERT_GT(1100, tcc.
events_b.size());
69 for (
unsigned i = 0; i < tcc.
events_b.size(); i++)
73 next_expected_deadline +=
durMono(1000);
82 ASSERT_FALSE(a.isRunning());
85 ASSERT_TRUE(b.isRunning());
86 ASSERT_EQ(1000, b.getPeriod().toUSec());
93 #if UAVCAN_CPP_VERSION >= UAVCAN_CPP11 111 std::cout << count << std::endl;
113 ASSERT_GE(15, count);
uavcan::MethodBinder< TimerCallCounter *, void(TimerCallCounter::*)(const uavcan::TimerEvent &)> Binder
virtual uavcan::MonotonicTime getMonotonic() const
void startPeriodic(MonotonicDuration period)
void callA(const uavcan::TimerEvent &ev)
unsigned getNumHandlers() const
static MonotonicDuration getInfinite()
class UAVCAN_EXPORT Scheduler
void callB(const uavcan::TimerEvent &ev)
int spin(MonotonicTime deadline)
static bool areTimestampsClose(const T &a, const T &b, int64_t precision_usec=100000)
virtual uavcan::Scheduler & getScheduler()
std::vector< uavcan::TimerEvent > events_a
uavcan::MonotonicDuration durMono(int64_t usec)
static MonotonicDuration fromMSec(int64_t ms)
std::vector< uavcan::TimerEvent > events_b
DeadlineScheduler & getDeadlineScheduler()