i want read data (which weight ) weigh bridge connected computer com1 port. search web , able connect port , read data problem data not meaning full.
i getting below

there weight of 145 on weigh bridge getting these symbols. here code reading data.
/* * change template, choose tools | templates * , open template in editor. */ package readingports; import java.io.bufferedinputstream; import java.io.bufferedreader; import java.io.inputstream; import java.io.inputstreamreader; import java.util.enumeration; import javax.comm.commportidentifier; import javax.comm.serialport; import javax.comm.serialportevent; import javax.comm.serialporteventlistener; /** * * @author iamusman */ public class readingports implements serialporteventlistener, runnable { static commportidentifier portid; static enumeration portlist; static serialport port; static inputstream inputstream; static thread readthread; static byte buffer[]; static bufferedreader br; /** * @param args command line arguments */ public static void main(string[] args) { // todo code application logic here portlist = commportidentifier.getportidentifiers(); while (portlist.hasmoreelements()) { portid = (commportidentifier) portlist.nextelement(); if (portid.getporttype() == commportidentifier.port_serial) { if (portid.getname().equals("com1")) { if (!portid.iscurrentlyowned()) { readingports rp = new readingports(); } else { system.out.println("this port used other program"); } } } } } public readingports() { try { port = (serialport) portid.open("custom", 500); inputstream = port.getinputstream(); br = new bufferedreader(new inputstreamreader(inputstream)); system.out.println("** connected com6 **"); port.addeventlistener(this); port.notifyondataavailable(true); port.setserialportparams(9600, serialport.databits_8, serialport.stopbits_1, serialport.parity_none); port.setflowcontrolmode(serialport.flowcontrol_none); port.enablereceivetimeout(500); system.out.println("................................"); readthread = new thread(this); readthread.start(); } catch (exception ex) { ex.printstacktrace(); } } public void serialevent(serialportevent event) { switch (event.geteventtype()) { case serialportevent.data_available: buffer = new byte[8]; try { while (inputstream.available() > 0) { int numbytes = inputstream.read(buffer); system.out.println(new string(buffer,0,numbytes)); } } catch (exception ex) { ex.printstacktrace(); } break; } } @override public void run() { try { system.out.println("in run"); thread.sleep(2000); } catch (exception ex) { ex.printstacktrace();; } } } hyper terminal reads correct data.

after understand code, maybe can modify code this:
case serialportevent.data_available: try { string inputline=br.readline(); system.out.println(inputline); } catch (exception ex) { system.err.println(e.tostring()); } break; and move 2 line below port.setserialportparams:
inputstream = port.getinputstream(); br = new bufferedreader(new inputstreamreader(inputstream));
Comments
Post a Comment