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); |