Java Serial Port Api

Java Serial Port Api Average ratng: 8,5/10 1743 reviews
  • 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.
  1. Java Serial Port Code
  2. Java Serial Port Api 1
  3. Java Serial Port Programming Example
  4. Java Serial Port Example
  5. Java Serial Port Api Key
PackageClassTreeDeprecatedIndexHelp
FRAMESNO FRAMESAll Classes SUMMARY: NESTED FIELD CONSTR METHOD DETAIL: FIELD CONSTR METHOD

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. SerialPortVmware 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 intDATABITS_5
5 data bit format.
static intDATABITS_6
6 data bit format.
static intDATABITS_7
7 data bit format.
static intDATABITS_8
8 data bit format.
static intFLOWCONTROL_NONE
Flow control off.
static intFLOWCONTROL_RTSCTS_IN
RTS/CTS flow control on input.
static intFLOWCONTROL_RTSCTS_OUT
RTS/CTS flow control on output.
static intFLOWCONTROL_XONXOFF_IN
XON/XOFF flow control on input.
static intFLOWCONTROL_XONXOFF_OUT
XON/XOFF flow control on output.
static intPARITY_EVEN
EVEN parity scheme.
static intPARITY_MARK
MARK parity scheme.
static intPARITY_NONE
No parity bit.
static intPARITY_ODD
ODD parity scheme.
static intPARITY_SPACE
SPACE parity scheme.
static intSTOPBITS_1
Number of STOP bits - 1.
static intSTOPBITS_1_5
Number of STOP bits - 1-1/2.
static intSTOPBITS_2
Number of STOP bits - 2.
Fields inherited from class javax.comm.CommPort
name
Constructor Summary
SerialPort()
Method Summary
abstract voidaddEventListener(SerialPortEventListener lsnr)
Registers a SerialPortEventListener object to listen for SerialEvents.
abstract intgetBaudRate()
Gets the currently configured baud rate.
abstract intgetDataBits()
Gets the currently configured number of data bits.
abstract intgetFlowControlMode()
Gets the currently configured flow control mode.
abstract intgetParity()
Get the currently configured parity setting.
abstract intgetStopBits()
Gets the currently defined stop bits.
abstract booleanisCD()
Gets the state of the CD (Carrier Detect) bit in the UART, if supported by the underlying implementation.
abstract booleanisCTS()
Gets the state of the CTS (Clear To Send) bit in the UART, if supported by the underlying implementation.
abstract booleanisDSR()
Gets the state of the DSR (Data Set Ready) bit in the UART, if supported by the underlying implementation.
abstract booleanisDTR()
Gets the state of the DTR (Data Terminal Ready) bit in the UART, if supported by the underlying implementation.
abstract booleanisRI()
Gets the state of the RI (Ring Indicator) bit in the UART, if supported by the underlying implementation.
abstract booleanisRTS()
Gets the state of the RTS (Request To Send) bit in the UART, if supported by the underlying implementation.
abstract voidnotifyOnBreakInterrupt(boolean enable)
Expresses interest in receiving notification when there is a break interrupt on the line.
abstract voidnotifyOnCarrierDetect(boolean enable)
Expresses interest in receiving notification when the CD (Carrier Detect) bit changes.
abstract voidnotifyOnCTS(boolean enable)
Expresses interest in receiving notification when the CTS (Clear To Send) bit changes.
abstract voidnotifyOnDataAvailable(boolean enable)
Expresses interest in receiving notification when input data is available.
abstract voidnotifyOnDSR(boolean enable)
Expresses interest in receiving notification when the DSR (Data Set Ready) bit changes.
abstract voidnotifyOnFramingError(boolean enable)
Expresses interest in receiving notification when there is a framing error.
abstract voidnotifyOnOutputEmpty(boolean enable)
Expresses interest in receiving notification when the output buffer is empty.
abstract voidnotifyOnOverrunError(boolean enable)
Expresses interest in receiving notification when there is an overrun error.
abstract voidnotifyOnParityError(boolean enable)
Expresses interest in receiving notification when there is a parity error.
abstract voidnotifyOnRingIndicator(boolean enable)
Expresses interest in receiving notification when the RI (Ring Indicator) bit changes.
abstract voidremoveEventListener()
Deregisters event listener registered using addEventListener.
abstract voidsendBreak(int millis)
Sends a break of millis milliseconds duration.
abstract voidsetDTR(boolean dtr)
Sets or clears the DTR (Data Terminal Ready) bit in the UART, if supported by the underlying implementation.
abstract voidsetFlowControlMode(int flowcontrol)
Sets the flow control mode.
voidsetRcvFifoTrigger(int trigger)
Deprecated.This was advisory only.
abstract voidsetRTS(boolean rts)
Sets or clears the RTS (Request To Send) bit in the UART, if supported by the underlying implementation.
abstract voidsetSerialPortParams(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

Java serial port communication example
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

Sets the flow control mode.
Parameters:
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

Sets serial port parameters.
Parameters:
baudrate - If the baudrate passed in by the application is unsupported by the driver, the driver will throw an UnsupportedCommOperationException
dataBits -
  • DATABITS_5: 5 bits
  • DATABITS_6: 6 bits
  • DATABITS_7: 7 bits
  • DATABITS_8: 8 bits
stopBits - Java Serial Port Api
  • 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
Throws:
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

Sets or clears the DTR (Data Terminal Ready) bit in the UART, if supported by the underlying implementation.
Parameters:
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

Sets or clears the RTS (Request To Send) bit in the UART, if supported by the underlying implementation.
Parameters:
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 a SerialPortEventListener object to listen for SerialEvents. 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 - The SerialPortEventListener object whose serialEvent method will be called with a SerialEvent 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 using addEventListener.

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 using addEventListener.

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.

Parameters:
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 using addEventListener. 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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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

Parameters:
enable -
  • true: enable notification
  • false: disable notification
PackageClassTreeDeprecatedIndexHelp
FRAMESNO FRAMESAll Classes SUMMARY: NESTED FIELD CONSTR METHOD DETAIL: FIELD CONSTR METHOD

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: