Java Serial Port Api
- PureJavaComm is an Application Programmin Interface (API) for accessing serial ports from Java, so this is a library aimed at programmers, not end users. PureJavaComm aims to be a drop-in replacement for Sun's (now Oracle) abandoned JavaComm and an easier to deploy alternative to RXTX.
- Class SerialPort java.lang.Object javax.comm.CommPort javax.comm.SerialPort. Public abstract class SerialPort extends CommPort. An RS-232 serial communications port. SerialPort describes the low-level interface to a serial communications port made available by the underlying system.
- Java Serial Port Code
- Java Serial Port Api 1
- Java Serial Port Programming Example
- Java Serial Port Example
- Java Serial Port Api Key
Package | Class | Tree | Deprecated | Index | Help |
Uses the Java Comm API. There are a few forks, but the main branch does not seem to receive updates frequently. The code is very complicated(25000 lines!). The settings that it opens the serial port with on Linux are not the best for getting raw data. JSSC - Has an API similar to the Java Comm API. Doesn't provide an easy way of getting raw.
javax.comm
Class SerialPort
- public abstract class SerialPort
- extends CommPort
An RS-232 serial communications port. SerialPort
describes the low-level interface to a serial communications port made available by the underlying system. SerialPort
Vmware workstation 12.5.9 pro for linux. defines the minimum required functionality for serial communications ports.
- Author:
- Jagane Sundar
- See Also:
CommPort
,CommPortIdentifier
Field Summary | |
static int | DATABITS_5 5 data bit format. |
static int | DATABITS_6 6 data bit format. |
static int | DATABITS_7 7 data bit format. |
static int | DATABITS_8 8 data bit format. |
static int | FLOWCONTROL_NONE Flow control off. |
static int | FLOWCONTROL_RTSCTS_IN RTS/CTS flow control on input. |
static int | FLOWCONTROL_RTSCTS_OUT RTS/CTS flow control on output. |
static int | FLOWCONTROL_XONXOFF_IN XON/XOFF flow control on input. |
static int | FLOWCONTROL_XONXOFF_OUT XON/XOFF flow control on output. |
static int | PARITY_EVEN EVEN parity scheme. |
static int | PARITY_MARK MARK parity scheme. |
static int | PARITY_NONE No parity bit. |
static int | PARITY_ODD ODD parity scheme. |
static int | PARITY_SPACE SPACE parity scheme. |
static int | STOPBITS_1 Number of STOP bits - 1. |
static int | STOPBITS_1_5 Number of STOP bits - 1-1/2. |
static int | STOPBITS_2 Number of STOP bits - 2. |
Fields inherited from class javax.comm.CommPort |
name |
Constructor Summary |
SerialPort() |
Method Summary | |
abstract void | addEventListener(SerialPortEventListener lsnr) Registers a SerialPortEventListener object to listen for SerialEvent s. |
abstract int | getBaudRate() Gets the currently configured baud rate. |
abstract int | getDataBits() Gets the currently configured number of data bits. |
abstract int | getFlowControlMode() Gets the currently configured flow control mode. |
abstract int | getParity() Get the currently configured parity setting. |
abstract int | getStopBits() Gets the currently defined stop bits. |
abstract boolean | isCD() Gets the state of the CD (Carrier Detect) bit in the UART, if supported by the underlying implementation. |
abstract boolean | isCTS() Gets the state of the CTS (Clear To Send) bit in the UART, if supported by the underlying implementation. |
abstract boolean | isDSR() Gets the state of the DSR (Data Set Ready) bit in the UART, if supported by the underlying implementation. |
abstract boolean | isDTR() Gets the state of the DTR (Data Terminal Ready) bit in the UART, if supported by the underlying implementation. |
abstract boolean | isRI() Gets the state of the RI (Ring Indicator) bit in the UART, if supported by the underlying implementation. |
abstract boolean | isRTS() Gets the state of the RTS (Request To Send) bit in the UART, if supported by the underlying implementation. |
abstract void | notifyOnBreakInterrupt(boolean enable) Expresses interest in receiving notification when there is a break interrupt on the line. |
abstract void | notifyOnCarrierDetect(boolean enable) Expresses interest in receiving notification when the CD (Carrier Detect) bit changes. |
abstract void | notifyOnCTS(boolean enable) Expresses interest in receiving notification when the CTS (Clear To Send) bit changes. |
abstract void | notifyOnDataAvailable(boolean enable) Expresses interest in receiving notification when input data is available. |
abstract void | notifyOnDSR(boolean enable) Expresses interest in receiving notification when the DSR (Data Set Ready) bit changes. |
abstract void | notifyOnFramingError(boolean enable) Expresses interest in receiving notification when there is a framing error. |
abstract void | notifyOnOutputEmpty(boolean enable) Expresses interest in receiving notification when the output buffer is empty. |
abstract void | notifyOnOverrunError(boolean enable) Expresses interest in receiving notification when there is an overrun error. |
abstract void | notifyOnParityError(boolean enable) Expresses interest in receiving notification when there is a parity error. |
abstract void | notifyOnRingIndicator(boolean enable) Expresses interest in receiving notification when the RI (Ring Indicator) bit changes. |
abstract void | removeEventListener() Deregisters event listener registered using addEventListener . |
abstract void | sendBreak(int millis) Sends a break of millis milliseconds duration. |
abstract void | setDTR(boolean dtr) Sets or clears the DTR (Data Terminal Ready) bit in the UART, if supported by the underlying implementation. |
abstract void | setFlowControlMode(int flowcontrol) Sets the flow control mode. |
void | setRcvFifoTrigger(int trigger) Deprecated.This was advisory only. |
abstract void | setRTS(boolean rts) Sets or clears the RTS (Request To Send) bit in the UART, if supported by the underlying implementation. |
abstract void | setSerialPortParams(int baudrate, int dataBits, int stopBits, int parity) Sets serial port parameters. |
Methods inherited from class javax.comm.CommPort |
close, disableReceiveFraming, disableReceiveThreshold, disableReceiveTimeout, enableReceiveFraming, enableReceiveThreshold, enableReceiveTimeout, getInputBufferSize, getInputStream, getName, getOutputBufferSize, getOutputStream, getReceiveFramingByte, getReceiveThreshold, getReceiveTimeout, isReceiveFramingEnabled, isReceiveThresholdEnabled, isReceiveTimeoutEnabled, setInputBufferSize, setOutputBufferSize, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
DATABITS_5
- 5 data bit format.
- See Also:
- Constant Field Values
DATABITS_6
- 6 data bit format.
- See Also:
- Constant Field Values
DATABITS_7
- 7 data bit format.
- See Also:
- Constant Field Values
DATABITS_8
- 8 data bit format.
- See Also:
- Constant Field Values
STOPBITS_1
- Number of STOP bits - 1.
- See Also:
- Constant Field Values
STOPBITS_2
- Number of STOP bits - 2.
- See Also:
- Constant Field Values
STOPBITS_1_5
- Number of STOP bits - 1-1/2. Some UARTs permit 1-1/2 STOP bits only with 5 data bit format, but permit 1 or 2 STOP bits with any format.
- See Also:
- Constant Field Values
PARITY_NONE
- No parity bit.
- See Also:
- Constant Field Values
PARITY_ODD
- ODD parity scheme. The parity bit is added so there are an odd number of TRUE bits.
- See Also:
- Constant Field Values
PARITY_EVEN
- EVEN parity scheme. The parity bit is added so there are an even number of TRUE bits.
- See Also:
- Constant Field Values
PARITY_MARK
- MARK parity scheme.
- See Also:
- Constant Field Values
PARITY_SPACE
- SPACE parity scheme.
- See Also:
- Constant Field Values
FLOWCONTROL_NONE
- Flow control off.
- See Also:
- Constant Field Values
FLOWCONTROL_RTSCTS_IN
- RTS/CTS flow control on input.
- See Also:
- Constant Field Values
FLOWCONTROL_RTSCTS_OUT
- RTS/CTS flow control on output.
- See Also:
- Constant Field Values
FLOWCONTROL_XONXOFF_IN
- XON/XOFF flow control on input.
- See Also:
- Constant Field Values
FLOWCONTROL_XONXOFF_OUT
- XON/XOFF flow control on output.
- See Also:
- Constant Field Values
Constructor Detail |
SerialPort
Method Detail |
getBaudRate
- Gets the currently configured baud rate.
- Returns:
- integer value indicating the baud rate
getDataBits
- Gets the currently configured number of data bits.
- Returns:
- integer that can be equal to DATABITS_5, DATABITS_6, DATABITS_7, or DATABITS_8
getStopBits
- Gets the currently defined stop bits.
- Returns:
- integer that can be equal to STOPBITS_1, STOPBITS_2, or STOPBITS_1_5
getParity
- Get the currently configured parity setting.
- Returns:
- integer that can be equal to PARITY_NONE, PARITY_ODD, PARITY_EVEN, PARITY_MARK or PARITY_SPACE.
sendBreak
- Sends a break of
millis
milliseconds duration. Note that it may not be possible to time the duration of the break under certain Operating Systems. Hence this parameter is advisory. - Parameters:
millis
- duration of break to send
setFlowControlMode
flowcontrol
- Can be a bitmask combination of - FLOWCONTROL_NONE: no flow control
- FLOWCONTROL_RTSCTS_IN: RTS/CTS (hardware) flow control for input
- FLOWCONTROL_RTSCTS_OUT: RTS/CTS (hardware) flow control for output
- FLOWCONTROL_XONXOFF_IN: XON/XOFF (software) flow control for input
- FLOWCONTROL_XONXOFF_OUT: XON/XOFF (software) flow control for output
- Throws:
UnsupportedCommOperationException
- if any of the flow control mode was not supported by the underline OS, or if input and output flow control are set to different values, i.e. one hardware and one software. The flow control mode will revert to the value before the call was made.
getFlowControlMode
- Gets the currently configured flow control mode.
- Returns:
- an integer bitmask of the modes FLOWCONTROL_NONE, FLOWCONTROL_RTSCTS_IN, FLOWCONTROL_RTSCTS_OUT, FLOWCONTROL_XONXOFF_IN, and FLOWCONTROL_XONXOFF_OUT.
setRcvFifoTrigger
- Deprecated.This was advisory only.
- Set the Receive Fifo trigger level If the uart has a FIFO and if it can have programmable trigger levels, then this method will cause the uart to raise an interrupt after trigger bytes have been received.
- Parameters:
trigger
- level
setSerialPortParams
baudrate
- If the baudrate passed in by the application is unsupported by the driver, the driver will throw an UnsupportedCommOperationExceptiondataBits
- - DATABITS_5: 5 bits
- DATABITS_6: 6 bits
- DATABITS_7: 7 bits
- DATABITS_8: 8 bits
stopBits
- - STOPBITS_1: 1 stop bit
- STOPBITS_2: 2 stop bits
- STOPBITS_1_5: 1.5 stop bits
parity
- - PARITY_NONE: no parity
- PARITY_ODD: odd parity
- PARITY_EVEN: even parity
- PARITY_MARK: mark parity
- PARITY_SPACE: space parity
UnsupportedCommOperationException
- if any of the above parameters are specified incorrectly. All four of the parameters will revert to the values before the call was made. DEFAULT: 9600 baud, 8 data bits, 1 stop bit, no parity
setDTR
dtr
- - true: set DTR
- false: clear DTR
isDTR
- Gets the state of the DTR (Data Terminal Ready) bit in the UART, if supported by the underlying implementation.
setRTS
rts
- Java Serial Port Code
- true: set RTS
- false: clear RTS
isRTS
- Gets the state of the RTS (Request To Send) bit in the UART, if supported by the underlying implementation.
isCTS
- Gets the state of the CTS (Clear To Send) bit in the UART, if supported by the underlying implementation.
isDSR
- Gets the state of the DSR (Data Set Ready) bit in the UART, if supported by the underlying implementation.
isRI
- Gets the state of the RI (Ring Indicator) bit in the UART, if supported by the underlying implementation.
isCD
- Gets the state of the CD (Carrier Detect) bit in the UART, if supported by the underlying implementation.
addEventListener
Registers aSerialPortEventListener
object to listen for SerialEvent
s. Interest in specific events may be expressed using the notifyOnXXX
calls. The serialEvent
method of SerialPortEventListener
will be called with a Java Serial Port Api 1
SerialEvent
object describing the event. The current implementation only allows one listener per SerialPort
. Once a listener is registered, subsequent call attempts to addEventListener
will throw a TooManyListenersException without effecting the listener already registered.
Java Serial Port Programming Example
All the events received by this listener are generated by one dedicated thread that belongs to the SerialPort object. After the port is closed, no more event will be generated. Another call to open()
of the port's CommPortIdentifier
object will return a new CommPort
object, and the lsnr has to be added again to the new CommPort
object to receive event from this port.
Helen Brown in criticized Gaga for making another album about her fame and doubted the record's originality, but found it 'great for dancing'. ' was released as the third single in March 2014 and peaked at number 76 in the US. Skyfall sheet music piano free. The album debuted atop the Billboard 200 chart, and sold more than 2.5 million copies worldwide as of July 2014.
- Parameters:
lsnr
- TheSerialPortEventListener
object whoseserialEvent
method will be called with aSerialEvent
describing the event.- Throws:
java.util.TooManyListenersException
- If an initial attempt to attach a listener succeeds, subsequent attempts will throw TooManyListenersException without effecting the first listener.
removeEventListener
Deregisters event listener registered usingaddEventListener
. This is done automatically at port close.
notifyOnDataAvailable
Expresses interest in receiving notification when input data is available. This may be used to drive asynchronous input. When data is available in the input buffer, this event is propagated to the listener registered usingaddEventListener
. The event will be generated once when new data arrive at the serial port. Even if the user doesn't read the data, it won't be generated again until next time new data arrive.
enable
- - true: enable notification
- false: disable notification
notifyOnOutputEmpty
Expresses interest in receiving notification when the output buffer is empty. This may be used to drive asynchronous output. When the output buffer becomes empty, this event is propagated to the listener registered usingaddEventListener
. The event will be generated after a write is completed, when the system buffer becomes empty again. This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnCTS
Expresses interest in receiving notification when the CTS (Clear To Send) bit changes.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- >
notifyOnDSR
Expresses interest in receiving notification when the DSR (Data Set Ready) bit changes.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnRingIndicator
Expresses interest in receiving notification when the RI (Ring Indicator) bit changes.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnCarrierDetect
Expresses interest in receiving notification when the CD (Carrier Detect) bit changes.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnOverrunError
Expresses interest in receiving notification when there is an overrun error.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnParityError
Expresses interest in receiving notification when there is a parity error.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnFramingError
Expresses interest in receiving notification when there is a framing error.This notification is hardware dependent and may not be supported by all implementations.
enable
- - true: enable notification
- false: disable notification
notifyOnBreakInterrupt
Java Serial Port Example
Expresses interest in receiving notification when there is a break interrupt on the line.This notification is hardware dependent and may not be supported by all implementations.
Java Serial Port Api Key
enable
- - true: enable notification
- false: disable notification
Package | Class | Tree | Deprecated | Index | Help |
PureJavaComm is an Application Programmin Interface (API) for accessing serial ports from Java, so this is a library aimed at programmers, not end users.
PureJavaComm aims to be a drop-in replacement for Sun's (now Oracle) abandoned JavaComm and an easier to deploy alternative to RXTX.
PJC is written 100% in Java so it is easy for Java programmers to develop and debug and it requires no native libraries. Native access to the underlaying operating system's serial port programming interface is provided by the wonderful JNA library which takes away all the pain of compiling and deploying native code.
PJC is BSD licensed but please note it depends on JNA which is LGPL/ASL dual licensed.
Obtaining a Copy
PureJavaComm is deployed to Maven Central. Here are a few examples using popular build frameworks.
Using Gradle:
Using Maven: