FastArduino  v1.9
C++ library to build fast but small Arduino/AVR projects
i2c::I2CAsyncLCDebugManager< MODE_, POLICY_, DEBUG_HOOK_ > Class Template Reference

Asynchronous I2C Manager for ATmega architecture with debug facility and support for dynamic proxies. More...

#include <fastarduino/i2c_handler_atmega.h>

Inheritance diagram for i2c::I2CAsyncLCDebugManager< MODE_, POLICY_, DEBUG_HOOK_ >:
Collaboration diagram for i2c::I2CAsyncLCDebugManager< MODE_, POLICY_, DEBUG_HOOK_ >:

Public Member Functions

template<uint8_t SIZE>
 I2CAsyncLCDebugManager (typename PARENT::I2CCOMMAND(&buffer)[SIZE], lifecycle::AbstractLifeCycleManager &lifecycle_manager, DEBUG_HOOK_ debug_hook)
 Create an asynchronous I2C Manager for ATmega MCUs. More...
 
- Public Member Functions inherited from i2c::AbstractI2CAsyncManager< MODE_, I2CErrorPolicy::CLEAR_ALL_COMMANDS, true, false, I2C_STATUS_HOOK, true, I2C_DEBUG_HOOK >
void begin ()
 Prepare and enable the MCU for I2C transmission. More...
 
void end ()
 Disable MCU I2C transmission. More...
 
void begin_ ()
 Prepare and enable the MCU for I2C transmission. More...
 
void end_ ()
 Disable MCU I2C transmission. More...
 

Additional Inherited Members

- Public Types inherited from i2c::AbstractI2CAsyncManager< MODE_, I2CErrorPolicy::CLEAR_ALL_COMMANDS, true, false, I2C_STATUS_HOOK, true, I2C_DEBUG_HOOK >
using ABSTRACT_FUTURE = future::AbstractFuture
 
using PROXY = typename LC::template PROXY< T >
 
using FUTURE = future::Future< OUT, IN >
 
using FUTURE_PROXY = PROXY< ABSTRACT_FUTURE >
 The type passed to callback functions registered alongside ISR. More...
 
using I2CCOMMAND = I2CCommand< FUTURE_PROXY >
 The type of I2CCommand to use in the buffer passed to the constructor of this AbstractI2CAsyncManager.
 

Detailed Description

template<I2CMode MODE_, I2CErrorPolicy POLICY_ = I2CErrorPolicy::CLEAR_ALL_COMMANDS, typename DEBUG_HOOK_ = I2C_DEBUG_HOOK>
class i2c::I2CAsyncLCDebugManager< MODE_, POLICY_, DEBUG_HOOK_ >

Asynchronous I2C Manager for ATmega architecture with debug facility and support for dynamic proxies.

Warning
You need to register the proper ISR for this class to work properly.
Template Parameters
MODE_the I2C mode for this manager
POLICY_the policy to use in case of an error during I2C transaction
DEBUG_HOOK_the type of the hook to be called. This can be a simple function pointer (of type I2C_DEBUG_HOOK) or a Functor class (or Functor class reference). Using a Functor class will generate smaller code.
See also
i2c::I2CMode
i2c::I2CErrorPolicy
REGISTER_I2C_ISR()
REGISTER_I2C_ISR_FUNCTION()
REGISTER_I2C_ISR_METHOD()

Definition at line 1041 of file i2c_handler_atmega.h.

Constructor & Destructor Documentation

◆ I2CAsyncLCDebugManager()

template<I2CMode MODE_, I2CErrorPolicy POLICY_ = I2CErrorPolicy::CLEAR_ALL_COMMANDS, typename DEBUG_HOOK_ = I2C_DEBUG_HOOK>
template<uint8_t SIZE>
i2c::I2CAsyncLCDebugManager< MODE_, POLICY_, DEBUG_HOOK_ >::I2CAsyncLCDebugManager ( typename PARENT::I2CCOMMAND(&)  buffer[SIZE],
lifecycle::AbstractLifeCycleManager lifecycle_manager,
DEBUG_HOOK_  debug_hook 
)
inlineexplicit

Create an asynchronous I2C Manager for ATmega MCUs.

Template Parameters
SIZEthe size of I2CCommand buffer that will be queued for asynchronous handling
Parameters
buffera buffer of SIZE I2CCommand items, that will be used to queue I2C command for asynchronous handling
lifecycle_managerthe AbstractLifeCycleManager used to handle the lifecycle of Future used by this I2C Manager
debug_hookthe debug hook function or functor that is called during I2C transaction execution

Definition at line 1059 of file i2c_handler_atmega.h.


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