public interface UART extends Peripheral
UART
interface provides methods for controlling and accessing a UART (Universal Asynchronous
Receiver/Transmitter).
Each UART device is identified by a numerical ID and by a name. UART
instance can be opened by a call to one of the PeripheralManager.open()
methods.
Once opened, an application can obtain an input stream and an output stream using the getInputStream()
and
getOutputStream()
methods and can then read the received data bytes and respectively write the data bytes to
be transmitted through the UART.
An application can register a UARTEventListener
instance which will get asynchronously notified of input data
availability, input buffer overrun and/or empty output buffer conditions. Note that the input and output buffers for
which these events may be notified may not necessarily correspond to the transmit and receive FIFO buffers of the
UART hardware but may be buffers allocated by the underlying native driver. To register a UARTEventListener
instance, the application must call the setEventListener(int, UARTEventListener)
method. The registered
listener can later on be removed by calling the same method with a null
listener parameter.
When done, an application should call the UART.close()
method to release the UART. Any further
attempt to access or control a UART which has been closed will result in a PeripheralNotAvailableException
been thrown.
PeripheralNotAvailableException
BIG_ENDIAN, LITTLE_ENDIAN, MIXED_ENDIAN, UNDEFINED_ID
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes and releases the underlying peripheral device, making it available to other applications.
|
int |
getBaudRate()
Gets the current baud rate.
|
int |
getDataBits()
Gets the current number of bits per character.
|
java.io.InputStream |
getInputStream()
Gets this
UART 's input stream. |
java.io.OutputStream |
getOutputStream()
Gets this
UART 's output stream. |
int |
getParity()
Gets the current parity.
|
int |
getStopBits()
Gets the current number of stop bits per character.
|
void |
setBaudRate(int baudRate)
Sets the baud rate.
|
void |
setDataBits(int dataBits)
Sets the number of bits per character.
|
void |
setEventListener(int eventId,
UARTEventListener listener)
Registers a
UARTEventListener instance to monitor input data availability, input buffer overrun and/or
empty output buffer conditions. |
void |
setParity(int parity)
Sets the parity.
|
void |
setStopBits(int stopBits)
Sets the number of stop bits per character.
|
getID, getName, getProperties, isOpen
int getBaudRate() throws java.io.IOException, PeripheralNotAvailableException
setBaudRate(int)
the
peripheral configuration-specific default value is returned.java.io.IOException
- if an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).int getDataBits() throws java.io.IOException, PeripheralNotAvailableException
UARTConfig.DATABITS_5
, UARTConfig.DATABITS_6
,
UARTConfig.DATABITS_7
, UARTConfig.DATABITS_8
or UARTConfig.DATABITS_9
.java.io.IOException
- if an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).java.io.InputStream getInputStream() throws java.io.IOException, PeripheralNotAvailableException
UART
's input stream. The same InputStream
instance is returned upon subsequent calls. UART
's input stream.java.io.IOException
- if an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).java.io.OutputStream getOutputStream() throws java.io.IOException, PeripheralNotAvailableException
UART
's output stream. The same OutputStream
instance is returned upon subsequent calls. UART
's output stream.java.io.IOException
- if an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).int getParity() throws java.io.IOException, PeripheralNotAvailableException
UARTConfig.PARITY_ODD
, UARTConfig.PARITY_EVEN
,
UARTConfig.PARITY_MARK
, UARTConfig.PARITY_SPACE
, or UARTConfig.PARITY_NONE
.java.io.IOException
- if an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).int getStopBits() throws java.io.IOException, PeripheralNotAvailableException
UARTConfig.STOPBITS_1
, UARTConfig.STOPBITS_1_5
, or
UARTConfig.STOPBITS_2
.java.io.IOException
- if an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).void setBaudRate(int baudRate) throws java.io.IOException, PeripheralNotAvailableException
baudRate
- the baud rate to set.com.oracle.deviceaccess.InvalidOperationException
- if this UART cannot be configured with the requested baud rate.java.io.IOException
- If an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).void setDataBits(int dataBits) throws java.io.IOException, PeripheralNotAvailableException
dataBits
- the number bits per character: UARTConfig.DATABITS_5
, UARTConfig.DATABITS_6
,
UARTConfig.DATABITS_7
, UARTConfig.DATABITS_8
or UARTConfig.DATABITS_9
.com.oracle.deviceaccess.InvalidOperationException
- if this UART cannot be configured with the requested number of bits per character.java.lang.IllegalArgumentException
- if dataBits
is not one of the defined values.java.io.IOException
- If an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).void setEventListener(int eventId, UARTEventListener listener) throws java.io.IOException, PeripheralNotAvailableException
UARTEventListener
instance to monitor input data availability, input buffer overrun and/or
empty output buffer conditions. While the listener can be triggered by hardware interrupts, there are no
real-time guarantees of when the listener will be called.
A list of event type IDs is defined in UARTEvent
.
If listener
is null
then listener previously registered for the specified event type will be
removed.
Only one listener can be registered at a particular time for a particular event type.eventId
- ID of the native event to listen to: UARTEvent.INPUT_DATA_AVAILABLE
,
UARTEvent.INPUT_BUFFER_OVERRUN
or UARTEvent.OUTPUT_BUFFER_EMPTY
.listener
- the UARTEventListener
instance to be notified upon occurrence of the designated event.java.io.IOException
- if an I/O error occurs.java.lang.IllegalArgumentException
- if eventId
does not correspond to any of the supported event types.InvalidStateException
- if listener
is not null
and a listener is already registered for the specified event
type.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).com.oracle.deviceaccess.InvalidOperationException
- if this UART does not support asynchronous event notification of input data
availability, input buffer overrun and/or empty output buffer conditions.void setParity(int parity) throws java.io.IOException, PeripheralNotAvailableException
parity
- the parity: UARTConfig.PARITY_ODD
, UARTConfig.PARITY_EVEN
,
UARTConfig.PARITY_MARK
, UARTConfig.PARITY_SPACE
, or UARTConfig.PARITY_NONE
.java.io.IOException
- if an I/O error occurs.com.oracle.deviceaccess.InvalidOperationException
- if this UART cannot be configured with the requested parity.java.lang.IllegalArgumentException
- if parity
is not one of the defined values.java.io.IOException
- If an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).void setStopBits(int stopBits) throws java.io.IOException, PeripheralNotAvailableException
stopBits
- the number of stop bits per character: UARTConfig.STOPBITS_1
, UARTConfig.STOPBITS_1_5
, or UARTConfig.STOPBITS_2
.com.oracle.deviceaccess.InvalidOperationException
- if this UART cannot be configured with the requested number of stop bits per character.java.lang.IllegalArgumentException
- if stopBits
is not one of the defined values.java.io.IOException
- If an I/O error occurs.PeripheralNotAvailableException
- if the peripheral is not currently available (has been closed).void close() throws java.io.IOException
Peripheral
instance will result in a
PeripheralNotAvailableException
being thrown.
This method has no effects if the peripheral device has already been closed.
Closing a UART
will also close the device's InputStream
and OutputStream
.close
in interface Peripheral
java.io.IOException
- if an I/O error occurs.Copyright (c) 1990, 2013, Oracle and/or its affiliates. All rights reserved.