Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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)
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.
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:
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.