@@ -35,75 +35,94 @@ class Ticker
35
35
typedef void (*callback_with_arg_t )(void *);
36
36
typedef std::function<void (void )> callback_function_t ;
37
37
38
+ // callback will be called at following loop() after ticker fires
38
39
void attach_scheduled (float seconds, callback_function_t callback)
39
40
{
40
41
_callback_function = [callback]() { schedule_function (callback); };
41
42
_attach_ms (1000UL * seconds, true );
42
43
}
43
44
45
+ // callback will be called in SYS ctx when ticker fires
44
46
void attach (float seconds, callback_function_t callback)
45
47
{
46
48
_callback_function = std::move (callback);
47
49
_attach_ms (1000UL * seconds, true );
48
50
}
49
51
52
+ // callback will be called at following loop() after ticker fires
50
53
void attach_ms_scheduled (uint32_t milliseconds, callback_function_t callback)
51
54
{
52
55
_callback_function = [callback]() { schedule_function (callback); };
53
56
_attach_ms (milliseconds, true );
54
57
}
55
58
59
+ // callback will be called at following yield() after ticker fires
60
+ void attach_ms_scheduled_accurate (uint32_t milliseconds, callback_function_t callback)
61
+ {
62
+ _callback_function = [callback]() { schedule_recurrent_function_us ([callback]() { callback (); return false ; }, 0 ); };
63
+ _attach_ms (milliseconds, true );
64
+ }
65
+
66
+ // callback will be called in SYS ctx when ticker fires
56
67
void attach_ms (uint32_t milliseconds, callback_function_t callback)
57
68
{
58
69
_callback_function = std::move (callback);
59
70
_attach_ms (milliseconds, true );
60
71
}
61
72
73
+ // callback will be called in SYS ctx when ticker fires
62
74
template <typename TArg>
63
75
void attach (float seconds, void (*callback)(TArg), TArg arg)
64
76
{
65
77
static_assert (sizeof (TArg) <= sizeof (void *), " attach() callback argument size must be <= sizeof(void*)" );
66
78
_attach_ms (1000UL * seconds, true , reinterpret_cast <callback_with_arg_t >(callback), reinterpret_cast <void *>(arg));
67
79
}
68
80
81
+ // callback will be called in SYS ctx when ticker fires
69
82
template <typename TArg>
70
83
void attach_ms (uint32_t milliseconds, void (*callback)(TArg), TArg arg)
71
84
{
72
85
static_assert (sizeof (TArg) <= sizeof (void *), " attach() callback argument size must be <= sizeof(void*)" );
73
86
_attach_ms (milliseconds, true , reinterpret_cast <callback_with_arg_t >(callback), reinterpret_cast <void *>(arg));
74
87
}
75
88
89
+ // callback will be called at following loop() after ticker fires
76
90
void once_scheduled (float seconds, callback_function_t callback)
77
91
{
78
92
_callback_function = [callback]() { schedule_function (callback); };
79
93
_attach_ms (1000UL * seconds, false );
80
94
}
81
95
96
+ // callback will be called in SYS ctx when ticker fires
82
97
void once (float seconds, callback_function_t callback)
83
98
{
84
99
_callback_function = std::move (callback);
85
100
_attach_ms (1000UL * seconds, false );
86
101
}
87
102
103
+ // callback will be called at following loop() after ticker fires
88
104
void once_ms_scheduled (uint32_t milliseconds, callback_function_t callback)
89
105
{
90
106
_callback_function = [callback]() { schedule_function (callback); };
91
107
_attach_ms (milliseconds, false );
92
108
}
93
109
110
+ // callback will be called in SYS ctx when ticker fires
94
111
void once_ms (uint32_t milliseconds, callback_function_t callback)
95
112
{
96
113
_callback_function = std::move (callback);
97
114
_attach_ms (milliseconds, false );
98
115
}
99
116
117
+ // callback will be called in SYS ctx when ticker fires
100
118
template <typename TArg>
101
119
void once (float seconds, void (*callback)(TArg), TArg arg)
102
120
{
103
121
static_assert (sizeof (TArg) <= sizeof (void *), " attach() callback argument size must be <= sizeof(void*)" );
104
122
_attach_ms (1000UL * seconds, false , reinterpret_cast <callback_with_arg_t >(callback), reinterpret_cast <void *>(arg));
105
123
}
106
124
125
+ // callback will be called in SYS ctx when ticker fires
107
126
template <typename TArg>
108
127
void once_ms (uint32_t milliseconds, void (*callback)(TArg), TArg arg)
109
128
{
0 commit comments