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