Skip to content

Commit a929aae

Browse files
kapilkedawatespressif-bot
authored andcommitted
change(esp_wifi): Update dpp enrollee example to use updated events
1 parent 15c336b commit a929aae

File tree

1 file changed

+50
-49
lines changed

1 file changed

+50
-49
lines changed

examples/wifi/wifi_easy_connect/dpp-enrollee/main/dpp_enrollee_main.c

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -54,59 +54,63 @@ static EventGroupHandle_t s_dpp_event_group;
5454
static void event_handler(void *arg, esp_event_base_t event_base,
5555
int32_t event_id, void *event_data)
5656
{
57-
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {
58-
ESP_ERROR_CHECK(esp_supp_dpp_start_listen());
59-
ESP_LOGI(TAG, "Started listening for DPP Authentication");
60-
} else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
61-
if (s_retry_num < WIFI_MAX_RETRY_NUM) {
57+
if (event_base == WIFI_EVENT) {
58+
switch (event_id) {
59+
case WIFI_EVENT_STA_START:
60+
ESP_ERROR_CHECK(esp_supp_dpp_start_listen());
61+
ESP_LOGI(TAG, "Started listening for DPP Authentication");
62+
break;
63+
case WIFI_EVENT_STA_DISCONNECTED:
64+
if (s_retry_num < WIFI_MAX_RETRY_NUM) {
65+
esp_wifi_connect();
66+
s_retry_num++;
67+
ESP_LOGI(TAG, "Disconnect event, retry to connect to the AP");
68+
} else {
69+
xEventGroupSetBits(s_dpp_event_group, DPP_CONNECT_FAIL_BIT);
70+
}
71+
break;
72+
case WIFI_EVENT_STA_CONNECTED:
73+
ESP_LOGI(TAG, "Successfully connected to the AP ssid : %s ", s_dpp_wifi_config.sta.ssid);
74+
break;
75+
case WIFI_EVENT_DPP_URI_READY:
76+
wifi_event_dpp_uri_ready_t *uri_data = event_data;
77+
if (uri_data != NULL) {
78+
esp_qrcode_config_t cfg = ESP_QRCODE_CONFIG_DEFAULT();
79+
80+
ESP_LOGI(TAG, "Scan below QR Code to configure the enrollee:");
81+
esp_qrcode_generate(&cfg, (const char *)uri_data->uri);
82+
}
83+
break;
84+
case WIFI_EVENT_DPP_CFG_RECVD:
85+
wifi_event_dpp_config_received_t *config = event_data;
86+
memcpy(&s_dpp_wifi_config, &config->wifi_cfg, sizeof(s_dpp_wifi_config));
87+
s_retry_num = 0;
88+
esp_wifi_set_config(ESP_IF_WIFI_STA, &s_dpp_wifi_config);
6289
esp_wifi_connect();
63-
s_retry_num++;
64-
ESP_LOGI(TAG, "retry to connect to the AP");
65-
} else {
66-
xEventGroupSetBits(s_dpp_event_group, DPP_CONNECT_FAIL_BIT);
90+
break;
91+
case WIFI_EVENT_DPP_FAILED:
92+
wifi_event_dpp_failed_t *dpp_failure = event_data;
93+
if (s_retry_num < 5) {
94+
ESP_LOGI(TAG, "DPP Auth failed (Reason: %s), retry...", esp_err_to_name((int)dpp_failure->failure_reason));
95+
ESP_ERROR_CHECK(esp_supp_dpp_start_listen());
96+
s_retry_num++;
97+
} else {
98+
xEventGroupSetBits(s_dpp_event_group, DPP_AUTH_FAIL_BIT);
99+
}
100+
101+
break;
102+
default:
103+
break;
67104
}
68-
ESP_LOGI(TAG, "connect to the AP fail");
69-
} else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) {
70-
ESP_LOGI(TAG, "Successfully connected to the AP ssid : %s ", s_dpp_wifi_config.sta.ssid);
71-
} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
105+
}
106+
if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
72107
ip_event_got_ip_t *event = (ip_event_got_ip_t *) event_data;
73108
ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip));
74109
s_retry_num = 0;
75110
xEventGroupSetBits(s_dpp_event_group, DPP_CONNECTED_BIT);
76111
}
77112
}
78113

79-
void dpp_enrollee_event_cb(esp_supp_dpp_event_t event, void *data)
80-
{
81-
switch (event) {
82-
case ESP_SUPP_DPP_URI_READY:
83-
if (data != NULL) {
84-
esp_qrcode_config_t cfg = ESP_QRCODE_CONFIG_DEFAULT();
85-
86-
ESP_LOGI(TAG, "Scan below QR Code to configure the enrollee:");
87-
esp_qrcode_generate(&cfg, (const char *)data);
88-
}
89-
break;
90-
case ESP_SUPP_DPP_CFG_RECVD:
91-
memcpy(&s_dpp_wifi_config, data, sizeof(s_dpp_wifi_config));
92-
s_retry_num = 0;
93-
esp_wifi_set_config(ESP_IF_WIFI_STA, &s_dpp_wifi_config);
94-
esp_wifi_connect();
95-
break;
96-
case ESP_SUPP_DPP_FAIL:
97-
if (s_retry_num < 5) {
98-
ESP_LOGI(TAG, "DPP Auth failed (Reason: %s), retry...", esp_err_to_name((int)data));
99-
ESP_ERROR_CHECK(esp_supp_dpp_start_listen());
100-
s_retry_num++;
101-
} else {
102-
xEventGroupSetBits(s_dpp_event_group, DPP_AUTH_FAIL_BIT);
103-
}
104-
break;
105-
default:
106-
break;
107-
}
108-
}
109-
110114
esp_err_t dpp_enrollee_bootstrap(void)
111115
{
112116
esp_err_t ret;
@@ -157,7 +161,7 @@ void dpp_enrollee_init(void)
157161
ESP_ERROR_CHECK(esp_wifi_init(&cfg));
158162

159163
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
160-
ESP_ERROR_CHECK(esp_supp_dpp_init(dpp_enrollee_event_cb));
164+
ESP_ERROR_CHECK(esp_supp_dpp_init(NULL));
161165
ESP_ERROR_CHECK(dpp_enrollee_bootstrap());
162166
ESP_ERROR_CHECK(esp_wifi_start());
163167

@@ -171,10 +175,7 @@ void dpp_enrollee_init(void)
171175

172176
/* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually
173177
* happened. */
174-
if (bits & DPP_CONNECTED_BIT) {
175-
ESP_LOGI(TAG, "connected to ap SSID:%s password:%s",
176-
s_dpp_wifi_config.sta.ssid, s_dpp_wifi_config.sta.password);
177-
} else if (bits & DPP_CONNECT_FAIL_BIT) {
178+
if (bits & DPP_CONNECT_FAIL_BIT) {
178179
ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s",
179180
s_dpp_wifi_config.sta.ssid, s_dpp_wifi_config.sta.password);
180181
} else if (bits & DPP_AUTH_FAIL_BIT) {

0 commit comments

Comments
 (0)