1#include <vanetza/common/position_provider.hpp>
2#include <vanetza/common/runtime.hpp>
3#include <vanetza/geonet/position_updater.hpp>
4#include <vanetza/geonet/router.hpp>
5#include <vanetza/units/time.hpp>
14 m_runtime(rt), m_positioning(position), m_router(router)
19PositionUpdater::~PositionUpdater()
24void PositionUpdater::schedule()
26 if (m_interval > Clock::duration::zero()) {
27 m_runtime.
schedule(m_interval, [
this](Clock::time_point) {
36 m_interval = interval;
43 if (rate > units::Frequency::from_value(0.0)) {
44 using namespace std::chrono;
45 const duration<double> interval { 1.0 / rate / units::si::second };
46 update_rate(duration_cast<Clock::duration>(interval));
virtual const PositionFix & position_fix()=0
virtual void cancel(const void *scope)=0
virtual void schedule(Clock::time_point tp, const Callback &cb, const void *scope=nullptr)=0
void update_rate(Clock::duration interval)
PositionUpdater(Runtime &runtime, PositionProvider &pos, Router &router)
const MIB & get_mib() const
Get Management Information Base (MIB)
void update_position(const PositionFix &)
Update router's local position vector.