4 Commits

4 changed files with 22 additions and 9 deletions

View File

@@ -12,7 +12,7 @@
"type": "git", "type": "git",
"url": "http://git.xpablo.cz/pablo2048/WiFiConfig.git" "url": "http://git.xpablo.cz/pablo2048/WiFiConfig.git"
}, },
"version": "6.0", "version": "6.3.1",
"license": "MIT", "license": "MIT",
"frameworks": "arduino", "frameworks": "arduino",
"platforms": ["espressif8266", "espressif32"], "platforms": ["espressif8266", "espressif32"],

View File

@@ -1,5 +1,5 @@
name=WiFiConfig name=WiFiConfig
version=6.0 version=6.3.1
author=Pavel Brychta author=Pavel Brychta
maintainer=Pavel Brychta <Pablo@xpablo.cz> maintainer=Pavel Brychta <Pablo@xpablo.cz>
sentence=Enables seamless module configuration. sentence=Enables seamless module configuration.

View File

@@ -1,4 +1,9 @@
/* /*
* V6.3.1- 1.9.2019 - Odstraneni HTML5 validatoru - delaly akorat problemy anedala se ulozit konfigurace i kdyz byly polozky skryty
*
* V6.3 - 12.8.2019 - IP adresa Captive portalu je zmenena na 172.217.28.1 kvuli funkcnosti na Android zarizenich (viz. zmena zde https://github.com/esp8266/Arduino/blob/master/libraries/DNSServer/examples/CaptivePortal/CaptivePortal.ino)
* ladici vypis pri zachyceni presmerovani v Captive portalu.
*
* V6.2 - 12.12.2018- Nastaveni jmena zarizeni nadale NENI soucasti WiFiConfig a je treba ho pridat jako uzivatelsky parametr. Je to proto, protoze * V6.2 - 12.12.2018- Nastaveni jmena zarizeni nadale NENI soucasti WiFiConfig a je treba ho pridat jako uzivatelsky parametr. Je to proto, protoze
* se ukazalo, ze neni dobre z externiho kodu sahat do vnitrni struktury WiFiConfig (napr. pri ukladani noveho jmena). * se ukazalo, ze neni dobre z externiho kodu sahat do vnitrni struktury WiFiConfig (napr. pri ukladani noveho jmena).
* *
@@ -21,7 +26,7 @@
* *
* V5.3 - 8.12.2017 - prepracovano presmerovani v Captive portalu, DEBUG_MSG makro upraveno na posledni pouzivanou verzi, scitani retezcu prepracovano na .concat. Pripsany Informace o modulu, reakce na Reset * V5.3 - 8.12.2017 - prepracovano presmerovani v Captive portalu, DEBUG_MSG makro upraveno na posledni pouzivanou verzi, scitani retezcu prepracovano na .concat. Pripsany Informace o modulu, reakce na Reset
* *
* V5.2 - 20.4.2017 - Pokud je pouzite v timeoutu EC_DONT_RUN_CONFIGAP tak se vracime okamzite a necekame na pripojeni k WiFi (take nevolame zadnou callback metodu). * V5.2 - 20.4.2017 - Pokud je pouzite v timeoutu WC_DONT_RUN_CONFIGAP tak se vracime okamzite a necekame na pripojeni k WiFi (take nevolame zadnou callback metodu).
* Navratovy kod je pak WCR_CONFIGAP_NOT_STARTED . * Navratovy kod je pak WCR_CONFIGAP_NOT_STARTED .
* *
* V5.1 - 3.4.2017 - Webove rozhrani upravene pro snadnejsi ovladani na telefonu/tabletu, sila signalu AP zobrazena jako barevne odliseny indikator. * V5.1 - 3.4.2017 - Webove rozhrani upravene pro snadnejsi ovladani na telefonu/tabletu, sila signalu AP zobrazena jako barevne odliseny indikator.
@@ -313,7 +318,13 @@ void WiFiConfig::_handleNotFound(void)
} }
else else
{ {
server->sendHeader(F("Location"), String(F("http://")) + server->client().localIP().toString() + String(F("/index.htm")), true); String redirect;
redirect.reserve(256);
redirect = F("http://");
redirect.concat(server->client().localIP().toString());
redirect.concat(F("/index.htm"));
DEBUG_MSG("Redirection to: %s\r\n", redirect.c_str());
server->sendHeader(F("Location"), redirect, true);
server->send_P(302, TEXTPLAIN, PSTR("Redirect")); server->send_P(302, TEXTPLAIN, PSTR("Redirect"));
} }
} }
@@ -697,7 +708,7 @@ wificonfigresult_t WiFiConfig::_setupAP(wificonfig_cb cb)
#endif #endif
/* Soft AP network parameters */ /* Soft AP network parameters */
IPAddress apIP(192, 168, 4, 1); IPAddress apIP(172, 217, 28, 1);
IPAddress netMsk(255, 255, 255, 0); IPAddress netMsk(255, 255, 255, 0);
WiFi.disconnect(); // pro jistotu se odpojime WiFi.disconnect(); // pro jistotu se odpojime
@@ -912,6 +923,8 @@ wificonfigresult_t WiFiConfig::begin(int configarea, int forceConfigure, int tim
if ((timeout > 0) && (40 > timeout)) if ((timeout > 0) && (40 > timeout))
timeout = 40; // timeout musi byt minimalne 40 sekund timeout = 40; // timeout musi byt minimalne 40 sekund
if ((0 == forceConfigure) && (WC_DONT_RUN_CONFIGAP == timeout))
timeout = 40;
_timeout = timeout; _timeout = timeout;
if (_timeout > 0) if (_timeout > 0)
_time = millis() + (_timeout * 1000); // spocitame si novy cas, kdy budeme modul restartovat _time = millis() + (_timeout * 1000); // spocitame si novy cas, kdy budeme modul restartovat

View File

@@ -58,10 +58,10 @@ static const char PAGE_INDEX2[] PROGMEM = R"=====(
<div> <div>
<label><input id='_st' name='_st' type='checkbox' style="width: 10%; float: left; margin-top: 5px;" onclick='hSC();' {c}>Statická IP konfigurace</label> <label><input id='_st' name='_st' type='checkbox' style="width: 10%; float: left; margin-top: 5px;" onclick='hSC();' {c}>Statická IP konfigurace</label>
<div id="staticip"> <div id="staticip">
<label>IP adresa<br><input type="text" name="_i" pattern='((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$' title='ip adresa ve formatu <cislo>.<cislo>.<cislo>.<cislo>' value='{i}'></label><br> <label>IP adresa<br><input type="text" name="_i" value='{i}'></label><br>
<label>Síťová maska<br><input type="text" name="_m" pattern='((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$' title='ip adresa ve formatu <cislo>.<cislo>.<cislo>.<cislo>' value='{m}'></label><br> <label>Síťová maska<br><input type="text" name="_m" value='{m}'></label><br>
<label>Síťová brána<br><input type="text" name="_g" pattern='((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$' title='ip adresa ve formatu <cislo>.<cislo>.<cislo>.<cislo>' value='{g}'></label><br> <label>Síťová brána<br><input type="text" name="_g" value='{g}'></label><br>
<label>Server DNS<br><input type="text" name="_d" pattern='((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$' title='ip adresa ve formatu <cislo>.<cislo>.<cislo>.<cislo>' value='{d}'></label><br> <label>Server DNS<br><input type="text" name="_d" value='{d}'></label><br>
</div> </div>
</div> </div>
<script>hAP();hSC();</script> <script>hAP();hSC();</script>