Showing posts with label COM PORT. Show all posts
Showing posts with label COM PORT. Show all posts

Monday, December 6, 2010

Part 1 of 6: RS232 Communication Using JAVA

===============================================================
Click HERE -PART 2 of 6
===============================================================
If you are not sure about –

Ø What is the difference between DCE and DTE?
Ø What is the significance of RTS, DTS, CS, ACK, NACK, STX, ETX etc in Serial Communication?
Ø Whether to implement event based or time based communication?
Ø Whether to transmit data in Hex, ASCII or Hex dumps?
Ø Which combination of Baud rate, data bits, parity bit, hardware flow, and stop bit one should use?
And
> If you don’t know that native JAVA doesn’t have unsigned bytes and serial communication is less error prone if you transmit data in unsigned bytes.
And
Ø
If you are looking for a very simple solution to implement the complex flow of serial communication?
Ø If you are looking for a JAVA based solution of serial communication?
If answers to most of questions are YES, then you are at right page. Here we will go through a small tutorial to make you master of serial communication in JAVA.
Note:
Ø This tutorial assumes that you have eclipse install on your system.
Ø You have basic knowledge of JAVA.

Thursday, June 10, 2010

com port communication using java

NOTE: For step by step tutorial please click on this link -
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");    
    }
}