main/task_wifi.c

changeset 7
2b337dd92f25
parent 6
bad3414f7bc4
child 8
115e93bf8796
equal deleted inserted replaced
6:bad3414f7bc4 7:2b337dd92f25
102 //wifi_state->STA_rssi = 0; 102 //wifi_state->STA_rssi = 0;
103 xSemaphoreGive(xSemaphoreWiFi); 103 xSemaphoreGive(xSemaphoreWiFi);
104 } else { 104 } else {
105 ESP_LOGE(TAG, "wifi_event_handler() lock error WIFI_EVENT_STA_DISCONNECTED"); 105 ESP_LOGE(TAG, "wifi_event_handler() lock error WIFI_EVENT_STA_DISCONNECTED");
106 } 106 }
107 connect_mqtt(false); 107 if (ready_mqtt())
108 connect_mqtt(false);
108 xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_STA_CONNECTED); 109 xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_STA_CONNECTED);
109 xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED); 110 xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED);
110 break; 111 break;
111 } 112 }
112 113
225 226
226 if (uxBits & TASK_WIFI_REQUEST_STA_DISCONNECT) { 227 if (uxBits & TASK_WIFI_REQUEST_STA_DISCONNECT) {
227 /* 228 /*
228 * user requested a disconnect, this will in effect disconnect the wifi 229 * user requested a disconnect, this will in effect disconnect the wifi
229 */ 230 */
231 ESP_LOGI(TAG, "Request STA disconnect");
230 connect_mqtt(false); 232 connect_mqtt(false);
231 ESP_LOGI(TAG, "Request STA disconnect"); 233 wait_mqtt(10000);
232 ESP_ERROR_CHECK(esp_wifi_disconnect()); 234 ESP_ERROR_CHECK(esp_wifi_disconnect());
233 xEventGroupWaitBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED, pdFALSE, pdTRUE, portMAX_DELAY ); 235 xEventGroupWaitBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED, pdFALSE, pdTRUE, portMAX_DELAY );
234 236
235 /* finally: release the request bit */ 237 /* finally: release the request bit */
236 xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_DISCONNECT); 238 xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_DISCONNECT);

mercurial