Terminali seriali

Da GolemWiki.
Versione del 19 mar 2020 alle 22:22 di Giulio (discussione | contributi) (categorizzata)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Golem-template-note-attention.png Appunti con poco filo logico


In questa pagina sono raccolti alcuni suggerimenti da utilizzare per interfacciarsi con device embedded via seriale.

Standard di terminali

I moderni terminali UNIX fanno uso dello standard ANSI X3.64 o di una sua variante:

  • ANSI X3.64: standard che implementa sequenze di escape per inviare comandi terminale remoto. Esempio: per muovere il cursore in alto a sinistra si invia ESC [ 1 ; 1 H , dove ESC [ è la sequenza di escape, 1;1 rappresentano la posizione del cursore (riga;colonna) ed H è il comando "muovi cursore". Una descrizione più estensiva delle sequenze di escape si può trovare alla relativa pagina di wikipedia.
  • DEC VT100: standard il cui nome deriva dal popolare terminale prodotto da DEC. È equivalente al protocollo VT102 (anch'esso prende il nome da un successivo modello di terminale, più economico ma retrocompatibile).
  • xterm: commistione degli standard ANSI e VT-* largamente usato sugli emulatori di terminale Linux. Di uso comune le varianti -color e -color256 che, come suggerisce il nome, supportano le sequenze di escape per cambiare colore al testo.
  • linux: altra variante ANSI compatibile, in voga sui sistemi Linux.

Identificare il proprio standard

Digitare su shell echo $TERM per conoscere il protocollo attualmente in uso. Quando si usa ssh, la variabile TERM viene ereditata in modo da adottare uno standard comune.

Applicativi per comunicazione seriale

  • screen: multiplexer di terminali; consente anche la connessione via seriale usando la sintassi screen /dev/ttyxx baudrate. Supporta gli standard VT100/ANSI. Per l'uso si può far riferimento al prontuario.
  • minicom: programma per comunicazioni seriali. Supporta gli standard VT100/ANSI e gli escape per i colori (con l'opzione --color=on). Dispone inoltre di utilità per lo scambio dati quali ZMODEM, kermit, ... e per la comunicazione con modem AT.
  • miniterm.py: essenziale script python, non implementa gli standard VT100/ANSI ma supporta alcuni escape. Utile per dialogare con sistemi minimali o con microcontrollori.

Troubleshooting

I caratteri da tastiera non vengono inviati e/o sono inviati insieme chiudendo il terminale
sono attivi il controllo di flusso hardware (RTS/CTS) oppure software (XON/XOFF). Disattivare il controllo di flusso e riprovare.
I tasti End, Home, ctrl+arrow non funzionano o restituiscono caratteri non stampabili
editare il file /etc/inputrc ed aggiungere (o decommentare) le righe
# Home, End
"\e[1~": beginning-of-line                                            
"\e[4~": end-of-line                                                  

# Ctrl+arrow shortcuts
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word