Dataflow Runtime API
3.1.1.0
|
Handles the I2C transactions with an internal queue for pending transactions. More...
#include <Imt.Base.Dff.ActiveParts.AM3354/I2C/I2CTransactionHandlerAP.h>
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::ExecutableConfiguration & | getExecutableConfiguration (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 PortInput & | PortIn |
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) |
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.
|
explicit |
Constructor.
priority | Priority. |
moduleAddress | I2C module address. |
transactionQueue | Transaction queue. |
maxTransactionRetries | Maximum number of automatic transaction retries before an I2CTransactionFailed is sent. |
transactionRetryDelayMs | Delay in milliseconds between transaction retries. |
interruptHandlerTimeoutMs | Timeout in milliseconds to wait for the interrupt handler to return before a transaction gets terminated. |
|
virtual |
Destructor.
|
virtual |
Implements imt::base::dff::runtime::ExecutableIfc.
|
protectedvirtual |
Implements imt::base::dff::activeparts::ActivePartAbs.
|
protectedvirtual |
Implements imt::base::dff::activeparts::ActivePartAbs.
PortOutput imt::base::dff::activeparts::am3354::I2CTransactionHandlerAP::PortOut |
Ports of the active part.