Go Down

Topic: Webbino - Server web "dinamico" per Arduino (Read 55677 times) previous topic - next topic

SukkoPera

#135
Nov 24, 2016, 03:19 pm Last Edit: Nov 24, 2016, 03:20 pm by SukkoPera
Sono stato io quando ho integrato il branch buffer nel master, stai usando l'ultima versione, non ti preoccupare.

Se è lentissimo, a questo punto non dipende da motivi intrinsici a Webbino. Prova comunque ad aumentare la dimensione del buffer se hai RAM a disposizione. Hai dei delay()? Puoi postare lo sketch?
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

tototer

ecco tutto il mio sketch in allegato sukko!

non so più cosa provare :( nel frattempo che ti scrivo qst messaggio, sto provando ad aumentare il buffer da 64 a 256 vediamo che succede...

tototer

scusa ero saltato. è possibile attribuire il problema ai valori di utilizzo alti?

mettendo 256 neppure funziona (arrivando all'91 % di memoria dinamica utilizzata)

ora ho messo 128 e mi da questi lavori.

Lo sketch usa 27.086 byte (83%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 1.752 byte (85%) di memoria dinamica, lasciando altri 296 byte liberi per le variabili locali. Il massimo è 2.048 byte.
Poca memoria disponibile, potrebbero presentarsi problemi di stabilità


prima dell'aggiornamento eravamo entrambi i valori a circa 70

SukkoPera

Beh, il buffer devi dimensionarlo tu in rapporto alla RAM libera che hai. L'IDE è piuttosto conservativo ed emette quell'avviso quando la RAM occupata supera il 70-75%, ma in effetti è bene non eccedere questa soglia. Se con 128 funziona a malapena, magari metti 96. Fai un po' di tentativi insomma.

In realtà, da una rapida occhiata allo sketch, non capisco dove usi tutta questa RAM. Quanto tiene l'esempio SubstitutionTags di Webbino senza modifiche?

Non vedo nemmeno cose che possono rallentare più di tanto il caricamento della pagina, a parte le 2000 analogRead() :D. Prova un attimo a togliere queste e a vedere se la situazione migliora.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

tototer

ciao ho appena provato a compilare il tuo esempio senza nessuna modifica e questo è il risultato:

ReplacementTags

Lo sketch usa 25.186 byte (78%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 1.776 byte (86%) di memoria dinamica, lasciando altri 272 byte liberi per le variabili locali. Il massimo è 2.048 byte.
Poca memoria disponibile, potrebbero presentarsi problemi di stabilità


a questo punto credo che ci sia qualcosa che non va o sbaglio?

As_Needed

#140
Nov 24, 2016, 05:26 pm Last Edit: Nov 24, 2016, 05:27 pm by As_Needed
P.S. Sono io che sono arretrato  :smiley-mr-green:  Perché poi quando sukko ha fatto il merged io ero ancora con la versione con i branch, ma alla fine è uguale, solo che adesso è tutto incluso.
Comunque possibile che ti va ancora lento? A me come hai visto si carica velocissima la pagina, poi ci mette un po' a rispondere per colpa di quel maledetto ciclo for, ma quella è colpa mia ;)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

As_Needed

MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

SukkoPera

Mi sembra un po' esagerato, usi lo shield Ethernet ufficiale? Al momento non ho niente sotto mano e non posso fare test comunque.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

tototer

Ho uno shield comprato su internet, credo sia uno di concorrenza. Comunque non penso sia questo il problema perché quando compilo, compilo sul mio computer senza collegarlo ad arduino.... può essere qualche libreria? Ricordo di avere scaricato pstring o qualcosa di genere all inizio che serviva a webbino o ricordo male?

gpb01

#144
Nov 25, 2016, 08:23 pm Last Edit: Nov 25, 2016, 08:23 pm by gpb01
Sukko ...
... ho scaricato ed installato la 0.9.1git e la situazione è decisamente migliorata (ho lasciato il buffer di default a 64 bytes).

Solo che hai ancora un problema ... quando si accavallano delle richieste ...

Il browser, specie la prima volta, ti chiede la pagina e il favicon ... tu invii la pagina, fai il disconnect, arriva un New client e ... resti li appeso.

Se si aspettano i timeout e il Client disconnect ... bene o male il tutto funziona ...

Guglielmo

P.S.: Sto usando Google Chrome su macOS e la scheda WiFi
Search is Your friend ... or I am Your enemy !

gpb01

Update ...
... LedControl funziona correttamente e non sbaglia un colpo !

Code: [Select]

Webbino 0.9.1git
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
0. ST_ON_CHK
1. ST_OFF_CHK
2. WEBBINO_VER
New client
Request for "/index.html"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: ""
Processing replacement tag: "ST_OFF_CHK"
Replacement is: "checked"
Client disconnected
New client
Request for "/index.html?state=on"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: "checked"
Processing replacement tag: "ST_OFF_CHK"
Replacement is: ""
Client disconnected
New client
Request for "/index.html?state=off"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: ""
Processing replacement tag: "ST_OFF_CHK"
Replacement is: "checked"
Client disconnected
New client
Request for "/index.html?state=on"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: "checked"
Processing replacement tag: "ST_OFF_CHK"
Replacement is: ""
Client disconnected
New client
Request for "/index.html?state=off"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: ""
Processing replacement tag: "ST_OFF_CHK"
Replacement is: "checked"
Client disconnected
New client
Request for "/index.html?state=on"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: "checked"
Processing replacement tag: "ST_OFF_CHK"
Replacement is: ""
Client disconnected
New client
Request for "/index.html?state=off"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.1git"
Processing replacement tag: "ST_ON_CHK"
Replacement is: ""
Processing replacement tag: "ST_OFF_CHK"
Replacement is: "checked"
Client disconnected

... quindi riguarda l'esempio SimpleServer e cosa può creare il problema ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

#146
Nov 25, 2016, 10:51 pm Last Edit: Nov 25, 2016, 10:54 pm by SukkoPera
Grazie per aver preso a cuore la cosa, gpb, ma tigggiuro che fatico a comprendere quel che sta succedendo :o.

Innanzitutto, con l'upgrade a 0.9.1git non doveva cambiare assolutamente niente, perché il backend per il Wifi era l'unico che aveva GIÀ il buffering, come si può notare dalla tua osservazione riguardo al fatto che passavo alla write() un array + lunghezza invece che un solo carattere.

Le modifiche della 0.9.1git consistono nell'avere spostato il buffer ad un livello più alto (nella classe Webclient), in modo che funzioni per tutti i backend, ma il codice è esattamente quello che prima era in AllWiFi.h, con praticamente zero modifiche, per cui di fatto con le schede Wifi non mi aspettavo cambiasse niente!

Inoltre, SimpleServer non fa assolutamente niente che non faccia anche LedControl, dato che è l'esempio più basilare, che non usa nessuna funzione "particolare", su cui si basano tutti gli altri, aggiungendo una feature o l'altra.

Ti giuro, mi sento perso :smiley-confuse:.

L'unica cosa che volevo suggerirti era di provare con diverse dimensioni del buffer: 8, 16, 32, 128... Magari quel chip wireless è un po' schizzinoso su come gli vanno passati i dati?
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

gpb01

#147
Nov 26, 2016, 07:25 am Last Edit: Nov 26, 2016, 07:25 am by gpb01
.... L'unica cosa che volevo suggerirti era di provare con diverse dimensioni del buffer: 8, 16, 32, 128... Magari quel chip wireless è un po' schizzinoso su come gli vanno passati i dati?
Oggi non ci sono ... ma appena rientro contavo di fare tali prove ...

Indubbiamnete ... NON ci si capisce un ... tubo ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

Vespucci

Ciao Sukkopera,
mi è arrivato l'esp8266 01, è sto provando la tua lib.V 0.9.0 con una UNO con il file di esempio SimpleServer, ma durante la compilazione mi richiede la lib. "PString.h", ecco il log:

Code: [Select]

In file included from /Users/Dimix/Documents/Arduino/libraries/Webbino/src/Webbino.h:21:0,
                 from /var/folders/wc/gc_4vxx97z12_rs9brm_qklm0000gn/T/arduino_modified_sketch_119112/SimpleServer.ino:20:
/Users/Dimix/Documents/Arduino/libraries/Webbino/src/WebbinoCore/WebServer.h:28:21: fatal error: PString.h: No such file or directory
 #include <PString.h>
                     ^
compilation terminated.
Uso la libreria Webbino alla versione 0.9.0 nella cartella: /Users/Dimix/Documents/Arduino/libraries/Webbino
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.


La lib. in questione non la hai inclusa , o per qualche motivo questo errore lo da solo a me perché dovevo scaricarla e fare l'Include della lib.

SukkoPera

Giusto, puoi scaricarla qui: http://arduiniana.org/libraries/pstring/
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

Go Up