1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| import java.io.*;
import javax.comm.*;
import java.util.*;
public class PortReader implements SerialPortEventListener {
static Enumeration ports;
static CommPortIdentifier pID;
InputStream inStream;
private BufferedReader fluxLecture;
SerialPort serPort;
//vitesse de transmission
private int vitesse;
public PortReader() throws Exception{
serPort = (SerialPort) pID.open("PortReader", 2000);
inStream = serPort.getInputStream();
//On ajoute un auditeur qui écoute sur la substance provenant du port série
serPort.addEventListener(this);
serPort.notifyOnDataAvailable(true);
serPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
System.out.println("SerialPortEvent.BI occurred");
case SerialPortEvent.OE:
System.out.println("SerialPortEvent.OE occurred");
case SerialPortEvent.FE:
System.out.println("SerialPortEvent.FE occurred");
case SerialPortEvent.PE:
System.out.println("SerialPortEvent.PE occurred");
case SerialPortEvent.CD:
System.out.println("SerialPortEvent.CD occurred");
case SerialPortEvent.CTS:
System.out.println("SerialPortEvent.CTS occurred");
case SerialPortEvent.DSR:
System.out.println("SerialPortEvent.DSR occurred");
case SerialPortEvent.RI:
System.out.println("SerialPortEvent.RI occurred");
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
System.out.println("SerialPortEvent.OUTPUT_BUFFER_EMPTY occurred");
break;
case SerialPortEvent.DATA_AVAILABLE:
System.out.println("SerialPortEvent.DATA_AVAILABLE occurred");
byte[] readBuffer = new byte[20];
String codeBarre = new String();
byte buffer [ ] = new byte [20] ;
try {
while (inStream.available() > 0) {
int k = inStream.read(readBuffer);
vitesse=serPort.getBaudRate();//serPort.getBaudRate()
fluxLecture =new BufferedReader(new InputStreamReader(serPort.getInputStream()));
DataInputStream data = new DataInputStream (serPort.getInputStream()) ;
}
// for (int i = 0 ; i != buffer.length ; i++)
//System.out.print ( (char) buffer [i]) ;
//codeBarre = fluxLecture.readLine();
//System.out.println(" vitesse->"+vitesse);
//System.out.println(" read->"+inStream.read(readBuffer));
//System.out.println(" donnees->"+fluxLecture);
//System.out.println(" ->"+data );
} catch (IOException ioe) {
System.out.println("Exception " + ioe);
}
break;
}
}
public static void main(String[] args) throws Exception{
ports = CommPortIdentifier.getPortIdentifiers();
while (ports.hasMoreElements()) {
pID = (CommPortIdentifier) ports.nextElement();
//System.out.println("Port " + pID.getName());
if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (pID.getName().equals("COM17")) {
PortReader pReader = new PortReader();
System.out.println("COM 17 found");
}
}
}
}
} |
Partager