Comunicazione su porta seriale/parallela in Java

In questo breve articolo vediamo come comunicare su porte seriali/parallele attraverso un programma Java

Introduzione

La comunicazione su porte seriali/parallele è una di quelle cose che permette ai nostri programmi di comunicare/pilotare hardware collegato al nostro pc. Grazie alle libreria opensource RXTX, che supporta la Comm API della SUN, vedremo come dialogare con le porte di I/O del nostro computer. La prima cosa da notare di questa libreria è che permette di essere utilizzata su sistemi Windows, Linux, MacOSX e Solaris, mentre nella distribuzione ufficiale della SUN possiamo utilizzare soltanto sistemi Solaris SPARC, Solaris x86 e Linux x86.

Libreria RXTX

Questa libreria rispetta la Comm API di SUN, ma ha rinominato diversi suoi componenti inserendoli nel package gnu.io, quindi nel momento in cui dobbiamo passare un programma realizzato con le Comm API di SUN alla libreria RXTX dobbiamo inserire il nuovo package tra gli import. Per “installare” questa libreria dobbiamo:

  • Copiare RXTXcomm.jar in jre\lib\ext
  • Copiare rxtxSerial.dll e rxtxParallel.dll in jre\bin

 

Questi file sono disponibile nella distribuzione di RXTX 2.1: http://rxtx.qbang.org/.

 

Lettura porte

Vediamo prima di tutto un semplice programma che lista le porte disponibili del nostro sistema:

Come potete vedere la ricerca delle porte sul sistema è abbastanza semplice. Attraverso la classe gnu.io.CommPortIdentifier viene ottenuta un Enumeration con tutte le porte del sistema. Iterando su tutte le porte, vediamo se è possibile collegarsi ad esse oppure se sono occupate.

 

Scrittura/Lettura sulle porte seriali/parallele

Ora che sappiamo come collegarci alle porte seriali/parallele del nostro sistema, dobbiamo vedere come possiamo effettuare operazioni di lettura/scrittura. Dobbiamo sapere che alcune porte hanno delle limitazioni/caratteristiche che le contraddistinguono, quindi c’è la necessità talvolta di settare queste informazioni quando utilizziamo una certa porta:

Ora che abbiamo la nostra porta, rappresentata dall’oggetto CommPort, possiamo creare stream di input e di output, nella maniera classica di Java e dialogare con la nostra periferica. Di seguito viene riportata la scrittura/lettura su periferica:

Come in molti casi, dove utilizziamo I/O con Java, dobbiamo utilizzare classi come BufferedReader e PrintStream per gestire i flussi di informazione.

 

Risorse

Homepage RXTX
Java Communications API
Programmazione seriale in Java

Una risposta

  1. Flavio ha detto:

    Esiste per caso una libreria che permette di gestire le porte seriali in Android?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *