NRJavaSerial

A fork of the RXTX library with a focus on ease of use and embeddability in other libraries.

License

License

GroupId

GroupId

org.bidib.com.neuronrobotics
ArtifactId

ArtifactId

nrjavaserial
Last Version

Last Version

3.12.0
Release Date

Release Date

Type

Type

jar
Description

Description

NRJavaSerial
A fork of the RXTX library with a focus on ease of use and embeddability in other libraries.
Project URL

Project URL

http://neuronrobotics.com
Source Code Management

Source Code Management

https://github.com/akuhtz/nrjavaserial

Download nrjavaserial

How to add to project

<!-- https://jarcasting.com/artifacts/org.bidib.com.neuronrobotics/nrjavaserial/ -->
<dependency>
    <groupId>org.bidib.com.neuronrobotics</groupId>
    <artifactId>nrjavaserial</artifactId>
    <version>3.12.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.bidib.com.neuronrobotics/nrjavaserial/
implementation 'org.bidib.com.neuronrobotics:nrjavaserial:3.12.0'
// https://jarcasting.com/artifacts/org.bidib.com.neuronrobotics/nrjavaserial/
implementation ("org.bidib.com.neuronrobotics:nrjavaserial:3.12.0")
'org.bidib.com.neuronrobotics:nrjavaserial:jar:3.12.0'
<dependency org="org.bidib.com.neuronrobotics" name="nrjavaserial" rev="3.12.0">
  <artifact name="nrjavaserial" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.bidib.com.neuronrobotics', module='nrjavaserial', version='3.12.0')
)
libraryDependencies += "org.bidib.com.neuronrobotics" % "nrjavaserial" % "3.12.0"
[org.bidib.com.neuronrobotics/nrjavaserial "3.12.0"]

Dependencies

compile (3)

Group / Artifact Type Version
commons-net : commons-net jar 3.3
org.slf4j : slf4j-api jar 1.7.12
org.apache.commons : commons-lang3 jar 3.2.1

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

About

Join the chat at https://gitter.im/NeuronRobotics/nrjavaserial

Maven Central

Build Status

This is a fork of the RXTX library with a focus on ease of use and embeddability in other libraries.

Some of the features we have added

  • A simplified serial port object called NRSerialPort. See below for an example.

  • Self-deployment of native libraries (all native code is stored inside the JAR and deployed at runtime). No more manual installation of native code.

  • Arm Cortex support (Gumstix).

  • Android Support (requires a rooted phone to access the serial hardware).

  • Single Makefile compile which simplifies the compilation of project binaries.

  • Gradle support for JAR creation.

  • Removal of partially-implemented RXTX code to streamline the library for just serial port access.

  • Full Eclipse integration for testing application code against sources.

  • RFC 2217 support provided by incorporating the jvser library.

And a bunch of bug fixes

  • Fixed the memory access error that causes OS X to crash the JVM when serial.close() is called.

  • Fixed the Windows serial port zombie bind that prevents re-accessing serial ports when exiting on an exception.

  • Fixed erroneous printouts of native library mis-match.

Dependency Management

Maven

<dependency>
  <groupId>com.neuronrobotics</groupId>
  <artifactId>nrjavaserial</artifactId>
  <version>3.12.1</version>
</dependency>

Building the JAR

  1. Checkout the repository.

     $ git clone https://github.com/NeuronRobotics/nrjavaserial.git
    
  2. Build with Gradle.

     $ cd nrjavaserial
     $ gradle build
    

The resulting JAR will be found in the build/libs/ directory.

Building Native Code

Native code is built using the Makefile found in the root of the repository. After the native code is built, the JAR is rebuilt.

# Build both the 32- and 64-bit Windows binaries.
$ make windows

# Build the windows binaries on Linux via Wine.
$ make wine

# Build both the 32- and 64-bit Linux x86 binaries.
$make linux

# Build 32- or 64-bit Linux binaries, respectively.
$ make linux32
$ make linux64

# Build the binaries for all the supported ARM flavors (requires arm-linux-geabi-* packages)
$ make arm

# Build the OSX binaries.
$ make osx

# Build the PPC binaries.
$ make ppc

Building on Windows

You'll need some installation of GCC. We recommend the TDM-GCC distribution of mingw64-w64.

Building on OS X

We're pretty big on maintaining backwards compatibility as far as reasonable. Our OS X natives target OS X 10.5, so to build them, you'll need an appropriate SDK installed. This StackOverflow answer provides pointers for getting the appropriate SDK installed.

How to use NRSerialPort objects

for(String s:NRSerialPort.getAvailableSerialPorts()){
		System.out.println("Availible port: "+s);
	}
String port = "COM3";
int baudRate = 115200;
NRSerialPort serial = new NRSerialPort(port, baudRate);
serial.connect();

DataInputStream ins = new DataInputStream(serial.getInputStream());
DataOutputStream outs = new DataOutputStream(serial.getOutputStream());

byte b = ins.read();
outs.write(b);

serial.disconnect();

Versions

Version
3.12.0
3.9.3.1
3.9.2.1