FastArduino v1.10
C++ library to build fast but small Arduino/AVR projects
Loading...
Searching...
No Matches
i2c::TWriteRegisterFuture< MANAGER, REGISTER, T, FUNCTOR > Class Template Reference

Generic Future that can be used to write to an I2C device register. More...

#include <fastarduino/i2c_device_utilities.h>

Inheritance diagram for i2c::TWriteRegisterFuture< MANAGER, REGISTER, T, FUNCTOR >:
Collaboration diagram for i2c::TWriteRegisterFuture< MANAGER, REGISTER, T, FUNCTOR >:

Public Member Functions

 TWriteRegisterFuture (const ARG_TYPE &value=ARG_TYPE{}, future::FutureNotification notification=future::FutureNotification::NONE)
 Create a TWriteRegisterFuture future. More...
 
- Public Member Functions inherited from i2c::WriteRegisterFuture< MANAGER, T, FUNCTOR >
 WriteRegisterFuture (uint8_t reg, const ARG_TYPE &value, future::FutureNotification notification=future::FutureNotification::NONE)
 Create a WriteRegisterFuture future for a given device register reg. More...
 

Detailed Description

template<typename MANAGER, uint8_t REGISTER, typename T, typename FUNCTOR = functor::Identity<T>>
class i2c::TWriteRegisterFuture< MANAGER, REGISTER, T, FUNCTOR >

Generic Future that can be used to write to an I2C device register.

Most I2C devices have registers, accessible by a byte address; register values may be one or more bytes long; these may be integral types or not. TWriteRegisterFuture can be used in any I2C device supporting class (subclass of i2c::I2CDevice) in almost all situations where you need to write to a register, whatever its type. TWriteRegisterFuture supports conversion of argument passed to constructor to a transformed value that fits the device register, thanks to its use of functors. Standard functors are provided for e.g. endianness conversion, if the I2C device uses big endian (while ATmel MCU are little-endian). Typical usage is through using statement as in the following snippet:

// Excerpt from VL53L0X device
int clear_interrupt(ClearInterruptFuture& future) {
...
}
Generic Future that can be used to write to an I2C device register.
Contains the API around Future implementation.
Definition: future.h:312
Template Parameters
MANAGERthe type of I2C Manager used to handle I2C communication
REGISTERthe address of the register to write in the I2C device
Tthe type of the register to write to
FUNCTORthe type of an adequate functor to transform the value passed to this future constructor to a more suitable value for the device register; defaults to functor::Identity<T> which does nothing.
See also
TReadRegisterFuture
WriteRegisterFuture
i2c::I2CSyncManager
i2c::I2CAsyncManager
functor

Definition at line 269 of file i2c_device_utilities.h.

Constructor & Destructor Documentation

◆ TWriteRegisterFuture()

template<typename MANAGER , uint8_t REGISTER, typename T , typename FUNCTOR = functor::Identity<T>>
i2c::TWriteRegisterFuture< MANAGER, REGISTER, T, FUNCTOR >::TWriteRegisterFuture ( const ARG_TYPE &  value = ARG_TYPE{},
future::FutureNotification  notification = future::FutureNotification::NONE 
)
inlineexplicit

Create a TWriteRegisterFuture future.

This future can then be used to write a value to the register.

Parameters
valuethe value to write to the register in the I2C device
notificationdetermines if and which notifications should be dispatched by this TWriteRegisterFuture; default is none.

Definition at line 282 of file i2c_device_utilities.h.


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