Auto-delete callback timer class. More...

#include <Timer.h>

Inheritance diagram for AutoDeleteTimer:
[legend]
Collaboration diagram for AutoDeleteTimer:
[legend]

Public Types

using Millis = NanoTime::TimeSource< Clock, NanoTime::Milliseconds, uint32_t >
 
using Micros = NanoTime::TimeSource< Clock, NanoTime::Microseconds, TimeType >
 

Public Member Functions

DelegateCallbackTimerinitializeUs (TimerDelegate delegateFunction)
 Initialise timer in microseconds, with static check. More...
 
DelegateCallbackTimerinitializeUs (uint32_t microseconds, TimerDelegate delegateFunction)
 Initialise microsecond timer. More...
 
CallbackTimerinitializeUs (TimerCallback callback, void *arg=nullptr)
 Initialise timer in microseconds (static check) with Timer Callback and optional argument. More...
 
CallbackTimerinitializeUs (InterruptCallback callback=nullptr)
 Initialise timer in microseconds (static check) with optional Interrupt Callback (no argument) More...
 
CallbackTimerinitializeUs (TimeType microseconds, TimerCallback callback, void *arg=nullptr)
 Initialise timer in microseconds with Timer Callback and optional argument. More...
 
CallbackTimerinitializeUs (TimeType microseconds, InterruptCallback callback=nullptr)
 Initialise timer in microseconds with optional Interrupt Callback (no arg) More...
 
DelegateCallbackTimerinitializeMs (TimerDelegate delegateFunction)
 Initialise hardware timer in milliseconds, with static check. More...
 
DelegateCallbackTimerinitializeMs (uint32_t milliseconds, TimerDelegate delegateFunction)
 Initialise millisecond timer. More...
 
CallbackTimerinitializeMs (TimerCallback callback, void *arg=nullptr)
 Initialise hardware timer in milliseconds (static check) with Timer Callback and optional argument. More...
 
CallbackTimerinitializeMs (InterruptCallback callback=nullptr)
 Initialise hardware timer in milliseconds (static check) and optional Interrupt Callback (no arg) More...
 
CallbackTimerinitializeMs (uint32_t milliseconds, TimerCallback callback, void *arg=nullptr)
 Initialise hardware timer in milliseconds with Timer Callback and optional argument. More...
 
CallbackTimerinitializeMs (uint32_t milliseconds, InterruptCallback callback=nullptr)
 Initialise hardware timer in milliseconds with optional Interrupt Callback (no arg) More...
 
void setCallback (TimerDelegate delegateFunction)
 Set timer trigger function using Delegate callback method. More...
 
void setCallback (TimerCallback callback, void *arg=nullptr)
 Set timer trigger callback. More...
 
void setCallback (InterruptCallback callback)
 Set timer trigger callback. More...
 
CallbackTimerinitialize (TimerCallback callback, void *arg=nullptr)
 Initialise timer with an interval (static check) and callback. More...
 
CallbackTimerinitialize (TimeType time, TimerCallback callback, void *arg=nullptr)
 Initialise timer with an interval and callback. More...
 
bool start (bool repeating=true)
 Start timer running. More...
 
bool startOnce ()
 Start one-shot timer. More...
 
void stop ()
 Stops timer. More...
 
bool restart ()
 Restart timer. More...
 
bool isStarted () const
 Check if timer is started. More...
 
NanoTime::Time< TimeTypegetIntervalUs () const
 Get timer interval in microseconds. More...
 
NanoTime::Time< uint32_t > getIntervalMs () const
 Get timer interval in milliseconds. More...
 
TickType getInterval () const
 Get timer interval in clock ticks. More...
 
bool checkInterval (TickType ticks) const
 Check timer interval is valid. More...
 
bool setInterval (TickType ticks)
 Set timer interval in timer ticks. More...
 
void setInterval ()
 Set timer interval in timer ticks (static check) More...
 
void setInterval ()
 Set timer interval in specific time unit (static check) More...
 
bool setInterval (TimeType time)
 Set timer interval in timer ticks. More...
 
bool setIntervalUs (TimeType microseconds)
 Set timer interval in microseconds. More...
 
void setIntervalUs ()
 Set timer interval in microseconds (static check) More...
 
bool setIntervalMs (uint32_t milliseconds)
 Set timer interval in milliseconds. More...
 
void setIntervalMs ()
 Set timer interval in milliseconds (static check) More...
 

Static Public Member Functions

static constexpr Millis millis ()
 Get a millisecond time source. More...
 
static constexpr Micros micros ()
 Get a microsecond time source. More...
 
static constexpr uint64_t usToTicks ()
 Convert microsecond count into timer ticks. More...
 
static TickType usToTicks (TimeType time)
 Convert microsecond count into timer ticks. More...
 
static constexpr uint64_t ticksToUs ()
 Convert timer ticks into microseconds. More...
 
static TimeType ticksToUs (TickType ticks)
 Convert timer ticks into microseconds. More...
 
static constexpr void checkInterval ()
 Check timer interval in ticks is valid (static check) More...
 
static constexpr void checkInterval ()
 Check timer interval in specific time unit is valid (static check) More...
 
static constexpr void checkIntervalMs ()
 Check timer interval in milliseconds is valid (static check) More...
 
static constexpr void checkIntervalUs ()
 Check timer interval in microseconds is valid (static check) More...
 

Protected Types

using Clock = OsTimerApi::Clock
 
using TickType = uint64_t
 
using TimeType = uint64_t
 

Protected Member Functions

 ~AutoDeleteTimer ()
 
void expired ()
 
bool isArmed () const
 
TickType ticks () const
 
void arm (bool repeating)
 
void disarm ()
 
void longTick ()
 
String name () const
 
String toString () const
 
 operator String () const
 

Static Protected Member Functions

static constexpr const char * typeName ()
 
static constexpr TickType minTicks ()
 
static constexpr TickType maxTicks ()
 

Protected Attributes

friend OsTimer64Api< AutoDeleteTimer >
 
bool callbackSet
 User has provided callback function. More...
 
bool intervalSet
 User has set valid time interval. More...
 
bool repeating
 Timer is auto-repeat. More...
 
bool started
 Timer is active, or has fired. More...
 
TimerCallback func
 
void * arg
 

Detailed Description

Auto-delete callback timer class.

Member Typedef Documentation

◆ Clock

◆ Micros

◆ Millis

◆ TickType

using OsTimer64Api< AutoDeleteTimer >::TickType = uint64_t
inherited

◆ TimeType

using OsTimer64Api< AutoDeleteTimer >::TimeType = uint64_t
inherited

Constructor & Destructor Documentation

◆ ~AutoDeleteTimer()

AutoDeleteTimer::~AutoDeleteTimer ( )
inlineprotected

Member Function Documentation

◆ arm()

void OsTimer64Api< AutoDeleteTimer >::arm ( bool  repeating)
inlineinherited

◆ checkInterval() [1/3]

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::checkInterval ( TickType  ticks) const
inlineinherited

Check timer interval is valid.

Parameters
ticksInterval to check
Return values
booltrue if interval is within acceptable range for this timer

◆ checkInterval() [2/3]

static constexpr void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::checkInterval ( )
inlinestaticinherited

Check timer interval in ticks is valid (static check)

Template Parameters
ticksTimer interval to check
Note
On error, compilation fails with error message

◆ checkInterval() [3/3]

static constexpr void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::checkInterval ( )
inlinestaticinherited

Check timer interval in specific time unit is valid (static check)

Template Parameters
unitTime unit for interval
timeInterval to check
Note
On error, compilation fails with error message

◆ checkIntervalMs()

static constexpr void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::checkIntervalMs ( )
inlinestaticinherited

Check timer interval in milliseconds is valid (static check)

◆ checkIntervalUs()

static constexpr void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::checkIntervalUs ( )
inlinestaticinherited

Check timer interval in microseconds is valid (static check)

◆ disarm()

void OsTimer64Api< AutoDeleteTimer >::disarm ( )
inlineinherited

◆ expired()

void AutoDeleteTimer::expired ( )
inlineprotected

◆ getInterval()

TickType CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::getInterval ( ) const
inlineinherited

Get timer interval in clock ticks.

◆ getIntervalMs()

NanoTime::Time<uint32_t> CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::getIntervalMs ( ) const
inlineinherited

Get timer interval in milliseconds.

◆ getIntervalUs()

NanoTime::Time<TimeType> CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::getIntervalUs ( ) const
inlineinherited

Get timer interval in microseconds.

◆ initialize() [1/2]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initialize ( TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Initialise timer with an interval (static check) and callback.

Template Parameters
unitTime unit for interval
timeTimer interval
Parameters
callbackCallback function to call when timer triggers
argOptional argument passed to callback
Return values
CallbackTimer&Reference to timer
Note
If interval out of range compilation will fail with error

◆ initialize() [2/2]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initialize ( TimeType  time,
TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Initialise timer with an interval and callback.

Template Parameters
unitTime unit for interval
Parameters
timeTimer interval
callbackCallback function to call when timer triggers
argOptional argument passed to callback
Return values
CallbackTimer&Reference to timer

◆ initializeMs() [1/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeMs ( TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Initialise hardware timer in milliseconds (static check) with Timer Callback and optional argument.

◆ initializeMs() [2/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeMs ( InterruptCallback  callback = nullptr)
inlineinherited

Initialise hardware timer in milliseconds (static check) and optional Interrupt Callback (no arg)

◆ initializeMs() [3/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeMs ( uint32_t  milliseconds,
TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Initialise hardware timer in milliseconds with Timer Callback and optional argument.

◆ initializeMs() [4/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeMs ( uint32_t  milliseconds,
InterruptCallback  callback = nullptr 
)
inlineinherited

Initialise hardware timer in milliseconds with optional Interrupt Callback (no arg)

◆ initializeMs() [5/6]

DelegateCallbackTimer& DelegateCallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeMs ( TimerDelegate  delegateFunction)
inlineinherited

Initialise hardware timer in milliseconds, with static check.

Template Parameters
millisecondsTimer interval in milliseconds
Parameters
delegateFunctionFunction to call when timer triggers
Return values
ExtendedCallbackTimer&Reference to timer

◆ initializeMs() [6/6]

DelegateCallbackTimer& DelegateCallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeMs ( uint32_t  milliseconds,
TimerDelegate  delegateFunction 
)
inlineinherited

Initialise millisecond timer.

Parameters
millisecondsDuration of timer in milliseconds
delegateFunctionFunction to call when timer triggers
Note
Delegate callback method

◆ initializeUs() [1/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeUs ( TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Initialise timer in microseconds (static check) with Timer Callback and optional argument.

◆ initializeUs() [2/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeUs ( InterruptCallback  callback = nullptr)
inlineinherited

Initialise timer in microseconds (static check) with optional Interrupt Callback (no argument)

◆ initializeUs() [3/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeUs ( TimeType  microseconds,
TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Initialise timer in microseconds with Timer Callback and optional argument.

◆ initializeUs() [4/6]

CallbackTimer& CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeUs ( TimeType  microseconds,
InterruptCallback  callback = nullptr 
)
inlineinherited

Initialise timer in microseconds with optional Interrupt Callback (no arg)

◆ initializeUs() [5/6]

DelegateCallbackTimer& DelegateCallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeUs ( TimerDelegate  delegateFunction)
inlineinherited

Initialise timer in microseconds, with static check.

Template Parameters
microsecondsTimer interval in microseconds
Parameters
delegateFunctionFunction to call when timer triggers
Return values
ExtendedCallbackTimer&Reference to timer

◆ initializeUs() [6/6]

DelegateCallbackTimer& DelegateCallbackTimer< OsTimer64Api< AutoDeleteTimer > >::initializeUs ( uint32_t  microseconds,
TimerDelegate  delegateFunction 
)
inlineinherited

Initialise microsecond timer.

Parameters
microsecondsDuration of timer in milliseconds
delegateFunctionFunction to call when timer triggers
Note
Delegate callback method

◆ isArmed()

bool OsTimer64Api< AutoDeleteTimer >::isArmed ( ) const
inlineinherited

◆ isStarted()

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::isStarted ( ) const
inlineinherited

Check if timer is started.

Return values
boolTrue if started

◆ longTick()

void OsTimer64Api< AutoDeleteTimer >::longTick ( )
protectedinherited

◆ maxTicks()

static constexpr TickType OsTimer64Api< AutoDeleteTimer >::maxTicks ( )
inlinestaticinherited

◆ micros()

static constexpr Micros CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::micros ( )
inlinestaticinherited

Get a microsecond time source.

◆ millis()

static constexpr Millis CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::millis ( )
inlinestaticinherited

Get a millisecond time source.

◆ minTicks()

static constexpr TickType OsTimer64Api< AutoDeleteTimer >::minTicks ( )
inlinestaticinherited

◆ name()

String CallbackTimerApi< OsTimer64Api< AutoDeleteTimer > >::name ( ) const
inlineinherited

◆ operator String()

CallbackTimerApi< OsTimer64Api< AutoDeleteTimer > >::operator String ( ) const
inlineinherited

◆ restart()

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::restart ( )
inlineinherited

Restart timer.

Return values
boolTrue if timer started
Note
Timer is stopped then started with current configuration

◆ setCallback() [1/3]

void DelegateCallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setCallback ( TimerDelegate  delegateFunction)
inlineinherited

Set timer trigger function using Delegate callback method.

Parameters
delegateFunctionFunction to be called on timer trigger
Note
Don't use this for interrupt timers

◆ setCallback() [2/3]

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setCallback ( TimerCallback  callback,
void *  arg = nullptr 
)
inlineinherited

Set timer trigger callback.

Parameters
callbackFunction to call when timer triggers
argOptional argument passed to callback

◆ setCallback() [3/3]

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setCallback ( InterruptCallback  callback)
inlineinherited

Set timer trigger callback.

Parameters
callbackFunction to call when timer triggers
Note
Provided for convenience where callback argument not required

◆ setInterval() [1/4]

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setInterval ( TickType  ticks)
inlineinherited

Set timer interval in timer ticks.

Parameters
ticksInterval in timer ticks

◆ setInterval() [2/4]

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setInterval ( )
inlineinherited

Set timer interval in timer ticks (static check)

Template Parameters
ticksInterval in ticks
Note
On error, compilation fails with error message

◆ setInterval() [3/4]

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setInterval ( )
inlineinherited

Set timer interval in specific time unit (static check)

Template Parameters
unit
timeInterval to set
Note
On error, compilation fails with error message

◆ setInterval() [4/4]

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setInterval ( TimeType  time)
inlineinherited

Set timer interval in timer ticks.

Template Parameters
unit
Parameters
timeInterval in given units

◆ setIntervalMs() [1/2]

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setIntervalMs ( uint32_t  milliseconds)
inlineinherited

Set timer interval in milliseconds.

◆ setIntervalMs() [2/2]

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setIntervalMs ( )
inlineinherited

Set timer interval in milliseconds (static check)

◆ setIntervalUs() [1/2]

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setIntervalUs ( TimeType  microseconds)
inlineinherited

Set timer interval in microseconds.

◆ setIntervalUs() [2/2]

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::setIntervalUs ( )
inlineinherited

Set timer interval in microseconds (static check)

◆ start()

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::start ( bool  repeating = true)
inherited

Start timer running.

Parameters
repeatingTrue to restart timer when it triggers, false for one-shot (Default: true)
Return values
boolTrue if timer started

◆ startOnce()

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::startOnce ( )
inlineinherited

Start one-shot timer.

Return values
boolTrue if timer started
Note
Timer starts and will run for configured period then stop

◆ stop()

void CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::stop ( )
inlineinherited

Stops timer.

◆ ticks()

TickType OsTimer64Api< AutoDeleteTimer >::ticks ( ) const
inlineinherited

◆ ticksToUs() [1/2]

static constexpr uint64_t CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::ticksToUs ( )
inlinestaticinherited

Convert timer ticks into microseconds.

◆ ticksToUs() [2/2]

static TimeType CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::ticksToUs ( TickType  ticks)
inlinestaticinherited

Convert timer ticks into microseconds.

◆ toString()

String CallbackTimerApi< OsTimer64Api< AutoDeleteTimer > >::toString ( ) const
inlineinherited

◆ typeName()

static constexpr const char* OsTimer64Api< AutoDeleteTimer >::typeName ( )
inlinestaticinherited

◆ usToTicks() [1/2]

static constexpr uint64_t CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::usToTicks ( )
inlinestaticinherited

Convert microsecond count into timer ticks.

◆ usToTicks() [2/2]

static TickType CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::usToTicks ( TimeType  time)
inlinestaticinherited

Convert microsecond count into timer ticks.

Member Data Documentation

◆ arg

void* OsTimer64Api< AutoDeleteTimer >::arg
inherited

◆ callbackSet

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::callbackSet
protectedinherited

User has provided callback function.

◆ func

◆ intervalSet

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::intervalSet
protectedinherited

User has set valid time interval.

◆ OsTimer64Api< AutoDeleteTimer >

◆ repeating

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::repeating
protectedinherited

Timer is auto-repeat.

◆ started

bool CallbackTimer< OsTimer64Api< AutoDeleteTimer > >::started
protectedinherited

Timer is active, or has fired.


The documentation for this class was generated from the following file: