Serial Port Access using RXTX in JAVA

This is the sample code to access serial port using RXTX in java,,,,
the packages can be downloded from rxtx.org and to be placed in the locations specified in that link,,,,,

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Enumeration;

import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;

public class Port {

private CommPortIdentifier portId;
private SerialPort port;
private OutputStreamWriter out;
private InputStreamReader in;

public void open(String comportUsed) {
try {

Enumeration portList;
String defaultPort;

String osname = System.getProperty(“os.name”, “”).toLowerCase();
if (osname.startsWith(“windows”)) {
// windows
defaultPort = “COM1”;
} else if (osname.startsWith(“linux”)) {
// linux
defaultPort = “/dev/ttyS0”;
} else if (osname.startsWith(“mac”)) {
// mac
defaultPort = “????”;
} else {
System.out
.println(“Sorry, your operating system is not supported”);

}

portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals(comportUsed)) {
System.out.println(“Found port: ” + comportUsed);
break;
}
}
}

this.port = (SerialPort) this.portId.open(comportUsed, 2000);
port.setSerialPortParams(19200, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
in = new InputStreamReader(port.getInputStream());
out = new OutputStreamWriter(port.getOutputStream());
System.err.println(“Port Open:Success”);

} catch (Exception e) {
System.err.println(“Port Open:Failed”);
System.out.println(“Port is already used from other application,”);
System.out.println(“Close that application and re-run this application”);
}
}

private void write(String s) throws Exception {

out.write(s);
out.flush();
}

private void write(byte s) throws Exception {
out.write(s);
out.flush();
}

private void write(int s) throws Exception {
out.write(s);
out.flush();
}


private String read() throws Exception {
int n, i;
char c;
String answer = new String(“”);

for (i = 0; i
while (in.ready()) {
n = in.read();
if (n != -1) {
c = (char) n;
answer = answer + c;
Thread.sleep(1);
} else
break;
}
delay(1);
}


return answer;
}

private void delay(int a) {
try {
Thread.sleep(a);
} catch (InterruptedException e) {
}
}

public void close() throws Exception {
try {
port.close();
System.err.println(“close port”);
} catch (Exception e) {
System.err.println(“Error: close port failed: ” + e);
}
}

}


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s