UP | HOME

ESP 32 SHELL - Help

Table of Contents

Premessa

L' ambiente di shell per board di tipo ESP32 / arduino / ESP8266 prevede du modi di funzionamento :

  • modo interattivo : e' la modalita' con cui l'utente collegandosi tramite la seriale puo' digitare direttamente i comandi;
  • modo trasparente : i comandi possono essere all'interno del codice con possibilita' di cattuarne il risultato.

Alcuni comandi prevedono possibilita' di redirezione di input/ouput verso file mediante l'utilizzo dei seguenti token :

  • << [file] : accetta l'input da file;
  • >> [file] : accoda l'output ad un file, se il file non esiste lo crea;
  • > [file] : scrive l'output su file, se il file esiste lo sovrascrive.

Mediante l'utilizzo dei comandi di redirezione e' possibile costruire catene di comandi simulando una pipe mediante l'utilizzo di file, ad esempio la catena di comandi [comando 0]|[comando 1]|…|[comando N] viene interpretata come segue :

  • [comando 0] >> [file0];
  • [comando 1] << [file0] >> [file1];
  • [comando N] << [file N-1];

in cui devono essere rispette le seguenti regole :

  • il primo dei comandi deve supportare la redirezione in output;
  • l'ultimo dei comandi deve supportare la redirezione in input;
  • i comandi centrali devono supportare entrabe le redirezioni.

Tutti i flag dei comandi sono preceduti dal token --. Inoltre all'interno della shell vi e' la possibilita' di creare variabili di memoria per avere la possibilita' di impostazioni a runtime del sw e per ottenere la configurazione di ambiente. Tra le variabili riservate vi sono:

  • path = "/" : path attuale;
  • debug = "0" : 1 attiva il modo debug della shell;
  • shell = path + "shell.ini" : file di configurazione della shell;
  • echochar = "1" : 1 attiva l'echo dei caratteri; 0 per disattivare l'echo, utile quando si voglino digitare passwd;
  • addl=[valore] : parte alta dell' indirizzo della board LoRa
  • addh=[valore] : parte passa dell'indirizzo della board LoRa
  • ch=[valore] : canale di trasmissione della board LoRa
  • mode=[valore] : [fixed|simple|struc] modo di trasmissione della board LoRa
  • passwd=[valore] : pasword per la rete wifi
  • ssid=[valore] : nome della rete wireless
  • temp=[valore] : misura della temperatura effettuata dal sensore DHT22
  • umid=[valore] : misura del grado di umidita' effettuata dal sensore DHT22

che e' p[ossibile modificare utilizzando nil comando set.

Elenco Comandi

Questa sezione elenca i comandi disposnibili e la loro sintassi.

cls

Cancella lo schermo

help

Visualizza questo file in modo testuale.

exit

Esce dall'ambiente di shell distruggendo tutte le variabili e tutti gli oggetti per la gestione della wifi, della scheda BT, della scheda LoRa ma lasciando inalterate le configurazioni impostate.

cat

Visulizza il contenuto del file

Sintassi

cat [nome file]

format

Formatta il file system di tipo SPIFFS

sintassi

format

mv

Muove copia il [fileorigine] nel file [filedest] sovrascrivendo quest'ultimo se esiste e cancellando il primo.

sintassi

mv [fileorigine] [filedest]

cp

Copia un file di testo in un altro file di testo. Se il file di destinazione eiste chiede di cancellarlo prima della copia.

sintassi

  • cp [fileorigine] [filedest]

rm

Cancella un file dopo averne chiesto la conferma.

sintassi

rm filedest

edlin

Semplice editor di linea per file testuali.

sintassi

  • edlin -f [file] : se il file non esiste viene creato

echo

Visualizza le variabili di memoria. Supporta la redirezione in output.

sintassi

  1. echo - stampa a video tutte le variabili;
  2. echo [>>|>] stampa su file tutte le variabili;
  3. echo $var : stampa a video una particolare variabile;
  4. echo $var [>>|>] : stampa su file una particolare variabile.

set

Imposta il valore di una variabile in memoria.

sintassi

  1. set [var]=[valore] : imposta la variabile var a valore
  2. set [var]= : cancella la variabile var
  3. set << [file] : carica in memoria le variabili memorizzate nel [file] in cui ogni riga avente la struttura [var]=[valore];

ls

Elenca i file in una directory. Le di regole di filtraggio sono ottenute in combinazione al comando grep.

sintassi

  1. ls : stampa a video l'elenco dei file;
  2. ls [>>|>] : stampa su file output l'elenco dei file

grep

Parsing di espressioni regolari secondo la semantica del C++. Se presente solo la prima parte delle opzioni si ha la stampa a video, se presente la redirezione si ha la stampa su file.

sintassi

grep (–reg [exp] << [file]) ([>>|>] [file]) –reg : espressione regolare digitata da riga di comando da applicare ; << [file] : file di input a cui applicare la regexp [>> |>] [file] : stampa il contenuto dell'elaborazione nel [file]

esempio

grep –reg ( )*[\w]+( )*(=)( )*[\w]+ << lora.ini > out.txt

Applica la regexp ( )*[\w]+( )*(=)( )*[\w]+ al file lora.ini e l'ouput viene memorizzato nel file out.txt che se esiste viene sovrascitto.

lora

Gestisce la configurazione / trasmissione di una scheda LoRa. Le varie opzioni dei flag accettano la sintassi del tipo [–flag] [opzione]=[valore]

flag

  • –rconf [board] - legge la configurazione di una board LoRa
  • –set - scrive la configurazione sulla board LoRa [var=valore]
    • addl : parte alta dell' indirizzo
    • addh : parte passa dell'indirizzo
    • ch : canale di trasmissione
    • uartbr : [UARTBPS1200|UARTBPS2400|UARTBPS4800|UARTBPS9600|UARTBPS19200|UARTBPS38400|UARTBPS57600|UARTBPS115200] : velocita della porta UART
    • uartp : [MODE008N1|MODE018O1|MODE108E1|MODE118N1] : imposta il modo di parita della porta UART
    • airdr : [AIRDATARATE00024|AIRDATARATE00124|AIRDATARATE01024|AIRDATARATE01148|AIRDATARATE10096|AIRDATARATE101192|AIRDATARATE110384|AIRDATARATE111625] : velocita di tx in bps
    • packetftx : [SPS20000|SPS12801|SPS06410|SPS03211] : dimesione del pacchetto
    • rnoise : [RSSIAMBIENTNOISEENABLED|RSSIAMBIENTNOISEDISABLED] : Questo comando può abilitare / disabilitare il tipo di gestione del rimuovere
    • tpow : [POWER22|POWER17|POWER13|POWER10|POWER30|POWER27|POWER24|POWER21] : potenza di trasmisione
    • re : [RSSIENABLED|RSSIDISABLED] : Se abilitato, il modulo riceve dati wireless e seguirĂ  un byte di forza RSSI dopo l'output tramite la porta seriale TXD
      • ftx : [FTFIXEDTRANSMISSION|FTTRANSPARENTTRANSMISSION] : imposta la scheda per l utilizzo con indirizzo oppure in modo trasparente
      • lbt : [LBTENABLED|LBTDISABLED] : per evitare distorsioni monitora i dati inviati
      • wor : [WAKEUP500|WAKEUP1000|WAKEUP1500|WAKEUP2000|WAKEUP2500|WAKEUP3000|WAKEUP3500|WAKEUP4000] :
      • save : [WRITECFGPWRDWNSAVE|WRITECFGPWRDWNLOSE] : salva o meno la configurazione sulla board LoRa
  • –send : invio di un messaggio. Se non vengono indicate le opzione del flag queste sono ricavate dalle omonime variabili in memoria.
    • addl : parte alta dell' indirizzo
    • addh : parte passa dell'indirizzo
    • ch : canale di trasmissione
    • mode : [fixed|simple|struc]
  • << [file] - invia il contentuo del [file];
  • [>>|>] [file] - stampa i dati ricevuti su [file].

bt

Gestisce la configurazione della scheda bluetooth nonche' e invio/ricezione dati

flag

  • –name : imposta il nome della scheda BT;
  • –send : invia i dati immessi da tastiera
  • –read : legge i dati nella cache del BT e li stampa a video
  • << : invia i dati memorizzati su file
  • [>>|>] : sovrascrive/accoda i dati ricevuti dal BT su file

iw

Gestione della configurazione wireless.

sintassi

  • iw –[scan|connect|status|disconnect]
    • –scan : elenca tutti le reti non hidden;
    • –connect passwd=[valore] ssid=[valore] : connette ad una specifica rete;
    • –status : visuliazza le impostazioni di rete;
    • disconnect : disconnette la connessione attiva

fbase

Gestiste l'invio/lettura dei dati in ambiente Firebase. Le opzioni di connessione vengono passate al momento della creazione dell'oggetto e non possono essere passate da riga di comando.

sintassi

  • fb –[ins|read]
    • –ins [path] ([int|float|string])=[valore] : inserisce un valore nella path di un db realtime di firebase
    • –read [path] : stampa a video il valore della path;
    • [>>|>] [file] [path] : stampa su file il valore della path

sensor

Gestione di un sensore del tipo DHT22 per la rilevazione di temperatura e umidita'. L'inizializzazione del sensore ( scelta del PIN di collegamento ) avviene nel sw non da riga di comando.

sintassi

  • sensor –[readT|readU] [>>|>] [file]
    • –readT : stampa a video la temperatura misurata;
    • –readU : stampa a video la percentuale di umidita' rilevata;
    • [>>|>] [file] : stampa su file temperatura e umidita' rilevate nella forma [temp|umid]=[valore] di modo da utilizzarla con il comando set

fb

Gestisce l'inerimento/letterua di valori in un database realtime di FireBase.

sintassi

  • fb –[ins|read] [path] [>>|>] [file]
    • fb –ins [path] ([int|float|string])[valore|nome var] : nel caso si usi [nome var] il valore da trasmettere e' quello dell'omonima variabile
    • fb –read [path] : stampa a video il valore del campo [path]
    • fb [>>|>] [file] : stampa su file il valore del campo [path]

macro

Esegue in sequenza i comandi memorizzato in un file di testo con estensione mcr. Le riche di commento iniziano con il token # tutto il resto viene interpretato come comando.

sintassi

  • macro [path][file] : deve essere indicata la path del file.

Author: ARI people

Created: 2023-10-31 mar 21:10

Validate