private void startRS232Com() throws NoSuchPortException,
PortInUseException,
UnsupportedCommOperationException,
IOException,
TooManyListenersException {
// get the port identifer
String portName = comListStr[comList.getSelectedIndex()];
portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()) {
System.out.println("Error: Port is currently in use");
} else {
// Wait for 2ms when the COM is Busy
String baudrate = baudrateListStr[baudrateList.getSelectedIndex()];
CommPort comPort = portIdentifier.open(this.getClass().getName(), 2000);
if (comPort instanceof SerialPort) {
serialPort = (SerialPort) comPort;
// set the notify on data available
// serialPort.addEventListener(this);
// use state machine here
// so do not use the interrupt now
// first time must open this notify
//serialPort.notifyOnDataAvailable(true);
// set params
serialPort.setSerialPortParams(
Integer.parseInt(baudrate),
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
// Do not use flow control
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
// set the out/in stream
serialIn = serialPort.getInputStream();
serialOut = serialPort.getOutputStream();
// initialize the read thread here
// do not need initialize the thread here
// first time do not initialize this thread
if(null == serialReadThread){
serialReadThread = new Thread(new SerialReader(serialIn));
// start the thread
serialReadThread.start();
}
} else {
System.out.println(
"Error: Only serial ports are handled by this example.");
}
}
}
WirelessLCDSystem.java 文件源码
java
阅读 20
收藏 0
点赞 0
评论 0
项目:EmbeddedMonitor
作者:
评论列表
文章目录