Руслан Урядинский / libuavcan

Dependents:   UAVCAN UAVCAN_Subscriber

Embed: (wiki syntax)

« Back to documentation index

ISystemClock Class Reference

ISystemClock Class Reference

System clock interface - monotonic and UTC. More...

#include <system_clock.hpp>

Inherited by SystemClockDriver, SystemClockMock, SystemClock, SystemClock, and SystemClock.

Public Member Functions

virtual MonotonicTime getMonotonic () const =0
 Monototic system clock.
virtual UtcTime getUtc () const =0
 Global network clock.
virtual void adjustUtc (UtcDuration adjustment)=0
 Adjust the network-synchronized clock.

Detailed Description

System clock interface - monotonic and UTC.

Definition at line 19 of file system_clock.hpp.


Member Function Documentation

virtual void adjustUtc ( UtcDuration  adjustment ) [pure virtual]

Adjust the network-synchronized clock.

Refer to getUtc() for details.

For POSIX refer to adjtime(), settimeofday().

Parameters:
[in]adjustmentAmount of time to add to the clock value.

Implemented in SystemClock.

virtual MonotonicTime getMonotonic (  ) const [pure virtual]

Monototic system clock.

This clock shall never jump or change rate; the base time is irrelevant. This clock is mandatory and must remain functional at all times.

On POSIX systems use clock_gettime() with CLOCK_MONOTONIC.

Implemented in SystemClock, and SystemClock.

virtual UtcTime getUtc (  ) const [pure virtual]

Global network clock.

It doesn't have to be UTC, the name is a bit misleading - actual time base doesn't matter.

This clock can be synchronized with other nodes on the bus, hence it can jump and/or change rate occasionally. This clock is optional; if it is not supported, return zero. Also return zero if the UTC time is not available yet (e.g. the device has just started up with no battery clock).

For POSIX refer to clock_gettime(), gettimeofday().

Implemented in SystemClock, and SystemClock.