Webbino - Server web "dinamico" per Arduino

Scusa ... ma written chi lo aggiorna ? ? ?

Non dovrebbe essere: written = internalClient.write ((const uint8_t *) buf, avail); ?

Guglielmo

Infatti è così, a dispetto della strana sintassi con quell'#ifdef in mezzo :D.

SukkoPera:
Infatti è così, a dispetto della strana sintassi con quell'#ifdef in mezzo :D.

:o :o :o ... come diavolo fa a funzionare ? ? ?

E' un #ifndef WEBBINO_NDEBUG ed io HO definito WEBBINO_NDEBUG !

Guglielmo

Per attivare il debug devi avere WEBBINO_NDEBUG NON definito :).

SukkoPera:
Per attivare il debug devi avere WEBBINO_NDEBUG NON definito :).

GIUSTO !!! :smiley: :smiley: :smiley:

Ora c'è da capire perché NON fa la write() ::slight_smile:

Guglielmo

Vedo che è cambiato anche la webbino version per il buffer velocizzato. Comunque almeno sulla MEGA, non vedo consumo in più di RAM :slight_smile:

Erm, questo è impossibile. Ci sono 64 byte dedicati al client, per cui almeno 64 byte in più di RAM li deve usare.

Comunque, visto che sulla Mega hai RAM da vendere, puoi anche aumentare il nuovo settaggio CLIENT_BUFSIZE nel config, portalo a 512 o magari addirittura a 1024.

SukkoPera:
Erm, questo è impossibile. Ci sono 64 byte dedicati al client, per cui almeno 64 byte in più di RAM li deve usare.

Comunque, visto che sulla Mega hai RAM da vendere, puoi anche aumentare il nuovo settaggio CLIENT_BUFSIZE nel config, portalo a 512 o magari addirittura a 1024.

Sì intendevo proprio questo, che sulla MEGA 64byte non li noti nemmeno.
Guarda esattamente è così la differenza, è di più ovvio, però sulla MEGA non cambia nemmeno un punto percentuale:

RAM PRIMA
2.707 byte

RAM DOPO
2.785 byte

FLASH PRIMA
63.386 byte

FLASH DOPO
63.552 byte

Riguardo al client che vantaggio porta di metterlo a 512?

@gpb01: Riesci a decommentare

//#define _DEBUG_

in libraries/WiFi/src/utility/server_drv.cpp, ed eventualmente anche in spi_drv.cpp, nella speranza che ci dia qualche informazione utile?

As_Needed:
Riguardo al client che vantaggio porta di metterlo a 512?

Meno pacchetti inviati, meno overhead, maggiore velocità. Quanta RAM libera hai?

SukkoPera:
Meno pacchetti inviati, meno overhead, maggiore velocità. Quanta RAM libera hai?

Guarda pure il commento sopra così vedi la reale differenza tra prima e dopo buffer velocizzato. :wink:

Comunque ecco adesso cosa ho:

Lo sketch usa 63.552 byte (25%) dello spazio disponibile per i programmi. Il massimo è 253.952 byte.
Le variabili globali usano 2.785 byte (33%) di memoria dinamica, lasciando altri 5.407 byte liberi per le variabili locali. Il massimo è 8.192 byte.

Prova a portarlo a 1024 allora!

La flash adesso è aumentata solo di 6 byte ma la RAM :slight_smile:

Le variabili globali usano 3.745 byte (45%) di memoria dinamica, lasciando altri 4.447 byte liberi per le variabili locali. Il massimo è 8.192 byte.

Quasi un 1kb in più! La avevo a 64 di default

Se metto 512 invece è così la RAM

3.233 byte (39%)

CHe ne pensi?

SukkoPera:
@gpb01: Riesci a decommentare ....

Fatto, NON esce nulla di diverso, mi sembra solo più lento ... non so cosa faccia quella #define ...

Guglielmo

Beh, il buffer è appunto una sezione di RAM riservata a contenere i dati che devono essere inviati al client, e quel #define è la sua dimensione.

Ma che problema c'è? Con tutta la RAM che hai a disposizione è un peccato non usarla!

Ok, allora provo con 1024 :wink:

gpb01:
Fatto, NON esce nulla di diverso, mi sembra solo più lento ... non so cosa faccia quella #define ...

Se non escono altri messaggi, direi niente di utile.
OK, ci rinuncio. Segno il supporto come EXPERIMENTAL e amen.

SukkoPera:
OK, ci rinuncio. Segno il supporto come EXPERIMENTAL e amen.

Non scherzavo ... ti serve un qualche cosa che usa il WiFi ...
... magari, senza comprare un inutile shield, prenditi una MKR1000 e fai le prove con quella ... tanto, se non vado errato, le chiamate WiFi sono più o meno quelle ::slight_smile:

Guglielmo

Ma le chiamate sono le stesse anche su ESP standalone e su Uno+ESP tramite WifiEsp, e lì funzionano alla perfezione.

Inoltre, a parte il join all'AP, l'API è la stessa dell'Ethernet Shield, e anche lì funziona.

Una MKR, comunque, prima o poi la prendo.

Grazie dell'aiuto, in ogni caso.

PS: Ho fatto merge del branch buffer sul master. @tototer, è il tuo momento! :slight_smile:

SukkoPera:
PS: Ho fatto merge del branch buffer sul master. @tototer, è il tuo momento! :slight_smile:

Hai fatto bene, intanto è veramente poca la differenza di consumo e molti i miglioramenti! :slight_smile: