Port Reader : COM Port « Development Class « Java






Port Reader

 

import java.io.*;
import javax.comm.*;
import java.util.*;

public class PortReader SerialPortEventListener {
  static Enumeration ports;

  static CommPortIdentifier pID;

  InputStream inStream;

  SerialPort serPort;

  public PortReader() throws Exception{
    serPort = (SerialPort) pID.open("PortReader", 2000);
    inStream = serPort.getInputStream();

    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];

      try {
        while (inStream.available() > 0) {
          int numBytes = inStream.read(readBuffer);
        }
        System.out.print(new String(readBuffer));
      } 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("COM1")) {
          PortReader pReader = new PortReader();
          System.out.println("COM1 found");
        }
      }
    }
  }

}

   
  








Related examples in the same category

1.Querying Available COM Ports
2.Printing a FilePrinting a File
3.List the ports
4.Open a serial port using Java CommunicationsOpen a serial port using Java Communications
5.Subclasses CommPortOpen and adds send/expect handling for dealing with Hayes-type modems
6.Read from a Serial port, notifying when data arrives
7.Choose a port, any port!
8.Read from multiple Serial ports, notifying when data arrives on any
9.Demonstrate the port conflict resolution mechanism
10.Port Finder
11.Port Sniffer
12.Port Writer
13.This program tries to do I/O in each direction using a separate ThreadThis program tries to do I/O in each direction using a separate Thread