SerialTool con Python®.


Indice dei Contenuti


Cos'è Python?

Python® è un linguaggio di programmazione ad alto livello, orientato agli oggetti e interpretato, con semantica dinamica. Le sue strutture dati incorporate di alto livello, combinate con la digitazione dinamica e il binding dinamico, lo rendono molto attraente per lo Sviluppo Rapido di Applicazioni, così come per l'uso come linguaggio di scripting o collante per collegare componenti esistenti.
La sintassi semplice e facile da imparare di Python enfatizza la leggibilità e quindi riduce i costi di manutenzione del programma. Python supporta moduli e pacchetti, che incoraggiano la modularità del programma e il riutilizzo del codice. L'interprete Python e l'ampia libreria standard sono disponibili gratuitamente in forma sorgente o binaria per tutte le principali piattaforme e possono essere liberamente distribuiti.
Per informazioni più dettagliate su Python®, si prega di fare riferimento al loro sito web: www.python.org

Nota legale: "Python" è un marchio registrato della PSF. SerialTool non è affiliato né sponsorizzato dalla PSF. SerialTool utilizza Python come linguaggio di programmazione compatibile per eseguire script e richiede una versione ufficiale di Python installata sul tuo PC.

SerialTool e Python

Editor di Codice Python per SerialTool.


Hai mai voluto utilizzare la porta seriale e avere a disposizione un'interfaccia grafica fantastica che potesse visualizzare i dati da e verso la porta seriale?
Se hai questa necessità e vuoi creare il tuo programma per controllare facilmente la porta seriale senza dover installare librerie in un linguaggio semplice accessibile a tutti, SerialTool con Python è lo strumento che cercavi.
Alcuni programmi che utilizzano la porta seriale offrono alcune soluzioni di scripting, il che significa che puoi scrivere il tuo codice e farlo eseguire, ma molto spesso non conosci il linguaggio o devi trascorrere ore per capire come integrare alcune righe del tuo codice! Con SerialTool e Python incorporato, puoi scrivere il tuo script in Python e sfruttare tutte le funzionalità di SerialTool senza limiti.
SerialTool integra funzioni di base sotto forma di libreria (già importata ed integrata), e con poche righe, puoi cercare la porta seriale desiderata, aprirla, leggere e scrivere. SerialTool gestirà tutta la gestione grafica dei pacchetti in entrata e in uscita e ti permette di utilizzare il tuo codice Python per eseguire le funzioni che desideri senza limiti.
Per facilitare la scrittura e il testing in Python, SerialTool fornisce un editor di testo dove puoi caricare e modificare i tuoi script. L'editor integrato riconosce la sintassi di Python e permette una facile stesura del codice.

Maggiori dettagli sulla porta seriale e Python

Approfondendo le funzionalità offerte da SerialTool e la sua libreria Python integrata, partiamo con un esempio pratico.
Hai intenzione di consegnare a un cliente o un collega un software che permetta il caricamento del firmware su un dispositivo da noi creato e aggiornabile tramite la porta seriale. Uno scenario abbastanza comune in cui è necessario creare un software da zero, possibilmente multi-piattaforma, e integrare una serie di aspetti a partire dall'interfaccia grafica e l'interazione con l'utente, la selezione dei file e i messaggi di errore o conferma.
In questo caso, a differenza di altri linguaggi, Python semplifica il lavoro ma allo stesso tempo richiede l'installazione e il seguimento degli aggiornamenti di librerie esterne.
SerialTool risolve il problema alla base offrendo alcune funzioni semplici che permettono una selezione rapida e intuitiva della porta seriale, Caselle di Dialogo per il caricamento e il salvataggio dei file, e Caselle di Messaggio per informare l'utente sull'esecuzione del programma.
Queste sono funzioni molto semplici che vengono chiamate rapidamente, native sulle piattaforme dove può essere installato SerialTool (Windows, MacOS e Linux). Questo elimina completamente le dipendenze da librerie esterne, e le funzioni base di interazione con l'utente sono rese semplici, veloci e intuitive in pochissime righe di codice.

Tornando al nostro esempio base, iniziamo chiudendo tutte le porte attive e cercando le porte seriali disponibili utilizzando la funzione SerialTool.scan e la selezione della porta seriale da parte dell'utente con la funzione SerialTool.gui_selectport.
A questo punto, sappiamo la porta che il nostro utente vuole utilizzare, non ci resta che aprirla utilizzando la funzione SerialTool.open con le impostazioni dei parametri o con i parametri già esistenti nell'interfaccia grafica. Una volta aperta la porta seriale, possiamo richiedere il file da caricare utilizzando la funzione SerialTool.gui_loadfile, aprire il file utilizzando le funzioni native di Python, e richiedere la conferma per l'esecuzione del download del firmware con la funzione SerialTool.gui_showmessage.
Siamo giunti al momento in cui scriviamo il buffer presente nel nostro file con SerialTool.write indicando il numero di byte da scrivere e attendiamo la risposta (se prevista) dal dispositivo da aggiornare con il comando SerialTool.read fino alla fine del nostro aggiornamento.
Pochi e semplici comandi che consentono in pochi minuti di scrivere il proprio programma per aggiornare il proprio dispositivo o un dispositivo di terze parti.
Sembra complicato? SerialTool fornisce esempi integrati ben commentati.

Esempi Integrati per la Porta Seriale in Python

Per facilitare la comprensione e il raggiungimento dei risultati, SerialTool integra direttamente esempi funzionali e commentati che promuovono l'uso immediato delle funzioni integrate. Un enorme vantaggio è dato dal fatto che le funzioni integrate non richiedono alcuna libreria Python esterna per operare una porta seriale.
Con l'installazione base di Python, il nostro esempio è già funzionale. Negli esempi forniti, tutte le funzioni disponibili nella libreria SerialTool per Python integrata nel nostro software sono disponibili. Sarà sufficiente adattare alcune parti del codice proposto per la personalizzazione dei propri script e in pochi minuti, il tuo programma per la porta seriale è sviluppato.
Gli esempi già proposti in SerialTool saranno integrati versione per versione per avere sempre una panoramica diretta sulle funzioni disponibili e la loro implementazione senza dover cercare su Internet.
Una documentazione dedicata sulle funzioni di SerialTool è disponibile sulla nostra pagina API di SerialTool per Python.

Installazione di Python

Molti tutorial iniziano con l'installazione di Python sul tuo PC, se non è già disponibile, e la configurazione per poter raggiungere un minimo di usabilità. Abbiamo lasciato questa parte per ultima perché SerialTool, attraverso il menu Ambiente Python, cercherà e testerà la configurazione esistente una volta che Python è installato sul tuo PC.
Come menzionato, Python è un linguaggio libero e interpretato e richiede l'interprete installato sul tuo PC. Per coloro che sono familiari con questo linguaggio, non ci sono molte spiegazioni da dare, tuttavia per coloro che dovessero provare per la prima volta questo incredibile linguaggio e il suo ambiente di sviluppo, i passaggi da seguire sono abbastanza semplici.
Per Windows, basta scaricare l'ultima versione di Python (3.12 al momento della stesura di questo documento) ed eseguire l'eseguibile fino al suo completo installazione.
Per MacOS, Python dovrebbe già essere installato probabilmente riferendosi alla versione 2 di Python ed è necessario aggiornarlo all'ultima versione (3.12 al momento della stesura di questo documento) scaricando l'eseguibile direttamente dal sito ufficiale di Python e procedendo con l'installazione (come in Windows).

Nota per gli utenti MacOS: Nella versione attuale di SerialTool per MacOS, il framework Python 3.12 è già integrato per rispettare i requisiti di Apple relativi alla firma del codice. Se desideri utilizzare una versione diversa installata sul tuo sistema, puoi cambiare le impostazioni dal menu "Python Environment".

Per Linux, sarà necessario installarlo tramite linea di comando Ubuntu sudo apt-get install python3 o Fedora sudo dnf install python3
Se hai dubbi o difficoltà nell'installare Python, puoi sempre fare riferimento al sito ufficiale o alle decine di tutorial disponibili online.

Configurazione dell'ambiente Python.


Una volta installato e verificata l'installazione dal menu "Ambiente Python", sarà sufficiente premere il pulsante "Verifica Installazione" per importare l'impostazione corrente di Python e salvarla per gli avvii successivi di SerialTool.

Sei pronto! Carica i primi esempi e premi il pulsante [RUN] per iniziare la tua avventura con SerialTool e Python scrivendo il tuo primo programma per la porta seriale.

Alcune informazioni aggiuntive

Per facilitare la scrittura degli script, l'editor incorporato ha le caratteristiche tipiche di un IDE ma non permette il debugging al momento.
Tra le opzioni disponibili, si consiglia di selezionare sempre l'opzione "Chiudi automaticamente le porte seriali quando lo script termina l'esecuzione." Se il tuo script incontra errori di scrittura, SerialTool provvede alla chiusura di eventuali porte seriali aperte per evitare di doverle chiudere agli avvii successivi dello script.
Per fermare lo script e uscire, non è consigliabile utilizzare la funzione sys.exit() poiché causerebbe la chiusura totale di SerialTool poiché Python è integrato. Se necessario interrompere l'esecuzione dello script tramite codice sorgente, è prevista la funzione SerialTool.stopscript.
Se ti trovi all'interno di un ciclo, è possibile interrompere l'esecuzione tramite il pulsante [STOP] direttamente dall'interfaccia grafica.
Poiché Python è integrato direttamente in SerialTool, è importante ricordare che il tuo script diventa parte dei processi di SerialTool. A questo proposito, quando includi cicli While True nel tuo ciclo, è cruciale abbinarli a un piccolo intervallo di tempo (tipicamente 0,1 secondi) utilizzando la funzione time.sleep(0.1) (dalla libreria time) per permettere l'esecuzione dei vari processi principali dell'interfaccia grafica; altrimenti, rischi di congelare completamente l'applicazione.
Non preoccuparti eccessivamente, poiché i nostri esempi evidenziano i punti critici dove inserire questi piccoli ritardi.

Domande frequenti

L'integrazione di Python è limitata a alcune funzionalità?
NO. Tutte le funzionalità degli script Python sono direttamente disponibili, inclusa la possibilità di caricare librerie esterne (se presenti nel sistema).

SerialTool e Python funzionano su tutti i sistemi operativi?
SÌ. Su tutte le piattaforme dove SerialTool è disponibile e dove è disponibile Python, il suo utilizzo è possibile, ovvero Windows, MacOS e Linux.

Devo necessariamente scaricare e installare Python?
SÌ. L'interprete Python deve essere presente sul PC dove si intende utilizzarlo. SerialTool si basa su Python3 e la retrocompatibilità con Python2 è direttamente dipendente dalla compatibilità tra le due versioni. Si raccomanda agli utenti di Python2 di utilizzare Python3 in ogni caso.

Come interagisce Python con SerialTool?
Lo script Python interagisce attraverso la libreria SerialTool direttamente integrata nel nostro software richiamando le funzioni desiderate. I parametri impostati tramite Python, inclusa l'apertura e la chiusura della porta seriale, sono direttamente collegati all'interfaccia utente principale. Sostanzialmente piloti SerialTool direttamente da Python attraverso la libreria SerialTool e le sue funzioni.

Posso continuare ad utilizzare le funzioni di SerialTool?
SÌ. Tutte le funzioni di SerialTool rimangono disponibili, AutoAnswer, Allarme, Oscilloscopio Seriale, visualizzazione dei pacchetti, Registrazione dei dati, Invio dei pacchetti alla rete, ecc. sono e rimangono disponibili e selezionabili dall'interfaccia utente.

È possibile utilizzare più porte contemporaneamente?
SÌ. La caratteristica base di SerialTool è la gestione di più porte seriali contemporaneamente. Da Python, è possibile assegnare il numero seriale da utilizzare alla porta seriale che si intende utilizzare tramite la funzione SerialTool.assignPort.

Devo sempre utilizzare l'interfaccia grafica per aprire e impostare le porte prima dell'uso?
NO. Come ribadito, la gestione delle porte seriali è direttamente disponibile da Python.

Posso impostare anche i parametri RTS e DTR?
SÌ. La libreria consente di pilotare direttamente l'impostazione dei pin RTS e DTR all'apertura della porta seriale e durante l'esecuzione dello script.

Posso richiedere l'implementazione di altre funzioni nella libreria SerialTool?
SÌ. Eventuali ulteriori implementazioni di funzioni aggiuntive per la libreria SerialTool su Python saranno prese in considerazione e implementate, ove possibile e in base alle dinamiche di sviluppo di SerialTool.

Che tipo di supporto posso avere?
Il nostro team è disponibile per aiutarti a integrare i tuoi script per facilitare la stesura dei tuoi script o individuare eventuali errori. Il supporto non è incluso nella stesura degli script Python veri e propri o su commissione. Il supporto è relativo all'integrazione di Python con SerialTool.