Terminale VT-100 di SerialTool

Ultimo aggiornamento il di Oliver Reed

Il terminale VT-100 di SerialTool è progettato per la comunicazione interattiva con dispositivi che utilizzano interfacce testuali avanzate basate su standard VT-100 / ANSI. Questa modalità è ampiamente utilizzata in ambito professionale, industriale ed embedded, dove il dispositivo remoto espone menu, shell o interfacce di configurazione testuali tramite porta seriale.

Nota: per informazioni dettagliate potete visitare anche questo link SerialTool Terminali

Il terminale VT-100 di SerialTool è progettato per la comunicazione interattiva con dispositivi che utilizzano interfacce testuali avanzate basate su standard VT-100 / ANSI. Questa modalità è ampiamente utilizzata in ambito professionale, industriale ed embedded, dove il dispositivo remoto espone menu, shell o interfacce di configurazione testuali tramite porta seriale.

A differenza di un terminale seriale “classico”, che si limita a visualizzare i byte ricevuti, il terminale VT-100 di SerialTool interpreta il flusso di dati e le sequenze di escape ANSI, consentendo una resa grafica corretta e fedele all’interfaccia prevista dal dispositivo.

Comunicazione interattiva e sequenze ANSI

Nel terminale VT-100, i dati trasmessi non sono semplici caratteri ASCII, ma includono sequenze di controllo (ESC) utilizzate per eseguire operazioni “visive” all’interno del terminale. SerialTool interpreta queste sequenze in tempo reale, permettendo di visualizzare output colorati, prompt interattivi, menu testuali e schermate dinamiche.

Le sequenze ANSI/ESC vengono tipicamente usate per:

  • spostare il cursore sullo schermo;
  • cancellare righe o l’intero contenuto del terminale;
  • cambiare colore e attributi del testo;
  • gestire menu interattivi e schermate aggiornate dinamicamente;
  • mostrare barre di avanzamento o indicatori testuali.

Quando utilizzare il terminale VT-100

La modalità VT-100 è consigliata quando ci si connette a dispositivi che richiedono un’interazione uomo-macchina evoluta, ad esempio per la configurazione o la gestione di apparati e sistemi embedded tramite console seriale.

Esempi tipici:

  • router e switch di rete;
  • firewall hardware e access point aziendali;
  • server enterprise (BIOS/UEFI, moduli di gestione remota);
  • sistemi embedded Linux (console, U-Boot, shell);
  • PLC e dispositivi industriali con menu testuali;
  • microcontrollori durante il boot o in modalità console.

Un terminale VT-100 integrato in uno strumento completo

Il terminale VT-100 di SerialTool è completamente integrato nel software e può essere utilizzato insieme alle altre funzioni avanzate. È possibile assegnare una finestra VT-100 dedicata a ciascuna porta seriale, mantenendo separati i log di più dispositivi e rendendo più semplice l’analisi del traffico.

In questo modo SerialTool unisce in un’unica soluzione l’emulazione VT-100 e il debug seriale a basso livello, evitando l’uso di applicazioni separate.

Grazie al supporto completo allo standard VT-100 e alle sequenze ANSI, SerialTool offre un ambiente di interazione seriale affidabile e professionale, ideale per sviluppatori embedded, tecnici industriali e professionisti IT.

Cosa sapere del terminale seriale VT-100 di SerialTool

Il terminale seriale ha alcune particolarità importanti da chiarire rispetto al funzionamento generale di SerialTool. Innanzitutto, SerialTool dispone di due grandi categorie di terminali: il terminale seriale e il terminale esadecimale.

Il terminale seriale, a sua volta, può funzionare in due modalità distinte: modalità classica e modalità di emulazione VT-100, oggetto di questo documento.

Il terminale classico visualizza in un’unica schermata principale tutto il traffico in ingresso e in uscita da tutte le porte seriali aperte e assegnate.

È utile fare una premessa dettagliata sul funzionamento del terminale seriale classico per comprendere meglio le differenze rispetto al terminale seriale in emulazione VT-100.

Per ogni porta seriale, nel terminale classico, il traffico in ingresso e in uscita viene rappresentato con colorazioni differenti dei font, per agevolarne la lettura.

I byte trasmessi e ricevuti possono essere visualizzati in varie modalità: ASCII, esadecimale, binario oppure come combinazione di esse. Questo perché lo sviluppatore può avere esigenze diverse di analisi, specialmente quando si lavora con protocolli proprietari o standard come ad esempio Modbus.

Un aspetto fondamentale è stabilire quando inserire una nuova riga nel terminale, per evitare che tutti i byte vengano visualizzati in modo continuo rendendo difficile l’interpretazione.

Nel terminale classico è quindi necessario determinare se i dati arrivano in modalità streaming, e se al sopraggiungere di un carattere terminatore (ad esempio 0x0A, 0x0D o una loro combinazione) debba essere aggiunta una nuova riga.

In altri casi, è necessario determinare la fine di un pacchetto anche in assenza di un carattere terminatore. Questo avviene misurando il tempo trascorso dall’ultimo byte ricevuto.

Per questo motivo, ogni porta seriale dispone del parametro Last Byte Timeout, espresso in millisecondi, trascorsi i quali SerialTool visualizza il pacchetto ricevuto.

Questo concetto è fondamentale e va sempre tenuto presente.

Terminale classico – Packet Mode

In modalità Packet Mode, una nuova linea viene aggiunta al terminale:

  • sempre quando SerialTool invia una sequenza di byte, al termine dell’invio;
  • in ricezione, allo scadere del tempo impostato nel Last Byte Timeout;
  • quando vengono inviati o ricevuti byte da porte seriali diverse.

Terminale classico – Streaming Mode

In modalità Streaming, una nuova linea viene aggiunta:

  • alla ricezione di un carattere terminatore (anche personalizzato);
  • quando vengono inviati o ricevuti byte da porte seriali diverse.

Differenze con il terminale VT-100

Il terminale seriale con emulazione VT-100 introduce differenze significative. In primo luogo, è possibile avere una o più schermate dedicate a ciascuna porta seriale aperta.

Ogni porta seriale viene quindi associata a una finestra (tab) specifica, mantenendo separato il traffico di più dispositivi. Questa è la prima differenza a livello di interfaccia grafica.

La seconda differenza è funzionale: mentre nel terminale classico i byte vengono visualizzati secondo le preferenze dell’utente (ASCII, HEX, ecc.), nel terminale VT-100 il flusso di byte viene interpretato dall’emulatore, assumendo un significato visivo.

Ad esempio, il dispositivo remoto può inviare messaggi colorati, e il colore del testo non è scelto dall’utente, ma determinato dal dispositivo e interpretato dal terminale VT-100.

Il terminale VT-100 interpreta inoltre sequenze per la cancellazione dello schermo, il riposizionamento del cursore e altre operazioni grafiche.

Un’ulteriore caratteristica è la gestione di righe e colonne, che consente al terminale di emulare una vera applicazione testuale, conoscendo la “risoluzione” dello schermo in termini di caratteri.

L’utente può inoltre inviare al dispositivo remoto sequenze speciali di caratteri, incluse combinazioni di tasti come CTRL + tasto, che generano comportamenti specifici.

Questo tipo di interazione sarebbe estremamente complesso utilizzando un terminale classico a basso livello.

Queste spiegazioni preliminari sono fondamentali per comprendere quale tipologia di terminale utilizzare in base alle proprie esigenze. La buona notizia è che SerialTool supporta entrambe le modalità.

Come utilizzare il terminale seriale VT-100 di SerialTool

Come accennato precedentemente, a ogni finestra del terminale deve essere assegnata una porta seriale fisica, che rappresenta il principio base di funzionamento di SerialTool.

Per prima cosa selezionare la modalità terminale dal menù principale

serial terminal option select

Selezionare La modalità terminale

set serial port terminal mode

Selezionare La modalità terminale seriale VT-100

Iniziamo mostrando la schermata dalla quale è possibile assegnare una porta seriale al terminale seriale VT-100.

Se sono presenti porte seriali già configurate dal menu di configurazione delle porte seriali, queste possono essere assegnate a uno specifico tab del terminale VT-100 di SerialTool.

Cliccando sul pulsante centrale, vengono visualizzate le porte seriali disponibili che possono essere assegnate alla visualizzazione nel terminale VT-100.

serial port terminal assignment

Schermata principale del terminale seriale con porte seriali assegnate

Una volta selezionata la porta seriale, viene aperto un tab dedicato contenente le informazioni del terminale e della porta seriale assegnata, inclusi i riferimenti alla porta fisica o all’adattatore utilizzato (ad esempio COMx su Windows o il percorso del device su Linux e macOS).

serial port terminal port

Schermata con la porta seriale 1 assegnata ed apertura di un Tab dedicato

A questo punto, una volta aperto il terminale associato alla porta seriale, è possibile ricevere e inviare byte al dispositivo remoto (ricordarsi di aprire la porta seriale dal menu dedicato alla configurazione e di impostare correttamente i parametri di comunicazione).

Nell’esempio seguente è visibile il boot di un modulo ESP32-S3. Il testo visualizzato in colore verde è generato dal modulo ESP32, che ha inviato una sequenza specifica di byte successivamente interpretata dall’emulatore VT-100 di SerialTool.

serial port bootloader esp32

Schermata Bootloader del modulo ESP32

Nel terminale VT-100 è possibile selezionare con il mouse un’area di caratteri di interesse e successivamente esportarla utilizzando il tasto destro del mouse.

serial port export data

Schermata di esportazione (copia) dei dati del terminale

Premendo il tasto destro del mouse, oltre alla possibilità di copiare il contenuto del terminale, è possibile modificare alcune configurazioni del terminale, nei limiti previsti dall’emulazione VT-100.

Selezionando “VT100 Terminal Settings”, è possibile modificare le impostazioni del terminale e salvarle come configurazione predefinita per quella porta seriale.

È importante sottolineare che le configurazioni rimangono invariate anche se cambia la porta seriale fisica. Questo consente, in caso di riavvio di SerialTool, di mantenere le impostazioni associate alla seriale logica e non al dispositivo fisico.

Ad esempio, se la seriale 1 è inizialmente assegnata alla porta COM12 e successivamente viene assegnata a COM8, le impostazioni rimarranno invariate perché seguono la seriale assegnata e non la porta fisica.

VT100 Terminal Settings – Spiegazione completa

Partendo dalla schermata dei settings (tasto destro e “VT100 Terminal Settings”)

serial port terminal settings

Schermata dei settaggi del terminale della porta seriale in emulazione VT-100

Use VT-100 Terminal Key Sequence

Attiva l’emulazione VT-100 vera e propria. Le sequenze dei tasti (frecce, F1–F4, ESC, ecc.) vengono inviate esattamente come farebbe un vero terminale VT-100.

Fondamentale per:

  • menu testuali
  • shell embedded
  • bootloader

Consigliato: ON per uso seriale

VT-100 Terminal Keyboard Input Settings

CTRL-based ASCII controls

Mappa le combinazioni CTRL + tasto nei codici ASCII classici:

CombinazioneCodiceSignificato
CTRL + @0x00NUL
CTRL + Z0x1ASUB
CTRL + [0x1BESC
CTRL + \0x1CFS
CTRL + ]0x1DGS
CTRL + ^0x1ERS
CTRL + _0x1FUS
CTRL + ?0x7FDEL

Essenziale per firmware, monitor seriali e debug a basso livello. Consigliato: ON

Non-CTRL special keys

Definisce cosa viene inviato quando si premono tasti speciali:

TastoSequenza
ESC0x1B
ESC [ D
ESC [ C
ESC [ A
ESC [ B
F1–F4ESC OP / OQ / OR / OS
Backspace0x7F

Compatibile con U-Boot, console seriale Linux e menu VT-100. Consigliato: ON

Caret Echo (^C, ^[, ^?)

Visualizza i caratteri di controllo in forma leggibile (es. CTRL+C → ^C). Utile per debug e didattica.

Consigliato: OFF per uso normale, ON solo per debug

Colors

  • Background Color – Colore di sfondo del terminale
  • Opacity – Trasparenza della finestra

Fonts

  • Change Font / Set Default / Set Monospace / Set Terminal Font
  • Increase / Decrease Font Size – Zoom del testo
  • Font Spacing – Spaziatura tra caratteri (consigliato 100%)

Misc

Enter Key – Definisce cosa viene inviato premendo Enter:

  • CR → \r
  • LF → \n
  • CRLF → \r\n

Tipicamente: MCU / modem / firmware → CRLF
Linux embedded → spesso LF
Consigliato: CRLF

Suppress Local Echo: se attivo, non mostra ciò che digiti (usare solo se il dispositivo remoto fa echo).

Show Timestamp: mostra il timestamp accanto ai dati ricevuti.

Show Navigation Bar: abilita la navigazione nella cronologia dei log (utile solo con Terminal Emulator attivo).

Terminal Emulator: consente di mantenere lo storico dei byte ricevuti e inviati, superando il limite visivo di righe e colonne del terminale classico.

Terminal Columns × Lines: dimensioni del terminale. Modalità Auto consigliata.

Support UTF-8 (Receive / Transmit): decodifica UTF-8 in ricezione e invio UTF-8 in trasmissione. Consigliato: OFF salvo necessità specifiche.

Save Settings – salva la configurazione di questa porta seriale
Reset to Default – reset solo di questo terminale
Reset All Terminals – reset globale
Exit – chiude la finestra