added delay and increaset retry count for connecting to wifi, WiFi.SSID(n) is no longer corrupted. Root cause unknown
This commit is contained in:
parent
de8b89fd19
commit
cbe99e6f79
@ -2,6 +2,10 @@
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
execute_process(COMMAND git describe --always --tags --dirty
|
||||
OUTPUT_VARIABLE WH_VERSION
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
add_definitions("-DWH_VERSION=\"${WH_VERSION}\"")
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(wellhub)
|
||||
|
||||
16
main/App.cpp
16
main/App.cpp
@ -36,7 +36,12 @@ CommandProcessor * App::getCommandProcessor()
|
||||
|
||||
void App::init()
|
||||
{
|
||||
#pragma message(WH_VERSION)
|
||||
ESP_LOGW(TAG, "Starting the app...");
|
||||
uint8_t mac[8];
|
||||
esp_read_mac(mac, ESP_MAC_WIFI_STA);
|
||||
ESP_LOGI(TAG, "mqtt_id: %s, wifi mac: %02x:%02x:%02x:%02x:%02x:%02x ...", SETTINGS.mqtt.device_id,
|
||||
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
|
||||
m_led = new Led(LED_PIN);
|
||||
m_wifi = new Wifi();
|
||||
@ -48,6 +53,17 @@ void App::init()
|
||||
|
||||
bool needs_provision = true;
|
||||
|
||||
#if 0
|
||||
ESP_LOGI(TAG, "Scanning wifi networks...");
|
||||
|
||||
int num_networks = WiFi.scanNetworks(false, false, false, 0);
|
||||
|
||||
for(int n = 0; n < num_networks; n++)
|
||||
{
|
||||
ESP_LOGI(TAG, "%s, %d", WiFi.SSID(n).c_str(), WiFi.RSSI(n));
|
||||
}
|
||||
#endif
|
||||
|
||||
if(SETTINGS.wifi.num > 0)
|
||||
{
|
||||
// try connecting
|
||||
|
||||
@ -152,13 +152,14 @@ void ProvisionSoftAP::start(const char * ssid, const char * password)
|
||||
m_rwriter->appendf("num:%d|", num_networks);
|
||||
for (int n = 0; n < num_networks; n++)
|
||||
{
|
||||
m_rwriter->appendf("%s,%d,%d", WiFi.SSID(n), WiFi.encryptionType(n) == WIFI_AUTH_OPEN ? 0 : 1, WiFi.RSSI(n));
|
||||
ESP_LOGI(TAG, "'%s', %d", WiFi.SSID(n).c_str(), WiFi.RSSI(n));
|
||||
m_rwriter->appendf("%s,%d,%d", WiFi.SSID(n).c_str(), WiFi.encryptionType(n) == WIFI_AUTH_OPEN ? 0 : 1, WiFi.RSSI(n));
|
||||
if(n != num_networks - 1)
|
||||
m_rwriter->append('|');
|
||||
}
|
||||
ESP_LOGI(TAG, "Sending '%s'", m_rwriter->getBuffer());
|
||||
m_webSocket->textAll(m_rwriter->getBuffer());
|
||||
vTaskDelay(550);
|
||||
vTaskDelay(1550);
|
||||
}
|
||||
|
||||
if(m_tryConnect)
|
||||
@ -288,6 +289,8 @@ void ProvisionSoftAP::tryConnect()
|
||||
waitBufferEmpty();
|
||||
|
||||
ESP_LOGI(TAG, "restarting...");
|
||||
WiFi.disconnect();
|
||||
WiFi.mode(WIFI_MODE_NULL);
|
||||
esp_restart();
|
||||
}
|
||||
WiFi.mode(WIFI_MODE_AP);
|
||||
|
||||
@ -94,6 +94,8 @@ Wifi::WIFI_STATUS Wifi::connectTo(int index)
|
||||
|
||||
ESP_LOGI(TAG, "Connecting to %s...", SETTINGS.wifi.entry[index].ssid);
|
||||
|
||||
delay(1000);
|
||||
|
||||
// set hostname
|
||||
uint8_t mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
@ -112,6 +114,9 @@ Wifi::WIFI_STATUS Wifi::connectTo(int index)
|
||||
ESP_LOGI(TAG, "Connected");
|
||||
return WIFI_STATUS::CONNECTED;
|
||||
}
|
||||
|
||||
delay(1000);
|
||||
|
||||
WiFi.disconnect();
|
||||
ESP_LOGW(TAG, "Failed to connect");
|
||||
return WIFI_STATUS::NOT_CONNECTED;
|
||||
@ -121,7 +126,10 @@ int Wifi::start()
|
||||
{
|
||||
if(m_task == nullptr)
|
||||
{
|
||||
ESP_LOGW(TAG, "Starting wifi...");
|
||||
uint8_t mac[8];
|
||||
esp_read_mac(mac, ESP_MAC_WIFI_STA);
|
||||
ESP_LOGW(TAG, "Starting wifi, mac: %02x:%02x:%02x:%02x:%02x:%02x ...", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
|
||||
m_task = TaskMgr::getInstance().createTask(std::bind(&Wifi::task, this), WIFI_TASK_NAME, WIFI_TASK_STACK_SIZE, WIFI_TASK_PRIORITY, WIFI_TASK_CORE);
|
||||
}
|
||||
return 0;
|
||||
@ -154,7 +162,7 @@ Wifi::WIFI_STATUS Wifi::startConnecting()
|
||||
if(SETTINGS.wifi.num == 1)
|
||||
{
|
||||
SETTINGS.wifi.selected = 0;
|
||||
for(int n = 0; n < 3; n++)
|
||||
for(int n = 0; n < 7; n++)
|
||||
{
|
||||
if(connectTo(SETTINGS.wifi.selected) == WIFI_STATUS::CONNECTED)
|
||||
return WIFI_STATUS::CONNECTED;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user