23.07.2013 Views

Java IO.pdf - Nguyen Dang Binh

Java IO.pdf - Nguyen Dang Binh

Java IO.pdf - Nguyen Dang Binh

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Java</strong> I/O<br />

Steps 1 and 2 should be familiar from <strong>Java</strong>Beans and the <strong>Java</strong> 1.1 AWT. Step 3 is used to<br />

avoid getting notifications of events you're not interested in.<br />

17.4.5.1 Step 1<br />

As you might guess, you listen for serial port events with a SerialPortEvent-Listener:<br />

public interface SerialPortEventListener extends EventListener<br />

This interface declares a single method, serialEvent():<br />

public abstract void serialEvent(SerialPortEvent spe)<br />

Inside this method, you would generally use the getEventType() method of<br />

SerialPortEvent to determine exactly what caused the serial port event and to respond<br />

appropriately.<br />

17.4.5.2 Step 2<br />

Once you've constructed a SerialPortEventListener, you need to pass it to the<br />

SerialPort object's addEventListener() method:<br />

public abstract void addEventListener(SerialPortEventListener listener)<br />

throws TooManyListenersException<br />

You are limited to one event listener per port. Adding a second event listener throws a<br />

java.util.TooManyListenersException. If this is a problem, you can install an<br />

intermediate event listener directly with the SerialPort object. This listener could keep a list<br />

of other SerialPortEventListener objects and dispatch the events it receives to the other<br />

event listeners.<br />

Should you need to, you can remove a listener from the port with the SerialPort object's<br />

removeEventListener() method. This method takes no arguments, because there's never<br />

more than one event listener registered directly with the port.<br />

public abstract void removeEventListener()<br />

17.4.5.3 Step 3<br />

In many circumstances you may not be interested in some or all of these events. By default,<br />

none of these events are fired unless you first enable them with one of the 10 notify methods<br />

in javax.comm.SerialPort:<br />

public abstract void notifyOnDataAvailable(boolean enable)<br />

public abstract void notifyOnOutputEmpty(boolean enable)<br />

public abstract void notifyOnCTS(boolean enable)<br />

public abstract void notifyOnDSR(boolean enable)<br />

public abstract void notifyOnRingIndicator(boolean enable)<br />

public abstract void notifyOnCarrierDetect(boolean enable)<br />

public abstract void notifyOnOverrunError(boolean enable)<br />

public abstract void notifyOnParityError(boolean enable)<br />

public abstract void notifyOnFramingError(boolean enable)<br />

public abstract void notifyOnBreakInterrupt(boolean enable)<br />

451

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!