Comparazione SerialTool ed altri software
Descrizione e tabella comparativa
Perchè questa pagina?
Se sei arrivato a questa pagina, probabilmente ti stai chiedendo quale software utilizzare per la porta seriale, anche nota come porta COM, per le tue applicazioni.
Probabilmente ti starai anche chiedendo perché c'è una tabella comparativa di software per l'utilizzo della porta seriale. La risposta è semplice: noi di SerialTool siamo abbastanza sicuri che riconoscerai come SerialTool sia sicuramente uno dei software più avanzati per la comunicazione con la porta seriale e non teme confronti con altri programmi più noti e diffusi.
La storia di SerialTool
Partiamo dal fatto che SerialTool nasce dall'esperienza decennale nell'utilizzo quotidiano ed intenso della porta seriale, risalente ai tempi in cui era ancora fisicamente disponibile come RS-232 nella maggior parte dei PC e dei laptop, per poi essere soppiantata in favore dei ben noti e comunemente utilizzati convertitori USB-Serial.
Notiamo spesso che nei software per la porta seriale viene spesso sottolineato che funzionano anche con RS-422 ed RS-485.
Chiariamo subito: RS232, RS422, RS423 e RS485 sono tutti essenzialmente protocolli di livello fisico. Si tratta di protocolli di comunicazione seriale e sono interfacce di dispositivi onnipresenti. Le interfacce seriali sono ampiamente utilizzate nell'elettronica e nei sistemi embedded, spesso per l'acquisizione remota di dati dei dispositivi o il controllo a distanza. Cambiano il modo in cui il segnale viene trasmesso, che si tratti di un PC, un microcontrollore o una comunicazione seriale mediante protocolli di comunicazione seriale o una trasmissione a livello TTL. Tutti devono essere convertiti in segnali RS232, RS422, RS423 o RS485 da un chip convertitore di comunicazione.
Perchè questa precisazione? Qualsiasi software che dialoghi con la porta seriale o COM port è in grado di ricevere e trasmettere in RS-232, RS-422 e RS-485 con le dovute limitazioni di distanze e velocità intriseche nel livello fisico della comunicazione.
Alla domanda se SerialTool è adeguato all'utilizzo mediante RS-485 la risposta è SI. Come tutti i software che comunicano con una porta seriale.
Non vi fate fuorviare dai software che rimarcano il fatto di essere compatibili con RS-422 e RS-485. Lo sono e lo sarebbero comunque!
Software seriale Multipiattaforma per windows, linux e mac os
Esattamente da quei lontani giorni, è stata sviluppata una versione privata di SerialTool, ideata solo per l'uso interno, che ha raccolto tutte le necessità quotidiane lavorando in un ambiente embedded. In un ambiente embedded si opera principalmente con sistemi operativi diversi dal più popolare Windows, come Linux e sempre più anche su Mac OS.
SerialTool è stato sviluppato con un framework multipiattaforma e le routine di connessione con la porta seriale sono state scritte utilizzando le funzioni native per i tre sistemi operativi in cui SerialTool è stato distribuito.
Non sono state utilizzate librerie pubbliche che, per quanto stabili, non consentono di essere flessibili e gestire a pieno tutti i parametri supportati dalla porta seriale. Di conseguenza, è stato necessario scrivere il codice sorgente in modo da poter arrivare dove le librerie offerte da certi IDE non lo consentivano. Questo sforzo è stato ben ripagato dalle peculiarità e dalle prestazioni che SerialTool offre.
A chi è dedicato SerialTool?
Ti chiederai probabilmente se questo software è stato sviluppato solo per un utilizzo professionale.
La risposta è NO. È ideale per ogni tipo di applicazione, dai semplici esempi di comunicazione con una scheda Arduino in ambito hobbistico, scolastico ed accademico fino a complessi sistemi in cui sono coinvolte più connessioni seriali, con la necessità di monitorarle tutte contemporaneamente e registrare il traffico seriale in modo affidabile, persistente e flessibile.
Per queste e molte altre ragioni, SerialTool è stato sviluppato internamente già dal lontano 2009 nei laboratori di Duolabs ed era denominato SerialTalk. Ora, diamo una dettagliata occhiata alle necessità che spesso si presentano nell'utilizzo della porta seriale, sia in un contesto professionale che hobbistico.
Cosa rende SerialTool unico?
Innanzitutto, SerialTool è l'unico software, fino ad oggi, in grado di gestire più multiple porte seriali contemporaneamente in un singolo lancio dell'applicazione. Per questa ragione, ogni porta seriale o porta COM deve avere un'assegnazione. In sostanza, sarà possibile operare contemporaneamente su più porte seriali all'interno di un'unica applicazione, assegnando numeri progressivi a ciascuna porta seriale e configurando le varie funzionalità senza dover avviare più software contemporaneamente.
Questa funzionalità è molto complessa da gestire internamente e ha richiesto molti mesi di sviluppo per essere implementata in SerialTool. Ora, vediamo la semplice spedizione di byte alla porta seriale.
Invio dati alla porta seriale (modalità ASCII ed esadecimale)
Le due modalità più diffuse sono l'invio di stringhe ASCII o array di byte in esadecimale. SerialTool ti permetterà in modo efficiente, intuitivo e veloce di inviare i tuoi byte in entrambe le modalità.
Puoi anche inviare automaticamente alla fine dei byte delle stringhe predefinite comunemente utilizzate, come CR = Carriage Return (\r, 0x0D in esadecimale, 13 in decimale) e LF = Line Feed (\n, 0x0A in esadecimale, 10 in decimale), o entrambe.
Autocompletamento con il CRC
In alcune situazioni, specialmente nel settore industriale, è necessario inviare anche il CRC (cyclic redundancy check) alla fine dei byte. Il calcolo del CRC avviene in base ai byte che si intendono inviare ed è una delle forme di checksum. Il CRC, ovvero i byte di controllo della correttezza dei byte ricevuti (dal ricevente), è spesso necessario in certi protocolli di comunicazione come il MODBUS. SerialTool offre la più ampia scelta di polinomi CRC che possono essere inviati alla fine del payload vero e proprio.
Utilizzo del Quick Buffer
La spedizione del payload vero e proprio avviene tramite il pannello di invio rapido denominato Quick Buffer, appositamente studiato per consentire un invio istantaneo dei tuoi byte senza doverti addentrare in complicate opzioni o finestre che generano confusione. L'invio di byte ASCII può essere fatto anche direttamente digitando i tasti della tastiera, simile a come avviene nei tipici terminali di comunicazione. Sottolineiamo che SerialTool, al momento, non può svolgere tutte le funzionalità di un tipico terminale (ad esempio VT100), poiché si propone come software per la gestione della porta seriale come aspetto predominante dell'applicazione. Non è da escludere che in sviluppi futuri la modalità terminale (attualmente disponibile) non venga ampliata e resa compatibile con il VT100 encoding.
D: Ma come e dove visualizzo i byte che ricevo e trasmetto?
Molti software dispongono una schermata terminale che consete di inviare e ricevere i bytes similtemente ai terminali classici come TeraTerm. SerialTool offre, come sopra indicato una modalità terminale ibrida.
D: Se si tratta di byte in Esadecimale?
La situazione si complica perchè i byte i Esadecimale non sempre sono rappresentabili in ASCII e conseguentemente possono generare caratteri non visualizzabili o, nel caso dei terminali veri e propri, creare dei comportamente apparentemente anomali. In un terminale classico alla ricezione del byte corrispondente al tasto DEL della tastiera il terminale provvede alla cancellazione l’ultimo carattere inviato. Hmm non proprio l’ideale se stiamo ricevendo byte in Esadecimale da una sorgente remota e dobbiamo intercettare quel byte come parte di un pacchetto.
SerialTool risolve il problema in due maniere. Anzitutto disponendo di una schermata terminale classica in grado di visualizzare i byte inviati e ricevuti in diverse modalità. ASCII puro, ASCII solo stampabile o esadecimale (con diverse tipologie di formato). Leggi qui..
Se non si intende utilizzare la classica modalità terminale SerialTool dispone della modalità terminale esadecimale.
Nella modalità terminale esadecimale ogni byte o pacchetto di byte verrà mostrato un una tabella di un editor che renderà possibile una consultazione rapida ed intuitiva e precisa dei payload ricevuti e inviati.
D: Ma cosa si intende precisamente per byte o pacchetti di bytes?
Un byte singolo può essere inviato o ricevuto dalla porta seriale e, trascorso un tempo predefinito, la trasmissione può considerarsi ultimata generando un pacchetto. Un pacchetto contentente un singolo byte in questo caso.
D: Ma come posso determinare l'intervallo tra un pacchetto e l'altro?
Tipicamente, strumenti come oscilloscopi o analizzatori di stati logici sono utilizzati per determinare l'intervallo tra pacchetti. Tuttavia, potrebbe non sempre essere agevole o pratico (pur avendo uno di questi strumenti) effettuare i collegamenti fisici e osservare i tempi tra i vari bit per determinare la frequenza con cui il dispositivo remoto invia byte o pacchetti. SerialTool offre la possibilità di determinare con precisione il tempo trascorso dall'arrivo di un singolo byte e di impostare correttamente, ad esempio, i millisecondi tra byte per delimitare un pacchetto.
Inoltre, SerialTool offre anche la possibilità di registrare e monitorare il tempo trascorso dall'ultimo pacchetto ricevuto o inviato.
Quante volte ti sarà capitato di dover copiare e incollare i buffer da inviare alla porta seriale e magari di commettere errori o dimenticare alcuni byte?
Un ostacolo comune per molti. In linea con i Quick Buffer, SerialTool offre la possibilità di avere dei buffer pre-caricati, sempre modificabili per un invio rapido e affidabile.
Dopo ore di lavoro, qualche errore può capitare e SerialTool ti aiuterà a evitarli. La funzione Multiple Buffers ti aiuterà a mantenere i buffer a portata di mano, siano essi in formato ASCII o esadecimale.
Salvataggio dei dati della seriale in un file
Pensate che sia abbastanza? Alcuni utilizzatori potrebbero accontentarsi, e la maggior parte dei software disponibili si limita a offrire alcune di queste funzioni. Tuttavia, chiunque operi o si appassioni al mondo embedded o si cimenti con applicazioni hobbistiche che coinvolgono una grande quantità di dati inviati e ricevuti si renderà conto della necessità di avere qualcosa in più.
Quando i dati in gioco sono numerosi, diventa necessario salvare i dati in ingresso e in uscita per analizzare il flusso o un protocollo per eventuali operazioni di reverse engineering. SerialTool consente di salvare il log dei dati su un file per un'analisi successiva ordinata e precisa, permettendoti di verificare ciò che è effettivamente passato attraverso una determinata porta seriale. Il log può essere eseguito in modalità testo oppure salvato direttamente in un file binario.
Un esempio? Se dovessi monitorare il download di un firmware in un dispositivo remoto, collegando l'adattatore USB-serial ai segnali di trasmissione e ricezione, potrai osservare passivamente tutto il traffico che i due dispositivi stanno scambiando. Nel caso del download del firmware, potrebbe essere estremamente utile poter salvare lo streaming dei dati direttamente in un file per un'analisi più dettagliata in seguito.
Filtri seriali e funzione alarm
Potresti avere la necessità di intercettare solo alcuni pacchetti di byte di interesse e analizzarne il loro contenuto.
All'epoca in cui è stato scritto questo documento, non ci sono software commerciali specifici che possano filtrare determinati pacchetti e generare allarmi di conseguenza. SerialTool consente di analizzare il traffico in ingresso su una o più porte seriali e di generare un allarme quando viene ricevuto un pacchetto predefinito o una semplice sequenza di byte, che sia in formato ASCII o esadecimale. SerialTool applica un filtro a questi pacchetti e li visualizza o blocca durante il flusso in ingresso. Inoltre, è possibile salvare solo determinati pacchetti o sequenze di byte in un file separato. Questa funzionalità è resa possibile grazie alla funzione Alarms disponibile su SerialTool.
Invio dei dati della porta seriale ad un server o in cloud
SerialTool offre una funzionalità che molti altri software commerciali non hanno o hanno solo in forma parziale: la possibilità di inviare il traffico seriale attraverso una rete. SerialTool consente di inviare il traffico bidirezionale (ricezione e trasmissione) a un server tramite protocollo TCP o UDP, utilizzando il Network Packet Sender. Supporto gli IPv4 ed IPv6.
D: Ma posso inviare i dati ad un cloud?
Assolutamente SI! SerialTool consente anche di inviare il traffico a un cloud utilizzando sempre il Network Packet Sender. Puoi effettuare chiamate di tipo GET o POST verso un server nel cloud per meglio analizzare, filtrare e archiviare il seriale.
In un contesto professionale, per esempio, SerialTool può essere installato su un mini-PC con Linux e collegato a un macchinario remoto, inviando tutto il traffico a un backend nel cloud. Immagina di poter monitorare un macchinario industriale da remoto, anche se non dispone di una connessione nativa al cloud, o di installare dei sensori e inviare direttamente i dati al cloud senza dover sviluppare i vari protocolli di comunicazione.
Potrebbe anche essere necessario agganciare il traffico della porta seriale a un software esterno per l'analisi in tempo reale. SerialTool mette a disposizione tutto il traffico della porta seriale per un'analisi effettuata con un software proprietario.
SerialTool ha sviluppato un piccolo script in php per testare questa funzionalità e disponibile nella pagina dedicata al Network Packet Sender.
Inviare un file alla porta seriale
SerialTool offre la possibilità di inviare direttamente file (anche di grandi dimensioni) alla porta seriale. Non importa che tipo di file sia, testo o binario, SerialTool spezzerà automaticamente il file in pacchetti di byte definibili e li invierà ad intervalli specifici.
Risposta automatica
D: se volessi testare il mio protocollo seriale sviluppato con Arduino e, all'invio di un pacchetto, ricevere una risposta predefinita senza dover creare un altro dispositivo che risponda automaticamente?
Anche in questo caso, SerialTool ti aiuta grazie alla modalità AutoAnswer. Puoi istruire SerialTool a rispondere con un payload predefinito quando riceve un determinato payload, senza dover scrivere script complessi o utilizzare linguaggi di programmazione difficili. SerialTool rende questa funzione veloce, pratica e intuitiva.
Desideriamo menzionare tutte le funzioni attualmente disponibili in SerialTool, ma questo potrebbe toglierti il piacere di sperimentarlo direttamente. Il team di sviluppo di SerialTool è a disposizione per ogni tua necessità, segnalazione di bug o suggerimento per miglioramenti. Alcune delle funzioni menzionate potrebbero essere disponibili solo nella versione PRO di SerialTool. Consulta il changelog di volta in volta per vedere cosa è disponibile nelle versioni FREE e PRO di SerialTool.
Differenze tra la versione PRO e FREE
La versione FREE mette a disposizione le funzionalità base di SerialTool ed offre la possibilità di valutare anche alcune delle funzionalità della versione PRO.
La versione PRO rimuove tutti i limiti funzionali della versione FREE e offrendo quei vantaggi che fanno la differenza nella situazioni di utilizzo più critiche.
Gli utenti della versione PRO, inoltre, potranno usufruire di un supporto prioritario per la risoluzione di possibili bug e verranno considerate prioritarie le richieste di implementazione di nuove funzionalità.
Sviluppi futuri, donazioni e sponsorizzazioni
Lo sviluppo di SerialTool e le caratterische offerte nella versione FREE implicano un impegno di tempo e risorse umane. Ogni donazione è estremamente importante ed apprezzata per garantire lo sviluppo della versione FREE che potrebbe essere fortemente limitata rispetto alla versione PRO.
Per questa ragione e per gli sviluppi ulteriori l'acquisto della versione PRO aiuterà e motiverà uno sviluppo più rapido di nuove funzionalità. Anche una semplice donazione può fare la differenza!