Two way communcation with the serial port
From Rxtx
qwest ringtones cheap propecia free polyphonic ringtones cool ringtones polyphonic ringtones free mono ringtones cheap hydrocodone but adipex free alltel ringtones valium online tenuate online cheap phentermine alprazolam online flexeril online buy hgh online meridia cheap ultram free free ringtones free funny ringtones diethylpropion online qwest ringtones free real ringtones lipitor online ultracet online tramadol online cialis online sony ericsson ringtones funny ringtones zoloft music ringtones cheap carisoprodol zanaflex online nokia ringtones lortab free motorola ringtones samsung ringtones free alltel ringtones sharp ringtones cheap soma mtv ringtones cheap levitra cheap pharmacy online free real ringtones cheap ambien cheap diethylpropion cheap xanax online lorazepam real ringtones free punk ringtones albuterol online xanax online fioricet online didrex online free verizon ringtones ultracet online tracfone ringtones clomid online ativan online buy xanax buy nexium free sonyericsson ringtones clomid online adipex online cialis online cheap hydrocodone cheap levitra midi ringtones order lisinopril free wwe ringtones phentermine online tracfone ringtones sildenafil online verizon ringtones free midi ringtones phentermine online rivotril online vicodin celexa online free funny ringtones cheap flexeril hoodia online tenuate online prozac online free sprint ringtones order norco online meridia free sprint ringtones diazepam online fioricet online mp3 ringtones paxil online buy zanaflex alprazolam soma online diazepam online wwe ringtones but zoloft lorazepam online norco online free free ringtones cheap carisoprodol free qwest ringtones cheap clonazepam celexa online cheap clonazepam buy lipitor free nokia ringtones cheap lisinopril cheap propecia nokia ringtones free punk ringtones buy carisoprodol ultram online free sony ericsson ringtones tracfone ringtones zyban online cheap hoodia cheap tramadol cingular ringtones jazz ringtones free alltel ringtones cheap flexeril free nextel ringtones free kyocera ringtones samsung ringtones free motorola ringtones cheap meridia cheap xenical free sony ringtones paxil online sagem ringtones buy ativan cheap rivotril cheap ortho celexa online sharp ringtones cheap adipex ortho online cheap hydrocodone propecia online free cingular ringtones nextel ringtones sagem ringtones online adipex free punk ringtones buy didrex free sonyericsson ringtones didrex online diazepam online samsung ringtones sharp ringtones meridia online free mono ringtones cheap valium buy hgh nextel ringtones funny ringtones cheap lortab but ultracet buy viagra albuterol vicodin online free motorola ringtones cheap lorazepam free ericsson ringtones free mp3 ringtones free sonyericsson ringtones viagra online cheap cyclobenzaprine vigrx wwe ringtones cheap zoloft cheap clomid cheap fioricet free samsung ringtones albuterol online tramadol online order xenical alprazolam clonazepam online free mp3 ringtones order norco online xanax mtv ringtones free qwest ringtones valium sildenafil online zyban online cheap alprazolam levitra cheap soma ortho online cheap xenical cheap zyban free polyphonic ringtones free motorola ringtones cheap lisinopril sagem ringtones music ringtones cheap ativan Below is a simple program that shows how to open a connection to a serial device and then interact with it (receiving data and sending data). One thing to note is that the package gnu.io is used instead of javax.comm, though other than the change in package name the API follows the Java Communication API. To find the names of the available ports, see the Discovering comm ports example.
import gnu.io.CommPort; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import java.io.FileDescriptor; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class TwoWaySerialComm { public TwoWaySerialComm() { super(); } void connect ( String portName ) throws Exception { CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName); if ( portIdentifier.isCurrentlyOwned() ) { System.out.println("Error: Port is currently in use"); } else { CommPort commPort = portIdentifier.open(this.getClass().getName(),2000); if ( commPort instanceof SerialPort ) { SerialPort serialPort = (SerialPort) commPort; serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); InputStream in = serialPort.getInputStream(); OutputStream out = serialPort.getOutputStream(); (new Thread(new SerialReader(in))).start(); (new Thread(new SerialWriter(out))).start(); } else { System.out.println("Error: Only serial ports are handled by this example."); } } } /** */ public static class SerialReader implements Runnable { InputStream in; public SerialReader ( InputStream in ) { this.in = in; } public void run () { byte[] buffer = new byte[1024]; int len = -1; try { while ( ( len = this.in.read(buffer)) > -1 ) { System.out.print(new String(buffer,0,len)); } } catch ( IOException e ) { e.printStackTrace(); } } } /** */ public static class SerialWriter implements Runnable { OutputStream out; public SerialWriter ( OutputStream out ) { this.out = out; } public void run () { try { int c = 0; while ( ( c = System.in.read()) > -1 ) { this.out.write(c); } } catch ( IOException e ) { e.printStackTrace(); } } } public static void main ( String[] args ) { try { (new TwoWaySerialComm()).connect("COM3"); } catch ( Exception e ) { // TODO Auto-generated catch block e.printStackTrace(); } } }