Skip to content

Commit 791190d

Browse files
committed
Clean Up of Wifi event
1 parent 28a2c86 commit 791190d

File tree

3 files changed

+26
-63
lines changed

3 files changed

+26
-63
lines changed

libraries/WiFi/src/WiFiGeneric.cpp

Lines changed: 10 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -169,17 +169,16 @@ static bool espWiFiStop(){
169169
// -----------------------------------------------------------------------------------------------------------------------
170170

171171
typedef struct WiFiEventCbList {
172-
static size_t current_id;
173-
size_t id;
172+
static wifi_event_id_t current_id;
173+
wifi_event_id_t id;
174174
WiFiEventCb cb;
175-
WiFiEventFullCb fcb;
175+
WiFiEventFuncCb fcb;
176176
WiFiEventSysCb scb;
177-
WiFiEventFuncCb funcCb;
178177
system_event_id_t event;
179178

180179
WiFiEventCbList() : id(current_id++) {}
181180
} WiFiEventCbList_t;
182-
size_t WiFiEventCbList::current_id = 1;
181+
wifi_event_id_t WiFiEventCbList::current_id = 1;
183182

184183

185184
// arduino dont like std::vectors move static here
@@ -198,7 +197,7 @@ WiFiGenericClass::WiFiGenericClass()
198197
* @param cbEvent WiFiEventCb
199198
* @param event optional filter (WIFI_EVENT_MAX is all events)
200199
*/
201-
size_t WiFiGenericClass::onEvent(WiFiEventCb cbEvent, system_event_id_t event)
200+
wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventCb cbEvent, system_event_id_t event)
202201
{
203202
if(!cbEvent) {
204203
return 0;
@@ -207,13 +206,12 @@ size_t WiFiGenericClass::onEvent(WiFiEventCb cbEvent, system_event_id_t event)
207206
newEventHandler.cb = cbEvent;
208207
newEventHandler.fcb = NULL;
209208
newEventHandler.scb = NULL;
210-
newEventHandler.funcCb = NULL;
211209
newEventHandler.event = event;
212210
cbEventList.push_back(newEventHandler);
213211
return newEventHandler.id;
214212
}
215213

216-
size_t WiFiGenericClass::onEvent(WiFiEventFullCb cbEvent, system_event_id_t event)
214+
wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventFuncCb cbEvent, system_event_id_t event)
217215
{
218216
if(!cbEvent) {
219217
return 0;
@@ -222,13 +220,12 @@ size_t WiFiGenericClass::onEvent(WiFiEventFullCb cbEvent, system_event_id_t even
222220
newEventHandler.cb = NULL;
223221
newEventHandler.fcb = cbEvent;
224222
newEventHandler.scb = NULL;
225-
newEventHandler.funcCb = NULL;
226223
newEventHandler.event = event;
227224
cbEventList.push_back(newEventHandler);
228225
return newEventHandler.id;
229226
}
230227

231-
size_t WiFiGenericClass::onEvent(WiFiEventSysCb cbEvent, system_event_id_t event)
228+
wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventSysCb cbEvent, system_event_id_t event)
232229
{
233230
if(!cbEvent) {
234231
return 0;
@@ -237,22 +234,6 @@ size_t WiFiGenericClass::onEvent(WiFiEventSysCb cbEvent, system_event_id_t event
237234
newEventHandler.cb = NULL;
238235
newEventHandler.fcb = NULL;
239236
newEventHandler.scb = cbEvent;
240-
newEventHandler.funcCb = NULL;
241-
newEventHandler.event = event;
242-
cbEventList.push_back(newEventHandler);
243-
return newEventHandler.id;
244-
}
245-
246-
size_t WiFiGenericClass::onEvent(WiFiEventFuncCb cbEvent, system_event_id_t event)
247-
{
248-
if(!cbEvent) {
249-
return 0;
250-
}
251-
WiFiEventCbList_t newEventHandler;
252-
newEventHandler.cb = NULL;
253-
newEventHandler.fcb = NULL;
254-
newEventHandler.scb = NULL;
255-
newEventHandler.funcCb = cbEvent;
256237
newEventHandler.event = event;
257238
cbEventList.push_back(newEventHandler);
258239
return newEventHandler.id;
@@ -277,20 +258,6 @@ void WiFiGenericClass::removeEvent(WiFiEventCb cbEvent, system_event_id_t event)
277258
}
278259
}
279260

280-
void WiFiGenericClass::removeEvent(WiFiEventFullCb cbEvent, system_event_id_t event)
281-
{
282-
if(!cbEvent) {
283-
return;
284-
}
285-
286-
for(uint32_t i = 0; i < cbEventList.size(); i++) {
287-
WiFiEventCbList_t entry = cbEventList[i];
288-
if(entry.fcb == cbEvent && entry.event == event) {
289-
cbEventList.erase(cbEventList.begin() + i);
290-
}
291-
}
292-
}
293-
294261
void WiFiGenericClass::removeEvent(WiFiEventSysCb cbEvent, system_event_id_t event)
295262
{
296263
if(!cbEvent) {
@@ -305,7 +272,7 @@ void WiFiGenericClass::removeEvent(WiFiEventSysCb cbEvent, system_event_id_t eve
305272
}
306273
}
307274

308-
void WiFiGenericClass::removeEvent(size_t id)
275+
void WiFiGenericClass::removeEvent(wifi_event_id_t id)
309276
{
310277
for(uint32_t i = 0; i < cbEventList.size(); i++) {
311278
WiFiEventCbList_t entry = cbEventList[i];
@@ -363,16 +330,14 @@ esp_err_t WiFiGenericClass::_eventCallback(void *arg, system_event_t *event)
363330

364331
for(uint32_t i = 0; i < cbEventList.size(); i++) {
365332
WiFiEventCbList_t entry = cbEventList[i];
366-
if(entry.cb || entry.fcb || entry.scb || entry.funcCb) {
333+
if(entry.cb || entry.fcb || entry.scb) {
367334
if(entry.event == (system_event_id_t) event->event_id || entry.event == SYSTEM_EVENT_MAX) {
368335
if(entry.cb) {
369336
entry.cb((system_event_id_t) event->event_id);
370337
} else if(entry.fcb) {
371338
entry.fcb((system_event_id_t) event->event_id, (system_event_info_t) event->event_info);
372-
} else if(entry.scb) {
339+
} else {
373340
entry.scb(event);
374-
} else{
375-
entry.funcCb((system_event_id_t) event->event_id, (system_event_info_t) event->event_info);
376341
}
377342
}
378343
}

libraries/WiFi/src/WiFiGeneric.h

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,28 @@
2323
#ifndef ESP32WIFIGENERIC_H_
2424
#define ESP32WIFIGENERIC_H_
2525

26-
#include <functional>
27-
#include "WiFiType.h"
2826
#include <esp_err.h>
2927
#include <esp_event_loop.h>
28+
#include <functional>
29+
#include "WiFiType.h"
3030

3131
typedef void (*WiFiEventCb)(system_event_id_t event);
32-
typedef void (*WiFiEventFullCb)(system_event_id_t event, system_event_info_t info);
33-
typedef void (*WiFiEventSysCb)(system_event_t *event);
3432
typedef std::function<void(system_event_id_t event, system_event_info_t info)> WiFiEventFuncCb;
33+
typedef void (*WiFiEventSysCb)(system_event_t *event);
34+
35+
typedef size_t wifi_event_id_t;
3536

3637
class WiFiGenericClass
3738
{
38-
public:
39-
39+
public:
4040
WiFiGenericClass();
4141

42-
size_t onEvent(WiFiEventCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
43-
size_t onEvent(WiFiEventFullCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
44-
size_t onEvent(WiFiEventSysCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
45-
size_t onEvent(WiFiEventFuncCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
42+
wifi_event_id_t onEvent(WiFiEventCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
43+
wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
44+
wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
4645
void removeEvent(WiFiEventCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
47-
void removeEvent(WiFiEventFullCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
4846
void removeEvent(WiFiEventSysCb cbEvent, system_event_id_t event = SYSTEM_EVENT_MAX);
49-
void removeEvent(size_t id);
47+
void removeEvent(wifi_event_id_t id);
5048

5149
int32_t channel(void);
5250

@@ -60,16 +58,14 @@ class WiFiGenericClass
6058

6159
static esp_err_t _eventCallback(void *arg, system_event_t *event);
6260

63-
protected:
61+
protected:
6462
static bool _persistent;
6563
static wifi_mode_t _forceSleepLastMode;
6664

67-
public:
68-
69-
int hostByName(const char* aHostname, IPAddress& aResult);
70-
71-
protected:
65+
public:
66+
int hostByName(const char *aHostname, IPAddress &aResult);
7267

68+
protected:
7369
friend class WiFiSTAClass;
7470
friend class WiFiScanClass;
7571
friend class WiFiAPClass;

libraries/WiFi/src/WiFiType.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
#define WIFI_AP_STA WIFI_MODE_APSTA
3434

3535
#define WiFiEvent_t system_event_id_t
36+
#define WiFiEvent_id_t wifi_event_id_t;
37+
3638

3739
typedef enum {
3840
WL_NO_SHIELD = 255, // for compatibility with WiFi Shield library

0 commit comments

Comments
 (0)