tin  1.5.9
tsm::chrono_ticks Namespace Reference

Classes

class  tick_domain
 
class  elapsed_tick_source
 

Typedefs

using millisecond_domain = tick_domain< std::chrono::milliseconds >
 
using second_domain = tick_domain< std::chrono::seconds >
 

Functions

template<typename Duration , typename TickPeriod >
constexpr tsm::tick_rep duration_to_ticks (Duration duration, TickPeriod tick_period)
 
constexpr millisecond_domain one_tick_per_millisecond () noexcept
 
constexpr second_domain one_tick_per_second () noexcept
 
template<typename TickPeriod , typename Duration >
tsm::sleep_ticks_awaitable sleep_for (tick_domain< TickPeriod > domain, Duration duration) noexcept
 
template<typename TickPeriod , typename Duration >
tsm::sleep_ticks_awaitable after (tick_domain< TickPeriod > domain, Duration duration) noexcept
 
template<typename TickPeriod , typename Duration >
tsm::timeout_ticks_awaitable timeout (tick_domain< TickPeriod > domain, Duration duration) noexcept
 
template<typename TickPeriod , typename Duration >
tsm::periodic_ticks every (tick_domain< TickPeriod > domain, Duration duration) noexcept
 

Typedef Documentation

◆ millisecond_domain

using tsm::chrono_ticks::millisecond_domain = typedef tick_domain<std::chrono::milliseconds>

◆ second_domain

using tsm::chrono_ticks::second_domain = typedef tick_domain<std::chrono::seconds>

Function Documentation

◆ after()

template<typename TickPeriod , typename Duration >
tsm::sleep_ticks_awaitable tsm::chrono_ticks::after ( tick_domain< TickPeriod >  domain,
Duration  duration 
)
noexcept

◆ duration_to_ticks()

template<typename Duration , typename TickPeriod >
constexpr tsm::tick_rep tsm::chrono_ticks::duration_to_ticks ( Duration  duration,
TickPeriod  tick_period 
)
constexpr

Translate platform durations into semantic HSM ticks.

The HSM core should not read wall clocks. A platform adapter may measure time with std::chrono, FreeRTOS ticks, SysTick, or simulation time, then convert that elapsed duration into an explicit tick count before calling the runtime.

The conversion rounds up partial periods so a non-zero elapsed duration is not silently lost. Very large durations saturate to tsm::tick_rep.

◆ every()

template<typename TickPeriod , typename Duration >
tsm::periodic_ticks tsm::chrono_ticks::every ( tick_domain< TickPeriod >  domain,
Duration  duration 
)
noexcept

◆ one_tick_per_millisecond()

constexpr millisecond_domain tsm::chrono_ticks::one_tick_per_millisecond ( )
constexprnoexcept

◆ one_tick_per_second()

constexpr second_domain tsm::chrono_ticks::one_tick_per_second ( )
constexprnoexcept

◆ sleep_for()

template<typename TickPeriod , typename Duration >
tsm::sleep_ticks_awaitable tsm::chrono_ticks::sleep_for ( tick_domain< TickPeriod >  domain,
Duration  duration 
)
noexcept

◆ timeout()

template<typename TickPeriod , typename Duration >
tsm::timeout_ticks_awaitable tsm::chrono_ticks::timeout ( tick_domain< TickPeriod >  domain,
Duration  duration 
)
noexcept