Sei sulla pagina 1di 2

OPERAZIONI LETTURA, SCRITTURA E DELETE DI FILE SULLA

FLASH DELL’ESP32 (HTTP)


Funziona cosi:
si connette il pc ad una rete (es quella del cellulare) e si connette anche l’ESP32 alla stessa rete(quindi
l’ESP32 è in station mode…ma potrebbero essere configurate anche altre modalità tipo APmode oppure
ethernet).

Su putty ti viene restituito l’indirizzo IP da copiare nel browser chrome. Questa pagine internet ti consente
di:

-fare l’upload di un file(prendere il file dal pc e copiarlo cioè scriverlo sulla flash dell’ESP32)

-leggere il file caricato

-eliminare il file caricato sulla flash dell’ESP32.

Quindi cosa fa il codice??

1)effettua la connessione wifi in station mode e ci viene restituito un IP(quello che andremo a copire le
browser)

2)effettua la partizione della memoria flash in modo tale che tra le partizioni otteniamo quella STORAGE
che ha come sottotipo SPIFFS. Quest’area è divisa in blocchi e ogni blocco è diviso in pagine. Su queste
pagine vengono scritti i file. Tutte le pagine hanno un’intestazione.

Come si fa a trovare un file in un blocco e a sapere su quali pagine del blocco è stato scritto?

La pagina 0 di ogni blocco contiene una matrice che ci dice ogni pagina a quale Id-file è associata. (Quindi
per effettuare la ricerca non è necessario scorrere le intestazioni di tutte le pagine!!!!!)

3)viene eseguita la funzione start_file_server a cui viene passato il path del file e che ci consente di
configurare la comunicazione http tra client(pc) e server(ESP32) al fine di eseguire le operazioni di
upload,lettura.

Come funzionano queste operazioni?

 In primo luogo copiamo l’IP nel browser e quindi il Client manda la richiesta al Server di aprire la pagina
collegata a quell’IP.
 A seconda del tipo di operazione che vogliamo eseguire sulla pagina internet accade questi:

il client manda al server una richiesta cosi formulata

192.168.100.0/* + path del file nel caso in cui vogliamo effettuare il download

192.168.100.0/upload/* +path del file nel caso in cui vogliamo eseguire l’upload di un file

192.168.100.0/delete/* +path del file nel caso in cui vogliamo eliminare un file

 Quando il server riceve una richiesta di questo tipo dal client, grazie alla funzione
httpd_register_uri_handler sa che tipo di handler (gestore dell’operazione) deve eseguire.

È interessante “aprire” ogni handler e vedere come vengono gestiti gli errori nel programma.

Nel programma la cosa negativa è che gli errori vengono gestiti diversi con if e return che sono posti
all’interno di un'unica grande funzione che a sua volta ha un return. Tipicamente si evita di mettere tanti
return in una stessa funzione perché risulta difficile effettuare l’operazione di debug. Sarebbe stato più
efficiente inserire tanti if-elseif.