SysIo  1.9.0
Embedded Library and tools
dinput.h
1 
8 #ifndef _SYSIO_DINPUT_H_
9 #define _SYSIO_DINPUT_H_
10 #include <sysio/gpio.h>
11 
12 #ifndef __DOXYGEN__
13 
14 #ifdef __cplusplus
15  extern "C" {
16 #endif
17 /* ========================================================================== */
18 
42 /*
43  * @example dinput/poll/sysio_test_dinput_poll.c
44  * Utilisation en scrutation
45  * @example dinput/callback/sysio_test_dinput_callback.c
46  * Utilisation en "interruption"
47  * @example dinput/group/sysio_test_dinput_group.c
48  * Utilisation en "interruption" groupĂ©e
49  */
50 /* constants ================================================================ */
55 typedef enum {
56  eEdgeNone = 0,
57  eEdgeFalling = 1,
58  eEdgeRising = 2,
59  eEdgeBoth = eEdgeFalling + eEdgeRising,
60 } eDinEdge;
61 
62 /* structures =============================================================== */
66 typedef struct xDin {
67  int num;
68  bool act;
69  eGpioPull pull;
70 } xDin;
71 
77 typedef struct xDinPort xDinPort;
78 
79 /* types ==================================================================== */
91 typedef int (*iDinCallback) (eDinEdge edge, void *udata);
92 
105 typedef int (*iDinGrpCallback) (unsigned uInputMask, unsigned uInputNumber, eDinEdge edge, void *udata);
106 
107 /* internal public functions ================================================ */
108 
117 xDinPort * xDinOpen (const xDin * pins, unsigned size);
118 
125 int iDinClose (xDinPort * port);
126 
133 int iDinPortSize (xDinPort * port);
134 
145 int iDinRead (unsigned input, xDinPort * port);
146 
158 int iDinReadAll (xDinPort * port);
159 
173 int iDinSetEdge (unsigned input, eDinEdge edge, xDinPort * port);
174 
182 eDinEdge eDinGetEdge (unsigned input, xDinPort *port);
183 
184 
198 int iDinEdgeOccured (unsigned input, xDinPort * port);
199 
211 int iDinSetCallback (unsigned input, eDinEdge edge, iDinCallback callback, void *udata, xDinPort * port);
212 
222 int iDinSetGrpCallback (eDinEdge edge, iDinGrpCallback callback, void *udata, xDinPort * port);
223 
231 int iDinClearCallback (unsigned input, xDinPort * port);
232 
239 int iDinClearGrpCallback (xDinPort * port);
240 
248 int iDinCallbackInstalled (unsigned input, xDinPort *port);
249 
257 void * pDinCallbackData (unsigned input, xDinPort *port);
258 
262 #ifdef __cplusplus
263  }
264 #endif
265 #endif // __DOXYGEN__
266 /* ========================================================================== */
267 #endif /*_SYSIO_DINPUT_H_ defined */