24/01/06 15:43
Lodovica
Ciao a tutti sono tornata
ho questo codice per leggere da seriale:
ma mi da errore riguardo a:
Unknown Windows Application.?
ho questo codice per leggere da seriale:
package PortCom; import javax.comm.*; import java.io.*; /** * <p> * Title: * </p> * <p> * Description: * </p> * <p> * Copyright: Copyright (c) 2004 * </p> * <p> * Company: * </p> * * @author not attributable * @version 1.0 */ /* * Questa classe permette di leggere dalla porta seriale il cui nome ? * specificato nel costruttore della stessa. */ public class LeggiCOM extends Thread implements SerialPortEventListener { // Riferimento all'InputStream da cui leggere private InputStream in; // Crea un oggetto che legge dalla porta seriale // specificata nel costruttore public LeggiCOM(String port) { try { // Prendiamo il descrittore della porta scelta. // Nel caso in cui la porta non esista verr? sollevata una // eccezione di tipo NoSuchPortException. CommPortIdentifier id_porta; id_porta = CommPortIdentifier.getPortIdentifier(port); // Proviamo a prendere l'ownership della porta data. // Nel caso in cui la porta sia gi? occupata verr? sollevata // una eccezione di tipo PortInUseException CommPort porta = id_porta.open("LeggiCOM", 200); // Otteniamo un riferimento all'InputStream della porta in = porta.getInputStream(); // Impostiamo le propriet? di comunicazione nel // seguente modo: // baudrate 9600 // dataBits DATABITS_8 // stopBits DATABITS_1 // parity PARITY_NONE // Nel caso in cui i valori impostati non // siano supportati verr? sollevata una eccezione di // tipo UnsupportedCommOperationException SerialPort porta_seriale = (SerialPort) porta; porta_seriale.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // Ci poniamo in ascolto di eventi sulla porta. // Solamente un oggetto si pu? registrare come // ascoltatore per cui bisogna gestire l'eccezione // TooManyListenersException porta_seriale.addEventListener(this); // Avviamo il processo di lettura start(); } catch (NoSuchPortException ne) { System.out.println("La porta " + port + " non e' presente"); } catch (PortInUseException pe) { System.out.println("La porta " + port + " ? occupata da " + pe.currentOwner); } catch (UnsupportedCommOperationException ue) { System.out.println("La porta non supporta le propriet? impostate"); } catch (IOException ioe) { System.out.println("Errore di IO"); } catch (java.util.TooManyListenersException tme) { System.out.println("Si pu? registrare solamente un ascoltatore"); } // fine try/catch } // Rappresenta il corpo del Thread di lettura public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { } }// fine run public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[20]; try { while (in.available() > 0) { int numBytes = in.read(readBuffer); } System.out.print(new String(readBuffer)); } catch (IOException e) { } break; }// fine switch }// fine serialEvent public static void main(String[] args) { System.out.println("Usage java LeggiCOM"); LeggiCOM leggi = new LeggiCOM("COM1"); String tmp_ss = "" + (javax.comm.CommPortIdentifier.getPortIdentifiers()) .hasMoreElements(); System.out.println("ID COM: " + tmp_ss); }// fine main }// fine
ma mi da errore riguardo a:
Unknown Windows Application.?
aaa