COM PORT COMMUNICATION USING JAVA (RS232JAVA-1.0.0 API)
import gnu.io.*;
import java.io.*;
public class ComPortTest
{
/*
* This program will connect to COM PORT Device and send TEST MESSAGE to it.
* After sleeping for 500ms , It will read the response from SAME DEVICE.
* copyright (c) 2011 http://www.jovialjava.blogspot.com
* For detailed Tutorial please check it out -
* http://jovialjava.blogspot.com/2010/12/rs232-communication-using-java.html
*/
public boolean testComPort(String comPort, String testMessage){
CommPortIdentifier portIdentifier = null;
try{
portIdentifier = CommPortIdentifier.getPortIdentifier(comPort);
if (portIdentifier.isCurrentlyOwned())
{
System.out.println("Port in already in use, owner ["+ portIdentifier.getCurrentOwner()+"]");
return false;
}else{
SerialPort serialPort = (SerialPort) portIdentifier.open("ListPortClass", 300);
System.out.println("COM PORT NAME -["+portIdentifier.getName()+"] BAUD RATE ["+serialPort.getBaudRate()+"]" );
serialPort.setSerialPortParams(300, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
OutputStream mOutputToPort = serialPort.getOutputStream();
InputStream mInputFromPort = serialPort.getInputStream();
mOutputToPort.write(testMessage.getBytes());
System.out.println("Byte Sent");
mOutputToPort.flush();
System.out.println("Waiting for response");
Thread.sleep(500);
byte mBytesIn [] = new byte[20];
mInputFromPort.read(mBytesIn);
String value = new String(mBytesIn);
System.out.println("Response from Serial Device: "+value);
mOutputToPort.close();
mInputFromPort.close();
serialPort.close();
System.out.println("!!! ======================== COM PORT TEST - PASS =============================!!!");
return true;
}
}catch(NoSuchPortException nspe){
System.out.println("No such port ["+comPort+"] found on system "+ nspe.getMessage());
}catch(PortInUseException piue){
System.out.println("port ["+comPort+"] is already in use, owner["+ portIdentifier.getCurrentOwner()+"] "+piue.getMessage());
}catch(UnsupportedCommOperationException ucoe){
System.out.println("Setting Communciation Operations - 300, DataBits -"+ SerialPort.DATABITS_8+", StopBits "+ SerialPort.STOPBITS_1+", Parity "+ SerialPort.PARITY_NONE);
System.out.println("Communication Operations are not supported on port ["+comPort+"] "+ ucoe.getMessage());
}catch(IOException ioe){
System.out.println("IOExceptin while trying to communicate with COM PORT device "+ ioe.getMessage());
}catch(InterruptedException ie){
System.out.println("Interruption while waiting for response from COM Device "+ ie.getMessage());
}
return false;
}
public static void main(String... args){
new ComPortTest().testComPort("COM1", "JOVIAL JAVA");
}
}
1 comment:
download
Post a Comment