• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

SOFT_AP(SOFT_AP_STA) & WL_IDLE_STATUS

Discriminator

New member
Чего-то я недопонимаю....
Стартуем AP
Код:
  WiFi.disconnect();
  WiFi.mode(WIFI_AP_STA);
  WiFi.softAPConfig(astroIP, astroGW, classCMASK);
  WiFi.softAP(aSSID, aPassword);
  while (WiFi.status() != WL_CONNECTED) {
   #if SerialDebug 
   statuss(WiFi.status());
   #endif   
   delay(1000);
  }
WiFi.status() говорит WL_IDLE_STATUS, независимо от WIFI_AP_STA и WIFI_AP
Тем не менее точка доступа появляется и к ней коннектится комп. Но как видите по коду - естественно из цикла не вываливаемся.

Если посмотреть ...\Arduino15\packages\esp8266\hardware\esp8266\1.6.4-673-g8cd3697\libraries\ESP8266WiFi\src\ESP8266WiFi.cpp
Код:
wl_status_t ESP8266WiFiClass::status()
{
    int status = wifi_station_get_connect_status();

    if (status == STATION_GOT_IP)
      return WL_CONNECTED;
    else if (status == STATION_NO_AP_FOUND)
      return WL_NO_SSID_AVAIL;
    else if (status == STATION_CONNECT_FAIL || status == STATION_WRONG_PASSWORD)
      return WL_CONNECT_FAILED;
    else if (status == STATION_IDLE)
      return WL_IDLE_STATUS;
    else
      return WL_DISCONNECTED;
}
int status = wifi_station_get_connect_status();
Из доки к SDK: wifi_station_get_connect_status - Function: Get connection status of WiFi station to AP

Это правомерно ? Сам пример такого старта AP взят из примеров. Библиотека "STABLE"
Код:
void setup() {
    delay(1000);
    Serial.begin(115200);
    Serial.println();
    Serial.print("Configuring access point...");
    /* You can remove the password parameter if you want the AP to be open. */
    WiFi.softAP(ssid, password);

    while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }

    Serial.println("done");
    IPAddress myIP = WiFi.softAPIP();
    Serial.print("AP IP address: ");
    Serial.println(myIP);
    server.on("/", handleRoot);
    server.begin();
    Serial.println("HTTP server started");
}
 

Discriminator

New member
Маленькое примечание: в отличие от примера - я пытаюсь сразу установить параметры сети до старта AP, а пример хватает то что предоставит ему SDK.
 

Victor

Administrator
Команда форума
Discriminator, судя по коду, [inline]WiFi.status()[/inline] не имеет отношение к AP - только для STATION. Да и по смыслу поднятие точки доступа не должно требовать значительного времени (только некоторое время включение передатчика), а в режиме STATION там обмен, идентификация и т.п., ощутимо более длительный процесс.
 

Discriminator

New member
Victor, вот и я примерно о том же.
И вообще - вроде я этот пример пробовал(точно не помню) но вроде все срабатывало. Только вот в чем дело.
все это дело проверяется, в принципе по:
if (status == STATION_GOT_IP) return WL_CONNECTED;
Т.е. это все справедливо пока сетевые настройки (IP-шные) подымаются в автомате...
Мне сейчас некогда эксперементировать, но получится, если я применю WiFi.config(). Оно тоже пожет проскочить ? Даже не успев соединиться ?

И, да, еще раз повторюсь - в принципе код "запуска" скопирован и дополнен из сопутствующих примеров.
А как эта штука поведет себя когда мне нужно стартовать в смешанном режиме и со статическими адресными параметрами ?
Вечерком свой код я поправлю и посмотрю как оно без данных проверок себя поведет...
 

Discriminator

New member
:D Подкачал найтли - текст "статуса" такой же, для AP никаких статусов, но в тексте примера изчезла проверка статуса :D
 

Victor

Administrator
Команда форума
еще так попробуйте (иногда коряво как-то обновляется)

1. деинсталлировать ESP8266 by esp8266 community forum
2. почистить C:/users/username/AppData/Roaming/Arduino15 (ну или где там оно у вас)
3. прописать nightly build json
4. инсталлировать ESP8266 by esp8266 community forum
 

Discriminator

New member
Код:
 Содержимое папки C:\Users\user\AppData\Roaming\Arduino15\packages\esp8266\h
ardware\esp8266

22.06.2015  16:24    <DIR>          .
22.06.2015  16:24    <DIR>          ..
28.05.2015  09:24    <DIR>          1.6.4-673-g8cd3697
22.06.2015  16:25    <DIR>          1.6.4-835-g77d77e8
Сейчас на "нерабочей машине" зачистка не актуальна - оно все равно в отдельную папку по номеру билда закачивается....
 

Victor

Administrator
Команда форума
в отдельную папку
При установке nightly build у меня подозрительно быстро скачались 130Мб, и были глюки, поэтому я сильно вникать не стал, все почистил и установил по новой. После этого стало ок. Вот вы заметили по времени и вашей скорости интернета 130Мб нормально качались или слишком быстро? Если все-таки быстро, то лучше почистить.
 

Discriminator

New member
Вот вы заметили по времени и вашей скорости интернета 130Мб нормально качались или слишком быстро? Если все-таки быстро, то лучше почистить.
проскочило быстро. Но, повторюсь, это не рабочая машинка. Те файлы которые меня интересовали изменились но я посмотрел конкретные места и отписался. На той машине где я вожусь со всем этим - естественно я буду через зачистку делать
 

Discriminator

New member
Victor, сейчас начал устанавливать "ночник" - там в "Ардуино15" 3 пакета качается esp8266, esptool, win_xtensa....
Так что обновление вполне может быть коротким если второй и третий файл не менялись...
Если, конечно, я правильно понимаю как эта штука работает...
 

Discriminator

New member
Arduino: 1.6.4 (Windows 7), Плата"Generic ESP8266 Module, 80 MHz, 115200, 512K (64K SPIFFS)"

c:/users/victor/appdata/roaming/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/lib\libm.a(lib_a-e_pow.o):(.literal+0x104): undefined reference to `__ieee754_sqrt'
c:/users/victor/appdata/roaming/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/lib\libm.a(lib_a-e_pow.o): In function `__ieee754_pow':
d:\ivan\projects\arduinoesp\toolchain\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libm\math/../../../../../newlib/libm/math/e_pow.c:164: undefined reference to `__ieee754_sqrt'
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.

Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки
 
Сверху Снизу