Mbed OS Reference
Loading...
Searching...
No Matches
TimeoutBase Class Reference

A Timeout is used to call a function at a point in the future. More...

#include <Timeout.h>

Inheritance diagram for TimeoutBase:
TickerBase TimerEvent NonCopyable< TickerBase > NonCopyable< TimerEvent > LowPowerTimeout Timeout

Public Member Functions

std::chrono::microseconds remaining_time () const
 Return time remaining until callback. More...
 
template<typename F >
MBED_FORCEINLINE void attach (F &&func, float t)
 Attach a function to be called by the Ticker, specifying the interval in seconds. More...
 
void attach (Callback< void()> func, std::chrono::microseconds t)
 Attach a function to be called by the Ticker, specifying the interval in microseconds. More...
 
void attach_us (Callback< void()> func, us_timestamp_t t)
 Attach a function to be called by the Ticker, specifying the interval in microseconds. More...
 
void detach ()
 Detach the function. More...
 

Detailed Description

A Timeout is used to call a function at a point in the future.

You can use as many separate Timeout objects as you require.

Note
Synchronization level: Interrupt safe

Example:

// Blink until timeout.
#include "mbed.h"
Timeout timeout;
DigitalOut led(LED1);
int on = 1;
void attimeout() {
on = 0;
}
int main() {
timeout.attach(&attimeout, 5);
while(on) {
led = !led;
ThisThread::sleep_for(200);
}
}
A digital output, used for setting the state of a pin.
Definition: DigitalOut.h:55

Definition at line 60 of file Timeout.h.

Member Function Documentation

◆ remaining_time()

std::chrono::microseconds remaining_time ( ) const

Return time remaining until callback.

Returns
time remaining until callback is due
Note
if the callback is overdue, or has already run, the returned value will be negative

Definition at line 68 of file Timeout.h.

◆ attach() [1/2]

MBED_FORCEINLINE void attach ( F &&  func,
float  t 
)
inherited

Attach a function to be called by the Ticker, specifying the interval in seconds.

The method forwards its arguments to attach_us() rather than copying them which may not be trivial depending on the callback copied. The function is forcibly inlined to not use floating-point operations. This is possible given attach_us() expects an integer value for the callback interval.

Parameters
funcpointer to the function to be called
tthe time between calls in seconds
Deprecated:
Pass a chrono duration, not a float second count. For example use 10ms rather than 0.01f.

Definition at line 92 of file Ticker.h.

◆ attach() [2/2]

void attach ( Callback< void()>  func,
std::chrono::microseconds  t 
)
inherited

Attach a function to be called by the Ticker, specifying the interval in microseconds.

Parameters
funcpointer to the function to be called
tthe time between calls in micro-seconds
Note
setting t to a value shorter than it takes to process the ticker callback causes the system to hang. Ticker callback is called constantly with no time for threads scheduling.

◆ attach_us()

void attach_us ( Callback< void()>  func,
us_timestamp_t  t 
)
inherited

Attach a function to be called by the Ticker, specifying the interval in microseconds.

Parameters
funcpointer to the function to be called
tthe time between calls in micro-seconds
Note
setting t to a value shorter than it takes to process the ticker callback causes the system to hang. Ticker callback is called constantly with no time for threads scheduling.
Deprecated:
Pass a chrono duration, not an integer microsecond count. For example use 10ms rather than 10000.

◆ detach()

void detach ( )
inherited

Detach the function.