@@ -57,13 +57,14 @@ bool NetworkEvents::initNetworkEvents() {
57
57
}
58
58
59
59
if (!_arduino_event_task_handle) {
60
- xTaskCreateUniversal ( [](void * self){ static_cast <NetworkEvents*>(self)->_checkForEvent (); },
61
- " arduino_events" , // label
62
- 4096 , // event task's stack size
63
- this ,
64
- ESP_TASKD_EVENT_PRIO - 1 ,
65
- &_arduino_event_task_handle,
66
- ARDUINO_EVENT_RUNNING_CORE);
60
+ xTaskCreateUniversal (
61
+ [](void *self) {
62
+ static_cast <NetworkEvents *>(self)->_checkForEvent ();
63
+ },
64
+ " arduino_events" , // label
65
+ 4096 , // event task's stack size
66
+ this , ESP_TASKD_EVENT_PRIO - 1 , &_arduino_event_task_handle, ARDUINO_EVENT_RUNNING_CORE
67
+ );
67
68
if (!_arduino_event_task_handle) {
68
69
log_e (" Network Event Task Start Failed!" );
69
70
return false ;
@@ -86,7 +87,7 @@ bool NetworkEvents::postEvent(const arduino_event_t *data) {
86
87
memcpy (event, data, sizeof (arduino_event_t ));
87
88
if (xQueueSend (_arduino_event_queue, &event, portMAX_DELAY) != pdPASS) {
88
89
log_e (" Arduino Event Send Failed!" );
89
- delete event; // release mem on error
90
+ delete event; // release mem on error
90
91
return false ;
91
92
}
92
93
return true ;
@@ -111,12 +112,12 @@ void NetworkEvents::_checkForEvent() {
111
112
}
112
113
log_v (" Network Event: %d - %s" , event->event_id , eventName (event->event_id ));
113
114
114
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
115
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
115
116
std::unique_lock<std::mutex> lock (_mtx);
116
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
117
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
117
118
118
119
// iterate over registered callbacks
119
- for (auto &i : _cbEventList){
120
+ for (auto &i : _cbEventList) {
120
121
if (i.cb || i.fcb || i.scb ) {
121
122
if (i.event == (arduino_event_id_t )event->event_id || i.event == ARDUINO_EVENT_MAX) {
122
123
if (i.cb ) {
@@ -134,9 +135,9 @@ void NetworkEvents::_checkForEvent() {
134
135
}
135
136
}
136
137
137
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
138
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
138
139
lock.unlock ();
139
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
140
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
140
141
141
142
// release the event object's memory
142
143
delete event;
@@ -159,9 +160,9 @@ network_event_handle_t NetworkEvents::onEvent(NetworkEventCb cbEvent, arduino_ev
159
160
return 0 ;
160
161
}
161
162
162
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
163
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
163
164
std::lock_guard<std::mutex> lock (_mtx);
164
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
165
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
165
166
166
167
_cbEventList.emplace_back (++_current_id, cbEvent, nullptr , nullptr , event);
167
168
return _cbEventList.back ().id ;
@@ -172,9 +173,9 @@ network_event_handle_t NetworkEvents::onEvent(NetworkEventFuncCb cbEvent, arduin
172
173
return 0 ;
173
174
}
174
175
175
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
176
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
176
177
std::lock_guard<std::mutex> lock (_mtx);
177
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
178
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
178
179
179
180
_cbEventList.emplace_back (++_current_id, nullptr , cbEvent, nullptr , event);
180
181
return _cbEventList.back ().id ;
@@ -185,9 +186,9 @@ network_event_handle_t NetworkEvents::onEvent(NetworkEventSysCb cbEvent, arduino
185
186
return 0 ;
186
187
}
187
188
188
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
189
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
189
190
std::lock_guard<std::mutex> lock (_mtx);
190
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
191
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
191
192
192
193
_cbEventList.emplace_back (++_current_id, nullptr , nullptr , cbEvent, event);
193
194
return _cbEventList.back ().id ;
@@ -198,9 +199,9 @@ network_event_handle_t NetworkEvents::onSysEvent(NetworkEventCb cbEvent, arduino
198
199
return 0 ;
199
200
}
200
201
201
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
202
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
202
203
std::lock_guard<std::mutex> lock (_mtx);
203
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
204
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
204
205
205
206
_cbEventList.emplace (_cbEventList.begin (), ++_current_id, cbEvent, nullptr , nullptr , event);
206
207
return _cbEventList.front ().id ;
@@ -211,9 +212,9 @@ network_event_handle_t NetworkEvents::onSysEvent(NetworkEventFuncCb cbEvent, ard
211
212
return 0 ;
212
213
}
213
214
214
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
215
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
215
216
std::lock_guard<std::mutex> lock (_mtx);
216
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
217
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
217
218
218
219
_cbEventList.emplace (_cbEventList.begin (), ++_current_id, nullptr , cbEvent, nullptr , event);
219
220
return _cbEventList.front ().id ;
@@ -224,9 +225,9 @@ network_event_handle_t NetworkEvents::onSysEvent(NetworkEventSysCb cbEvent, ardu
224
225
return 0 ;
225
226
}
226
227
227
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
228
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
228
229
std::lock_guard<std::mutex> lock (_mtx);
229
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
230
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
230
231
231
232
_cbEventList.emplace (_cbEventList.begin (), ++_current_id, nullptr , nullptr , cbEvent, event);
232
233
return _cbEventList.front ().id ;
@@ -237,43 +238,75 @@ void NetworkEvents::removeEvent(NetworkEventCb cbEvent, arduino_event_id_t event
237
238
return ;
238
239
}
239
240
240
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
241
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
241
242
std::lock_guard<std::mutex> lock (_mtx);
242
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
243
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
243
244
244
- _cbEventList.erase (std::remove_if (_cbEventList.begin (), _cbEventList.end (), [cbEvent, event](const NetworkEventCbList_t& e) { return e.cb == cbEvent && e.event == event; }), _cbEventList.end ());
245
+ _cbEventList.erase (
246
+ std::remove_if (
247
+ _cbEventList.begin (), _cbEventList.end (),
248
+ [cbEvent, event](const NetworkEventCbList_t &e) {
249
+ return e.cb == cbEvent && e.event == event;
250
+ }
251
+ ),
252
+ _cbEventList.end ()
253
+ );
245
254
}
246
255
247
256
void NetworkEvents::removeEvent (NetworkEventFuncCb cbEvent, arduino_event_id_t event) {
248
257
if (!cbEvent) {
249
258
return ;
250
259
}
251
260
252
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
261
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
253
262
std::lock_guard<std::mutex> lock (_mtx);
254
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
263
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
255
264
256
- _cbEventList.erase (std::remove_if (_cbEventList.begin (), _cbEventList.end (), [cbEvent, event](const NetworkEventCbList_t& e) { return getStdFunctionAddress (e.fcb ) == getStdFunctionAddress (cbEvent) && e.event == event; }), _cbEventList.end ());
265
+ _cbEventList.erase (
266
+ std::remove_if (
267
+ _cbEventList.begin (), _cbEventList.end (),
268
+ [cbEvent, event](const NetworkEventCbList_t &e) {
269
+ return getStdFunctionAddress (e.fcb ) == getStdFunctionAddress (cbEvent) && e.event == event;
270
+ }
271
+ ),
272
+ _cbEventList.end ()
273
+ );
257
274
}
258
275
259
276
void NetworkEvents::removeEvent (NetworkEventSysCb cbEvent, arduino_event_id_t event) {
260
277
if (!cbEvent) {
261
278
return ;
262
279
}
263
280
264
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
281
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
265
282
std::lock_guard<std::mutex> lock (_mtx);
266
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
283
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
267
284
268
- _cbEventList.erase (std::remove_if (_cbEventList.begin (), _cbEventList.end (), [cbEvent, event](const NetworkEventCbList_t& e) { return e.scb == cbEvent && e.event == event; }), _cbEventList.end ());
285
+ _cbEventList.erase (
286
+ std::remove_if (
287
+ _cbEventList.begin (), _cbEventList.end (),
288
+ [cbEvent, event](const NetworkEventCbList_t &e) {
289
+ return e.scb == cbEvent && e.event == event;
290
+ }
291
+ ),
292
+ _cbEventList.end ()
293
+ );
269
294
}
270
295
271
296
void NetworkEvents::removeEvent (network_event_handle_t id) {
272
- #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
297
+ #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
273
298
std::lock_guard<std::mutex> lock (_mtx);
274
- #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
299
+ #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1
275
300
276
- _cbEventList.erase (std::remove_if (_cbEventList.begin (), _cbEventList.end (), [id](const NetworkEventCbList_t& e) { return e.id == id; }), _cbEventList.end ());
301
+ _cbEventList.erase (
302
+ std::remove_if (
303
+ _cbEventList.begin (), _cbEventList.end (),
304
+ [id](const NetworkEventCbList_t &e) {
305
+ return e.id == id;
306
+ }
307
+ ),
308
+ _cbEventList.end ()
309
+ );
277
310
}
278
311
279
312
int NetworkEvents::setStatusBits (int bits) {
0 commit comments