Dataflow Runtime API  3.1.1.0
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP Class Reference

Handles the I2C transactions with an internal queue for pending transactions. More...

#include <Imt.Base.Dff.ActiveParts.AM3354/I2C/I2CTransactionHandlerAP.h>

Inheritance diagram for imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP:
imt::base::dff::activeparts::ActivePartAbs imt::base::dff::runtime::ExecutableIfc imt::base::dff::runtime::TimerServiceIfc

Public Member Functions

 I2CTransactionHandlerAP (const imt::base::dff::runtime::RuntimePriority::Id priority, const I2CModuleAddress moduleAddress, I2CTransactionQueue &transactionQueue, const uint8_t maxTransactionRetries=3U, const uint32_t transactionRetryDelayMs=2U, const uint32_t interruptHandlerTimeoutMs=50U)
 Constructor. More...
 
virtual ~I2CTransactionHandlerAP (void)
 Destructor. More...
 
virtual void execute (const uint16_t protocolIdentifier, imt::base::core::serialization::Deserializer &deserializer)
 
- Public Member Functions inherited from imt::base::dff::activeparts::ActivePartAbs
 ActivePartAbs (const imt::base::dff::runtime::RuntimePriority::Id priority, const imt::base::dff::runtime::ExecutableConfiguration executableConfiguration=imt::base::dff::runtime::ExecutableConfiguration())
 Constructor. More...
 
virtual ~ActivePartAbs (void)
 Destructor. More...
 
virtual const imt::base::dff::runtime::ExecutableConfigurationgetExecutableConfiguration (void) const
 
virtual imt::base::dff::runtime::RuntimePriority::Id getPriority (void) const
 
void initialize (void)
 Initialize the active part. More...
 
void start (void)
 Start the active part. More...
 
bool isInitialized (void) const
 Check if active part is initialized. More...
 
bool isStarted (void) const
 Check if active part is started. More...
 
virtual void startOneShotTimer (imt::base::dff::runtime::RuntimeTimer::TimerHandle &timerToStart, const uint32_t timerTicksMs) const
 Starts or restarts the given one shot timer for this active part. More...
 
virtual void startPeriodicTimer (imt::base::dff::runtime::RuntimeTimer::TimerHandle &timerToStart, const uint32_t intervalMs) const
 Start a periodic timer for this active part. More...
 
virtual void killTimer (imt::base::dff::runtime::RuntimeTimer::TimerHandle &timerToKill) const
 Kill the given timer (if required). More...
 
- Public Member Functions inherited from imt::base::dff::runtime::ExecutableIfc
virtual ~ExecutableIfc (void)
 Destructor. More...
 
- Public Member Functions inherited from imt::base::dff::runtime::TimerServiceIfc
virtual ~TimerServiceIfc (void)
 Destructor. More...
 

Public Attributes

PortOutput PortOut
 Ports of the active part. More...
 
- Public Attributes inherited from imt::base::dff::activeparts::ActivePartAbs
const PortInputPortIn
 Input Port of the active part (as a public visible read-only reference). More...
 

Protected Member Functions

virtual void onInitialize (void)
 
virtual void onStart (void)
 

Detailed Description

Handles the I2C transactions with an internal queue for pending transactions.

Each transaction is identified with a unique transactionID (similar to a tracking number in mail-order). Once a transaction is finished, and there are pending transactions, the interrupt processing gets restarted. The retry mechanism automatically retries the failed transaction maxTransactionRetries times (with a delay of transactionRetryDelayMs between the transactions) before an I2CTransactionFailed message is sent. If for unexpected reasons the I2C interrupt handler does not return with a I2CIrqTransactionStatus, the transaction will be terminated after interruptHandlerTimeoutMs.

Constructor & Destructor Documentation

◆ I2CTransactionHandlerAP()

imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::I2CTransactionHandlerAP ( const imt::base::dff::runtime::RuntimePriority::Id  priority,
const I2CModuleAddress  moduleAddress,
I2CTransactionQueue transactionQueue,
const uint8_t  maxTransactionRetries = 3U,
const uint32_t  transactionRetryDelayMs = 2U,
const uint32_t  interruptHandlerTimeoutMs = 50U 
)
explicit

Constructor.

Parameters
priorityPriority.
moduleAddressI2C module address.
transactionQueueTransaction queue.
maxTransactionRetriesMaximum number of automatic transaction retries before an I2CTransactionFailed is sent.
transactionRetryDelayMsDelay in milliseconds between transaction retries.
interruptHandlerTimeoutMsTimeout in milliseconds to wait for the interrupt handler to return before a transaction gets terminated.

◆ ~I2CTransactionHandlerAP()

virtual imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::~I2CTransactionHandlerAP ( void  )
virtual

Destructor.

Member Function Documentation

◆ execute()

virtual void imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::execute ( const uint16_t  protocolIdentifier,
imt::base::core::serialization::Deserializer deserializer 
)
virtual
See also
ExecutableIfc

Implements imt::base::dff::runtime::ExecutableIfc.

◆ onInitialize()

virtual void imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::onInitialize ( void  )
protectedvirtual

◆ onStart()

virtual void imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::onStart ( void  )
protectedvirtual

Member Data Documentation

◆ PortOut

PortOutput imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::PortOut

Ports of the active part.


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