Java 串口 mysql_java实现串口通讯

packagecom.ims.interfaces.commPort;importgnu.io.CommPortIdentifier;importgnu.io.SerialPort;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.util.Enumeration;public classCommPortManager {/*** 串口定义*/

privateCommPort commPort;/*** 串口对象*/

privateSerialPort serialPort;/*** 字节输入*/

privateInputStream in;/*** 字节输出*/

privateOutputStream out;/*** 字符输入*/

privateBufferedReader bufReader;/*** 字符输出*/

privateBufferedWriter bufWriter;/*** 数据输入*/

privateDataInputStream dataIn;/*** 数据输出*/

privateDataOutputStream dataOut;/*** 串口是否在使用*/

private booleanisUse;publicCommPortManager(CommPort commPort){this.commPort =commPort;

}/*** 打开串口

*@throwsException*/

public void open() throwsException{

CommPortIdentifier commPortId=CommPortIdentifier.getPortIdentifier(commPort.getCommPortName());//第一个参数:通常设置为你的应用程序的名字;第二个参数:开启端口超时的毫秒数

serialPort = (SerialPort)commPortId.open(commPort.getOwnerName(), 5000);

serialPort.setOutputBufferSize(2048);

in=serialPort.getInputStream();

out=serialPort.getOutputStream();

bufReader= new BufferedReader(new InputStreamReader(in, "Unicode"));

bufWriter= new BufferedWriter(newOutputStreamWriter(out));

dataIn= newDataInputStream(in);

dataOut= newDataOutputStream(out);//设置串口参数

serialPort.setSerialPortParams(Integer.valueOf(commPort.getBaudRate()), Integer.valueOf(commPort.getDataBit()),

Integer.valueOf(commPort.getStopBit()), Integer.valueOf(commPort.getPartityBit()));

}/*** 判断串口是否可用*/

public booleancommPortEnable(){boolean result = false;

Enumeration en=CommPortIdentifier.getPortIdentifiers();while(en.hasMoreElements()) {

CommPortIdentifier portId=(CommPortIdentifier) en.nextElement();if (portId.getPortType() ==CommPortIdentifier.PORT_SERIAL&&portId.getName().equalsIgnoreCase(commPort.getCommPortName())) {

result= true;

}

}returnresult;

}/*** 设置串口接收超时时间

*@paramtimeout 超时时间,单位秒

*@throwsException*/

public void setReceiveTimeout(int timeout) throwsException{

getSerialPort().enableReceiveTimeout(timeout*1000);

}publicCommPort getCommPort() {returncommPort;

}publicSerialPort getSerialPort() {returnserialPort;

}publicInputStream getIn() {returnin;

}publicOutputStream getOut() {returnout;

}publicBufferedReader getBufReader() {returnbufReader;

}publicBufferedWriter getBufWriter() {returnbufWriter;

}publicDataInputStream getDataIn() {returndataIn;

}publicDataOutputStream getDataOut() {returndataOut;

}public booleanisUse() {returnisUse;

}public void setUse(booleanisUse) {this.isUse =isUse;

}

}

你可能感兴趣的:(Java,串口,mysql)