W5100 webserver po 6-24hod nedostupný

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: W5100 webserver po 6-24hod nedostupný

Příspěvek od KamilV » 03 říj 2022, 09:44

No já myslel spíš tak hodnoty 100 až 2000. Mezi 1 a 5 zas takový rozdíl není :)

Jinak jankop patrně myslel, že je někdy těžké poradit na základě útržku kódu, ve kterém si tazatel myslí, že chyba je. Dost často je ta chyba jinde, kde to tazatel zatajil. A popravdě, i tentokrát to ten případ může být. Když sem dáš celý scatch, usnadníš tím ostatním práci.

V html outputu Ti zcela chybí BODY. Ačkoliv to prohlížeč asi pochopí, odstraňoval bych všechny nestandardní věci.

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: W5100 webserver po 6-24hod nedostupný

Příspěvek od martinius96 » 03 říj 2022, 13:16

Viktor_EX píše:
27 zář 2022, 16:04
aha, diky, tak ja to vyzkousim.

ted jsem daval tuto cast programu na ukoncovani client.session:

Kód: Vybrat vše

      connectLoop++;

      if(connectLoop > 2000)
          {
            // then close the connection from this end.
            //Serial.println();
            //Serial.println(F("Timeout"));
            client.stop();
          }
          // this is a delay for the connectLoop timing
          delay(1);
Čo je to za fragment kódu a kde patrí v tom pôvodnom programe? Máš to použité v cykle while(client.connected() ) ?
To je počítadlo pripojených klientov, alebo sa to inkrementuje po každom ďalšom výpise pre klienta? To máš to socket spojenie otvorené až sa vykoná 2000 pripojení? Ten Ethernet Wiznet dokáže mať otvorené 4 socket spojenia.

Robil som napr. projekt termostat na WIznet W5100 v režime servera. Ak sa mi splnila podmienka if client(), tak som mu proste vypísal výstup a ihneď som ukončil spojenie cez client.stop(). Klient dostal HTML stránku, kde mal meta hlavičku Refresh s časovým parametrom (napr. 10 alebo až 30 sekúnd), tým si klient o 10, resp. 30 sekúnd sám znova vyžiadal totožnú HTML stránku, ktorú mu mikrokontróler znova odoslal.
Obrázek
Tak stránka pôsobila "dynamicky", že sa na nej menily hodnoty, stavy... Frčí mi to na Arduine Uno s 2 kB RAM non-stop. Po komplikácii mi môj projekt hlási využitie RAM 44%, využitie flash 70%. Sú tam celkom 3 HTML stránky. Okrem dashboardu je tam spracovanie HTML formu pre zápis dát do EEPROM a podstránka s JSON výstupom pre ďalšieho klienta, ktorý môže tieto dáta Publishovať na MQTT Broker. Nezávisle na webserveri sa mi tam ešte vykonáva logika termostatu (millis rutina) pre nastavenie stavu výstupu z cieľovej teploty, hysterézy a aktuálne nameranej teploty cez DS18B20 + výpis aktuálnej IP konfigurácie a stavov na UART.

Preto ako píšeš, že ping ti prešiel, teda ti seklo Arduino, ak ti webserver nefunguje. Ten ping obslúžil Wiznet W5100, ktorý má stále platnú IP konfiguráciu. Videl by som to tak, že ti niekde došla RAM po XY spojeniach od klienta. Chyba môže byť aj inde v kóde okolo, ktorý si vôbec neukázal.

Viktor_EX
Příspěvky: 40
Registrován: 19 črc 2021, 11:18
Reputation: 0

Re: W5100 webserver po 6-24hod nedostupný

Příspěvek od Viktor_EX » 03 říj 2022, 22:18

dekuji za informace.
funkce webserver je uzavrena v tom uvedenem void() v prvnim prispevku.
zcela v uvodu jsou dle uvedeneho a znameho prikladu definovany IP a MAC nic vic, nic min.

ostatni veci jsou zase v jinych uzavrenych void() aby se to navzajem nepletlo. cely kod je hodne dlouhy

nicmene, jak jsem psal pred nekolika dny, neznamy pritel na telefonu mi webserver prepsal na ajax webserver .. udelal změny práve a pouze a jenom v void webserver() (po naslednem hledani dle kodu jsem nasel nejake studijni materialy a linky jsou o kousek výše)

ajax webserver bezi ted uz 4 dny bez unavy. 500eur putuje do rakouska. pan je skvely, strucny. komunikace jasna. dilo se podarilo, jsem nadšen.

co je problemem puvodni (tedy vseobecne zname) verze nevim, schvalne jeste vymetu cely kod a necham bezet jen ten webserver na jine IP a budu tam davat nejake menici se cislo a budu to tejrat jednim telefonem. jak to po 24 hod vytuhne, (ostatnim) programem to nebylo.vymenil jsem i ten shield. stale stejne chovani. to testovani je zdlouhave, vzdycky to clovek musi utahat kolem 24hod.

Viktor_EX
Příspěvky: 40
Registrován: 19 črc 2021, 11:18
Reputation: 0

Re: W5100 webserver po 6-24hod nedostupný

Příspěvek od Viktor_EX » 03 říj 2022, 22:29

martinius96: ten fragment kodu jsem nasel v diskusi na arduino cc, tam nejaky kouzelnik uvadel, ze to pouziva pro uzavirani session.
tady je link
https://forum.arduino.cc/t/ethernet-shi ... e/276975/7

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů