m2mb API docs  25.30.003
m2mb API sets documentation
m2mb_os_tmr.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
26 #ifndef M2MB_OS_TMR_H
27 #define M2MB_OS_TMR_H
28 
29 
30 
31 
32 /* GLOBAL DECLARATIONS ----------------------------------------------------------- */
33 #define M2MB_OS_TMR_INVALID 0
34 #define M2MB_OS_TMR_INVALID_ATTR 0
35 #define M2MB_OS_TMR_PERIODIC_TMR 1
36 #define M2MB_OS_TMR_ONESHOT_TMR 0
37 
38 
39 /* Global declarations ==========================================================================*/
40 
41 
42 /*-----------------------------------------------------------------------------------------------
43 
44  can be called directly without specify CMDS_ARGS
45  osRes = m2mb_os_tmr_setAttrItem_( &tmrAttrHandle,
46  M2MB_OS_TMR_SEL_CMD_CREATE_ATTR, NULL,
47  M2MB_OS_TMR_SEL_CMD_NAME, "mytmr",
48  M2MB_OS_TMR_SEL_CMD_USRNAME, "myUsrtmr",
49  M2MB_OS_TMR_SEL_CMD_CB_FUNC, &timerCb,
50  M2MB_OS_TMR_SEL_CMD_ARG_CB, &tmrHandle,
51  M2MB_OS_TMR_SEL_CMD_TICKS_PERIOD, M2MB_OS_MS2TICKS(4000)
52  );
53  -----------------------------------------------------------------------------------------------*/
54 #ifdef _WIN32
55 #define m2mb_os_tmr_setAttrItem_( h, ... ) m2mb_os_tmr_setAttrItem( h, CMDS_ARGS( __VA_ARGS__ ) )
56 #else
57 #define m2mb_os_tmr_setAttrItem_( h, args... ) m2mb_os_tmr_setAttrItem( h, CMDS_ARGS( args ) )
58 #endif
59 
60 /* Global typedefs --------------------------------------------------------------- */
61 
62 /* available timer states */
63 typedef enum
64 {
65  M2MB_TMR_STATE_TOSTART,
66  M2MB_TMR_STATE_RUN,
67  M2MB_TMR_STATE_STOP,
68  M2MB_TMR_STATE_DELETED
69 } M2MB_TMR_STATE_E;
70 
71 /* set or get commands ; not always all availbale */
72 typedef enum
73 {
74  M2MB_OS_TMR_SEL_CMD_CREATE_ATTR,
75  M2MB_OS_TMR_SEL_CMD_DEL_ATTR,
76  M2MB_OS_TMR_SEL_CMD_NAME,
77  M2MB_OS_TMR_SEL_CMD_USRNAME,
78  /* the callback for timer elapsed */
79  M2MB_OS_TMR_SEL_CMD_CB_FUNC,
80  /* argument to be passed to callback */
81  M2MB_OS_TMR_SEL_CMD_ARG_CB,
82  /* timeout period in ticks */
83  M2MB_OS_TMR_SEL_CMD_TICKS_PERIOD,
84  /* period of elapsing in ticks : max is 0xFFFF FFFF ticks */
85  M2MB_OS_TMR_SEL_CMD_TICKS2ELAPSE,
86  /* define if it is periodic or not */
87  M2MB_OS_TMR_SEL_CMD_PERIODIC,
88  /* autostart, not need to call m2mb_os_tmr_start */
89  M2MB_OS_TMR_SEL_CMD_AUTOSTART,
90  M2MB_OS_TMR_SEL_CMD_STATE,
91 
92  /* ---- */
93  M2MB_OS_TMR_SEL_CMD_END,
94  ENUM_TO_INT( M2MB_OS_TMR_SEL_CMD_E )
95 } M2MB_OS_TMR_SEL_CMD_E;
96 
97 
98 typedef struct M2MB_OS_TMR_HANDLE_TAG *M2MB_OS_TMR_HANDLE;
99 typedef struct M2MB_OS_TMR_ATTR_HANDLE_TAG *M2MB_OS_TMR_ATTR_HANDLE;
100 
101 
102 typedef void ( *USR_TMR_CB )( M2MB_OS_TMR_HANDLE handle, void *arg );
103 
104 
105 /* Global functions =============================================================================*/
106 
107 /*-----------------------------------------------------------------------------------------------*/
216 /*-----------------------------------------------------------------------------------------------*/
217 M2MB_OS_RESULT_E m2mb_os_tmr_init(
218  M2MB_OS_TMR_HANDLE *pTmrHandle,
219  M2MB_OS_TMR_ATTR_HANDLE *pTmrAttr
220 );
221 
222 /*-----------------------------------------------------------------------------------------------*/
260 /*-----------------------------------------------------------------------------------------------*/
261 M2MB_OS_RESULT_E m2mb_os_tmr_deinit( M2MB_OS_TMR_HANDLE tmrHandle );
262 
263 /*-----------------------------------------------------------------------------------------------*/
305 /*-----------------------------------------------------------------------------------------------*/
306 M2MB_OS_RESULT_E m2mb_os_tmr_start( M2MB_OS_TMR_HANDLE tmrHandle );
307 
308 /*-----------------------------------------------------------------------------------------------*/
340 /*-----------------------------------------------------------------------------------------------*/
341 M2MB_OS_RESULT_E m2mb_os_tmr_stop( M2MB_OS_TMR_HANDLE tmrHandle );
342 
343 /*-----------------------------------------------------------------------------------------------*/
444 /*-----------------------------------------------------------------------------------------------*/
445 M2MB_OS_RESULT_E m2mb_os_tmr_setAttrItem(
446  M2MB_OS_TMR_ATTR_HANDLE *pTmrAttrHandle,
447  UINT8 nCmds,
448  ...
449 );
450 
451 /*-----------------------------------------------------------------------------------------------*/
525 /*-----------------------------------------------------------------------------------------------*/
526 M2MB_OS_RESULT_E m2mb_os_tmr_getItem(
527  M2MB_OS_TMR_HANDLE tmrHandle,
528  M2MB_OS_TMR_SEL_CMD_E selCmd,
529  MEM_W *pOut,
530  void *pIn
531 );
532 
533 /*-----------------------------------------------------------------------------------------------*/
599 /*-----------------------------------------------------------------------------------------------*/
600 M2MB_OS_RESULT_E m2mb_os_tmr_setItem(
601  M2MB_OS_TMR_HANDLE tmrHandle,
602  M2MB_OS_TMR_SEL_CMD_E selCmd,
603  void *pIn
604 );
605 
606 #endif /* M2MB_OS_TMR_H */
m2mb_os_tmr_deinit
M2MB_OS_RESULT_E m2mb_os_tmr_deinit(M2MB_OS_TMR_HANDLE tmrHandle)
Timer deinit => deletion.
m2mb_os_tmr_init
M2MB_OS_RESULT_E m2mb_os_tmr_init(M2MB_OS_TMR_HANDLE *pTmrHandle, M2MB_OS_TMR_ATTR_HANDLE *pTmrAttr)
Application timer Creation.
m2mb_os_tmr_getItem
M2MB_OS_RESULT_E m2mb_os_tmr_getItem(M2MB_OS_TMR_HANDLE tmrHandle, M2MB_OS_TMR_SEL_CMD_E selCmd, MEM_W *pOut, void *pIn)
Get specific properties of the timer.
m2mb_os_tmr_setAttrItem
M2MB_OS_RESULT_E m2mb_os_tmr_setAttrItem(M2MB_OS_TMR_ATTR_HANDLE *pTmrAttrHandle, UINT8 nCmds,...)
Set specific attribute for timer creation.
m2mb_os_tmr_stop
M2MB_OS_RESULT_E m2mb_os_tmr_stop(M2MB_OS_TMR_HANDLE tmrHandle)
Stop an application timer.
m2mb_os_tmr_start
M2MB_OS_RESULT_E m2mb_os_tmr_start(M2MB_OS_TMR_HANDLE tmrHandle)
Start application timer.
m2mb_os_tmr_setItem
M2MB_OS_RESULT_E m2mb_os_tmr_setItem(M2MB_OS_TMR_HANDLE tmrHandle, M2MB_OS_TMR_SEL_CMD_E selCmd, void *pIn)
Set specific properties of the timer.