@@ -42,8 +42,7 @@ static const char *TAG = "sc";
42
42
wifi_config_t * wifi_config ;
43
43
char phoneip [15 ] = {0 };
44
44
45
- static EventGroupHandle_t wait_event_group ;
46
- static const int SMARTCONFIG_DONE_BIT = BIT1 ;
45
+ smartconfig_status_t smartconfig_status ;
47
46
48
47
void STATIC smartconfig_callback (smartconfig_status_t status , void * pdata ) {
49
48
switch (status ) {
@@ -73,9 +72,9 @@ void STATIC smartconfig_callback(smartconfig_status_t status, void *pdata) {
73
72
ESP_LOGI (TAG , "Phone ip: %d.%d.%d.%d\n" , phone_ip [0 ], phone_ip [1 ], phone_ip [2 ], phone_ip [3 ]);
74
73
sprintf (phoneip , "%d.%d.%d.%d" , phone_ip [0 ], phone_ip [1 ], phone_ip [2 ], phone_ip [3 ]);
75
74
}
76
- xEventGroupSetBits (wait_event_group , SMARTCONFIG_DONE_BIT );
77
75
break ;
78
76
}
77
+ smartconfig_status = status ;
79
78
}
80
79
81
80
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) {
89
88
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (espsmartconfig_set_type_obj , 0 , 1 , espsmartconfig_set_type );
90
89
91
90
STATIC mp_obj_t espsmartconfig_start (void ) {
92
- wait_event_group = xEventGroupCreate () ;
91
+ smartconfig_status = SC_STATUS_WAIT ;
93
92
esp_smartconfig_start (smartconfig_callback );
94
93
return mp_const_none ;
95
94
}
96
95
MP_DEFINE_CONST_FUN_OBJ_0 (espsmartconfig_start_obj , espsmartconfig_start );
97
96
98
97
STATIC mp_obj_t espsmartconfig_stop (void ) {
99
98
esp_smartconfig_stop ();
100
- vEventGroupDelete (wait_event_group );
101
99
return mp_const_none ;
102
100
}
103
101
MP_DEFINE_CONST_FUN_OBJ_0 (espsmartconfig_stop_obj , espsmartconfig_stop );
@@ -132,33 +130,30 @@ STATIC mp_obj_t espsmartconfig_getphoneip(void) {
132
130
133
131
MP_DEFINE_CONST_FUN_OBJ_0 (espsmartconfig_getphoneip_obj , espsmartconfig_getphoneip );
134
132
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 );
145
135
}
146
136
147
- MP_DEFINE_CONST_FUN_OBJ_0 (espsmartconfig_wait_obj , espsmartconfig_wait );
137
+ MP_DEFINE_CONST_FUN_OBJ_0 (espsmartconfig_status_obj , espsmartconfig_status );
148
138
149
139
150
140
STATIC const mp_map_elem_t mo_module_espsmartconfig_globals_table [] = {
151
141
{ 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 ) },
162
157
};
163
158
164
159
STATIC MP_DEFINE_CONST_DICT (mo_module_espsmartconfig_globals , mo_module_espsmartconfig_globals_table );
0 commit comments