19 #ifndef Q_EDGE_CHECK_IOGROUPS
20 #define Q_EDGE_CHECK_IOGROUPS ( 1 )
30 #define QREG_8BIT _qReg_08Bits
33 #define QREG_16BIT _qReg_16Bits
36 #define QREG_32BIT _qReg_32Bits
41 typedef struct _qEdgeCheck_IONode_s {
43 struct _qEdgeCheck_IONode_Private_s {
44 struct _qEdgeCheck_IONode_s *next;
64 typedef struct _qEdgeCheck_s {
66 struct _qEdgeCheck_Private_s {
67 void (*state)(
struct _qEdgeCheck_s *
const ec );
79 #define _QEDGECHECK_REG_FCN_DEC(NAME) \
80 qBool_t NAME( const void *addr, qBool_t pinNumber ) \
82 _QEDGECHECK_REG_FCN_DEC( _qReg_32Bits );
83 _QEDGECHECK_REG_FCN_DEC( _qReg_16Bits );
84 _QEDGECHECK_REG_FCN_DEC( _qReg_08Bits );
qUINT32_t qClock_t
A 32-bit unsigned integer to hold ticks count. Epochs counter.
Definition qclock.h:66
qBool_t qEdgeCheck_Add_Node(qEdgeCheck_t *const ec, qEdgeCheck_IONode_t *const n, void *portAddress, const qBool_t pinNumber)
Add an input node to the Edge-Check instance.
qBool_t qEdgeCheck_Set_NodePin(qEdgeCheck_IONode_t *const n, const qBool_t pinNumber)
Set/Change the pin number for the provided node.
qBool_t qEdgeCheck_Setup(qEdgeCheck_t *const ec, const qCoreRegSize_t rSize, const qClock_t debounceTime)
Initialize a I/O Edge-Check instance.
qBool_t qEdgeCheck_Update(qEdgeCheck_t *const ec)
Update the status of all nodes inside the I/O Edge-Check instance (Non-Blocking call).
qBool_t(* qCoreRegSize_t)(const void *arg1, qBool_t arg2)
A typedef to specify the I/O register size.
Definition qedgecheck.h:58
qBool_t qEdgeCheck_Get_NodeStatus(const qEdgeCheck_IONode_t *const n)
Query the status of the specified input-node.
qUINT8_t qBool_t
A type to instantiate an OS boolean variable.
Definition qtypes.h:139
An input node object for edge checking.
Definition qedgecheck.h:41
An I/O edge check object.
Definition qedgecheck.h:64