RKH
|
Files | |
file | rkh.h |
RKH framwwork platform - independent interface. | |
file | rkhsm.h |
Specifies the interface of the state-machine manager. | |
file | rkhsma.h |
Specifies the interface of the acive object (SMA state machine applications) manager. | |
Data Structures | |
struct | RKH_SMA_T |
Describes the SMA (active object in UML). More... | |
Macros | |
#define | RKH_UPCAST(BaseType_, me_) ((BaseType_ *)me_) |
Convert a pointer to a base-class. More... | |
#define | RKH_DOWNCAST(DerivedType_, me_) ((DerivedType_ *)me_) |
Converts a base-class pointer to a derived-class pointer. | |
#define | RKH_SMA_ACTIVATE(me_, qSto_, qStoSize, stkSto_, stkSize_) |
Invoke the active object activation function rkh_sma_activate(). If RKH_CFG_SMA_VFUNCT_EN is set RKH_ENABLED, this operation is polymorphic, where its implementation is defined by the virtual table of the active object to activate. More... | |
#define | RKH_SMA_POST_FIFO(me_, e_, sender_) rkh_sma_post_fifo((me_), (e_), (sender_)) |
Invoke the direct event posting facility rkh_sma_post_fifo(). If RKH_CFG_SMA_VFUNCT_EN is set RKH_ENABLED, this operation is polymorphic, where its implementation is defined by the virtual table of the target active object. More... | |
#define | RKH_SMA_POST_LIFO(me_, e_, sender_) rkh_sma_post_lifo((me_), (e_), (sender_)) |
Invoke the direct event posting facility rkh_sma_post_lifo(). If RKH_CFG_SMA_VFUNCT_EN is set RKH_ENABLED, this operation is polymorphic, where its implementation is defined by the virtual table of the target active object. More... | |
#define RKH_UPCAST | ( | BaseType_, | |
me_ | |||
) | ((BaseType_ *)me_) |
Convert a pointer to a base-class.
In other words, upcasting allows us to treat a derived type as though it were its base type.
Definition at line 72 of file rkhfwk_cast.h.
#define RKH_SMA_ACTIVATE | ( | me_, | |
qSto_, | |||
qStoSize, | |||
stkSto_, | |||
stkSize_ | |||
) |
Invoke the active object activation function rkh_sma_activate(). If RKH_CFG_SMA_VFUNCT_EN is set RKH_ENABLED, this operation is polymorphic, where its implementation is defined by the virtual table of the active object to activate.
This macro is the recommended way of invoke the rkh_sma_activate() function to active an active object, because it allows to completely hides the platform-specific code.
[in] | me_ | pointer to previously created state machine application. |
[in] | qSto_ | base address of the event storage area. A message storage area is declared as an array of pointers to RKH events. |
[in] | qStoSize | size of the storage event area [in number of entries]. |
[in] | stkSto_ | starting address of the stack's memory area. |
[in] | stkSize_ | size of stack memory area [in bytes]. |
#define RKH_SMA_POST_FIFO | ( | me_, | |
e_, | |||
sender_ | |||
) | rkh_sma_post_fifo((me_), (e_), (sender_)) |
Invoke the direct event posting facility rkh_sma_post_fifo(). If RKH_CFG_SMA_VFUNCT_EN is set RKH_ENABLED, this operation is polymorphic, where its implementation is defined by the virtual table of the target active object.
This macro is the recommended way of posting events, because it provides the vital information for software tracing and avoids any overhead when the tracing is disabled.
[in] | me_ | pointer to previously created state machine application. |
[in] | e_ | actual event sent to the state machine application. |
[in] | sender_ | pointer to the sender object. It is not necessarily a pointer to an active object. In fact, if RKH_SMA_POST_FIFO() is called from an interrupt or other context, it can create a unique object just to unambiguously identify the publisher of the event. |
#define RKH_SMA_POST_LIFO | ( | me_, | |
e_, | |||
sender_ | |||
) | rkh_sma_post_lifo((me_), (e_), (sender_)) |
Invoke the direct event posting facility rkh_sma_post_lifo(). If RKH_CFG_SMA_VFUNCT_EN is set RKH_ENABLED, this operation is polymorphic, where its implementation is defined by the virtual table of the target active object.
This macro is the recommended way of posting events, because it provides the vital information for software tracing and avoids any overhead when the tracing is disabled.
[in] | me_ | pointer to previously created state machine application. |
[in] | e_ | actual event sent to the state machine application. |
[in] | sender_ | pointer to the sender object. It is not necessarily a pointer to an active object. In fact, if RKH_SMA_POST_LIFO() is called from an interrupt or other context, it can create a unique object just to unambiguously identify the publisher of the event. |