forked from j3d1/fiatlux
a liitle more stable
This commit is contained in:
parent
baf6f8bb45
commit
aa32239740
11 changed files with 221 additions and 136 deletions
|
|
@ -146,9 +146,6 @@ extern "C" void wifi_task(void *pvParameters) {
|
|||
sysparam_get_int8("wifi_ap_enable", &wifi_ap_enable);
|
||||
wifi_ap_enable = 0;
|
||||
|
||||
if(!wifi_sta_enable)
|
||||
wifi_ap_enable = 1;
|
||||
|
||||
int8_t wifi_sta_disabled_restarts = 0;
|
||||
sysparam_get_int8("wifi_sta_disabled_restarts", &wifi_sta_disabled_restarts);
|
||||
if(wifi_sta_disabled_restarts > 0) {
|
||||
|
|
@ -176,6 +173,9 @@ extern "C" void wifi_task(void *pvParameters) {
|
|||
wifi_sta_enable = 0;
|
||||
}
|
||||
|
||||
if(!wifi_sta_enable)
|
||||
wifi_ap_enable = 1;
|
||||
|
||||
if(wifi_ap_enable) {
|
||||
/* Default AP ssid and password. */
|
||||
if(!wifi_ap_ssid && wificfg_default_ssid) {
|
||||
|
|
@ -352,37 +352,43 @@ extern "C" void wifi_task(void *pvParameters) {
|
|||
uint8_t status = 0;
|
||||
uint8_t retries = 30;
|
||||
|
||||
while (1) {
|
||||
if(wifi_sta_enable) {
|
||||
while (1) {
|
||||
|
||||
retries = 30;
|
||||
while ((status != STATION_GOT_IP) && (retries)) {
|
||||
status = sdk_wifi_station_get_connect_status();
|
||||
printf("%s: status = %d [%d retries left]\n\r", __func__, status, retries);
|
||||
if(status == STATION_WRONG_PASSWORD) {
|
||||
printf("WiFi: wrong password\n\r");
|
||||
break;
|
||||
} else if(status == STATION_NO_AP_FOUND) {
|
||||
printf("WiFi: AP not found\n\r");
|
||||
break;
|
||||
} else if(status == STATION_CONNECT_FAIL) {
|
||||
printf("WiFi: connection failed\r\n");
|
||||
break;
|
||||
retries = 30;
|
||||
while ((status != STATION_GOT_IP) && (retries)) {
|
||||
status = sdk_wifi_station_get_connect_status();
|
||||
printf("%s: status = %d [%d retries left]\n\r", __func__, status, retries);
|
||||
if(status == STATION_WRONG_PASSWORD) {
|
||||
printf("WiFi: wrong password\n\r");
|
||||
break;
|
||||
} else if(status == STATION_NO_AP_FOUND) {
|
||||
printf("WiFi: AP not found\n\r");
|
||||
break;
|
||||
} else if(status == STATION_CONNECT_FAIL) {
|
||||
printf("WiFi: connection failed\r\n");
|
||||
break;
|
||||
}
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
--retries;
|
||||
}
|
||||
if(status == STATION_GOT_IP) {
|
||||
printf("WiFi: Connected\n\r");
|
||||
xSemaphoreGive(wifi_alive);
|
||||
taskYIELD();
|
||||
}
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
--retries;
|
||||
}
|
||||
if(status == STATION_GOT_IP) {
|
||||
printf("WiFi: Connected\n\r");
|
||||
xSemaphoreGive(wifi_alive);
|
||||
taskYIELD();
|
||||
}
|
||||
|
||||
while ((status = sdk_wifi_station_get_connect_status()) == STATION_GOT_IP) {
|
||||
xSemaphoreGive(wifi_alive);
|
||||
taskYIELD();
|
||||
while ((status = sdk_wifi_station_get_connect_status()) == STATION_GOT_IP) {
|
||||
xSemaphoreGive(wifi_alive);
|
||||
taskYIELD();
|
||||
}
|
||||
printf("WiFi: disconnected\n\r");
|
||||
sdk_wifi_station_disconnect();
|
||||
vTaskDelay(10000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
} else {
|
||||
while(1) {
|
||||
vTaskDelay(10000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
printf("WiFi: disconnected\n\r");
|
||||
sdk_wifi_station_disconnect();
|
||||
vTaskDelay(10000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue