Skip to content

Commit 30feca2

Browse files
committed
implement esp32 modsmartconfig status
1 parent c3d5a6a commit 30feca2

File tree

1 file changed

+21
-26
lines changed

1 file changed

+21
-26
lines changed

ports/esp32/modsmartconfig.c

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ static const char *TAG = "sc";
4242
wifi_config_t * wifi_config;
4343
char phoneip[15] = {0};
4444

45-
static EventGroupHandle_t wait_event_group;
46-
static const int SMARTCONFIG_DONE_BIT = BIT1;
45+
smartconfig_status_t smartconfig_status;
4746

4847
void STATIC smartconfig_callback(smartconfig_status_t status, void *pdata) {
4948
switch(status) {
@@ -73,9 +72,9 @@ void STATIC smartconfig_callback(smartconfig_status_t status, void *pdata) {
7372
ESP_LOGI(TAG, "Phone ip: %d.%d.%d.%d\n", phone_ip[0], phone_ip[1], phone_ip[2], phone_ip[3]);
7473
sprintf(phoneip, "%d.%d.%d.%d", phone_ip[0], phone_ip[1], phone_ip[2], phone_ip[3]);
7574
}
76-
xEventGroupSetBits(wait_event_group, SMARTCONFIG_DONE_BIT);
7775
break;
7876
}
77+
smartconfig_status = status;
7978
}
8079

8180
STATIC mp_obj_t espsmartconfig_set_type(size_t n_args, const mp_obj_t *args) {
@@ -89,15 +88,14 @@ STATIC mp_obj_t espsmartconfig_set_type(size_t n_args, const mp_obj_t *args) {
8988
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(espsmartconfig_set_type_obj, 0, 1, espsmartconfig_set_type);
9089

9190
STATIC mp_obj_t espsmartconfig_start(void) {
92-
wait_event_group = xEventGroupCreate();
91+
smartconfig_status = SC_STATUS_WAIT;
9392
esp_smartconfig_start(smartconfig_callback);
9493
return mp_const_none;
9594
}
9695
MP_DEFINE_CONST_FUN_OBJ_0(espsmartconfig_start_obj, espsmartconfig_start);
9796

9897
STATIC mp_obj_t espsmartconfig_stop(void) {
9998
esp_smartconfig_stop();
100-
vEventGroupDelete(wait_event_group);
10199
return mp_const_none;
102100
}
103101
MP_DEFINE_CONST_FUN_OBJ_0(espsmartconfig_stop_obj, espsmartconfig_stop);
@@ -132,33 +130,30 @@ STATIC mp_obj_t espsmartconfig_getphoneip(void) {
132130

133131
MP_DEFINE_CONST_FUN_OBJ_0(espsmartconfig_getphoneip_obj, espsmartconfig_getphoneip);
134132

135-
STATIC mp_obj_t espsmartconfig_wait(void) {
136-
EventBits_t uxBits;
137-
while (1) {
138-
uxBits = xEventGroupWaitBits(wait_event_group, SMARTCONFIG_DONE_BIT, true, false, portMAX_DELAY);
139-
if(uxBits & SMARTCONFIG_DONE_BIT) {
140-
break;
141-
}
142-
}
143-
144-
return mp_const_none;
133+
STATIC mp_obj_t espsmartconfig_status(void) {
134+
return mp_obj_new_int(smartconfig_status);
145135
}
146136

147-
MP_DEFINE_CONST_FUN_OBJ_0(espsmartconfig_wait_obj, espsmartconfig_wait);
137+
MP_DEFINE_CONST_FUN_OBJ_0(espsmartconfig_status_obj, espsmartconfig_status);
148138

149139

150140
STATIC const mp_map_elem_t mo_module_espsmartconfig_globals_table[] = {
151141
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_smartconfig) },
152-
{ MP_ROM_QSTR(MP_QSTR_set_type), (mp_obj_t)&espsmartconfig_set_type_obj },
153-
{ MP_ROM_QSTR(MP_QSTR_start), (mp_obj_t)&espsmartconfig_start_obj },
154-
{ MP_ROM_QSTR(MP_QSTR_stop), (mp_obj_t)&espsmartconfig_stop_obj },
155-
{ MP_ROM_QSTR(MP_QSTR_get_ssid), (mp_obj_t)&espsmartconfig_getssid_obj },
156-
{ MP_ROM_QSTR(MP_QSTR_get_password), (mp_obj_t)&espsmartconfig_getpassword_obj },
157-
{ MP_ROM_QSTR(MP_QSTR_get_phoneip), (mp_obj_t)&espsmartconfig_getphoneip_obj },
158-
{ MP_ROM_QSTR(MP_QSTR_wait), (mp_obj_t)&espsmartconfig_wait_obj },
159-
{ MP_ROM_QSTR(MP_QSTR_ESPTOUCH), MP_ROM_INT(SC_TYPE_ESPTOUCH) },
160-
{ MP_ROM_QSTR(MP_QSTR_AIRKISS), MP_ROM_INT(SC_TYPE_AIRKISS) },
161-
{ MP_ROM_QSTR(MP_QSTR_ESPTOUCH_AIRKISS), MP_ROM_INT(SC_TYPE_ESPTOUCH_AIRKISS) },
142+
{ MP_ROM_QSTR(MP_QSTR_set_type), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_set_type_obj) },
143+
{ MP_ROM_QSTR(MP_QSTR_start), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_start_obj) },
144+
{ MP_ROM_QSTR(MP_QSTR_stop), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_stop_obj) },
145+
{ MP_ROM_QSTR(MP_QSTR_get_ssid), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_getssid_obj) },
146+
{ MP_ROM_QSTR(MP_QSTR_get_password), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_getpassword_obj) },
147+
{ MP_ROM_QSTR(MP_QSTR_get_phoneip), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_getphoneip_obj) },
148+
{ MP_ROM_QSTR(MP_QSTR_status), MP_ROM_PTR((mp_obj_t *)&espsmartconfig_status_obj) },
149+
{ MP_ROM_QSTR(MP_QSTR_SC_TYPE_ESPTOUCH), MP_ROM_INT(SC_TYPE_ESPTOUCH) },
150+
{ MP_ROM_QSTR(MP_QSTR_SC_TYPE_AIRKISS), MP_ROM_INT(SC_TYPE_AIRKISS) },
151+
{ MP_ROM_QSTR(MP_QSTR_SC_TYPE_ESPTOUCH_AIRKISS), MP_ROM_INT(SC_TYPE_ESPTOUCH_AIRKISS) },
152+
{ MP_ROM_QSTR(MP_QSTR_SC_STATUS_WAIT), MP_ROM_INT((mp_uint_t)SC_STATUS_WAIT) },
153+
{ MP_ROM_QSTR(MP_QSTR_SC_STATUS_FIND_CHANNEL), MP_ROM_INT((mp_uint_t)SC_STATUS_FIND_CHANNEL) },
154+
{ MP_ROM_QSTR(MP_QSTR_SC_STATUS_GETTING_SSID_PSWD), MP_ROM_INT((mp_uint_t)SC_STATUS_GETTING_SSID_PSWD) },
155+
{ MP_ROM_QSTR(MP_QSTR_SC_STATUS_LINK), MP_ROM_INT((mp_uint_t)SC_STATUS_LINK) },
156+
{ MP_ROM_QSTR(MP_QSTR_SC_STATUS_LINK_OVER), MP_ROM_INT((mp_uint_t)SC_STATUS_LINK_OVER) },
162157
};
163158

164159
STATIC MP_DEFINE_CONST_DICT(mo_module_espsmartconfig_globals, mo_module_espsmartconfig_globals_table);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy