protected void handleSerial(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[32];
try {
int numBytes = getInputStream().read(readBuffer);
for (int i = 0; i < numBytes; i++) {
//System.out.println("read " + (char) readBuffer[i]);
// don't add lf/cr chars
if ((readBuffer[i] != 10 && readBuffer[i] != 13)) {
stringBuilder.append((char) readBuffer[i]);
}
// got a new line
if ((int)readBuffer[i] == 10) {
handleSerialReply(stringBuilder.toString());
stringBuilder = new StringBuilder();
}
}
} catch (Exception e) {
log.error("Serial error", e);
}
break;
}
}
java类gnu.io.SerialPortEvent的实例源码
NordicSketchUploader.java 文件源码
项目:arduino-remote-uploader
阅读 15
收藏 0
点赞 0
评论 0
SerialSketchUploader.java 文件源码
项目:arduino-remote-uploader
阅读 19
收藏 0
点赞 0
评论 0
public void serialEvent(SerialPortEvent event) {
try {
handleSerial(event);
} catch (Throwable t) {
t.printStackTrace();
}
}
SerialSketchUploader.java 文件源码
项目:arduino-remote-uploader
阅读 20
收藏 0
点赞 0
评论 0
protected void handleSerial(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
// we get here if data has been received
byte[] readBuffer = new byte[20];
try {
// read data
int numBytes = inputStream.read(readBuffer);
for (int i = 0; i < numBytes; i++) {
//System.out.println("read " + (char) readBuffer[i]);
if ((readBuffer[i] != 10 && readBuffer[i] != 13)) {
strBuf.append((char) readBuffer[i]);
}
//carriage return
if ((int)readBuffer[i] == 10) {
System.out.println("Arduino:<-" + strBuf.toString());
if (strBuf.toString().equals("ok")) {
synchronized (pageAck) {
pageAck.notify();
}
}
strBuf = new StringBuffer();
}
}
} catch (Exception e) {
throw new RuntimeException("serialEvent error ", e);
}
break;
}
}
PortHandler.java 文件源码
项目:iot-libelium-lora-gateway
阅读 15
收藏 0
点赞 0
评论 0
/**
* Event notification must be enabled for every event in setSerialPort() above.
* We can't call displayMessage.display() from this method, as we are not in FX thread.
*
* @param event
*/
@Override
public void serialEvent(SerialPortEvent event) {
switch(event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.FE:
case SerialPortEvent.OE:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
case SerialPortEvent.PE:
case SerialPortEvent.RI:
break;
case SerialPortEvent.DATA_AVAILABLE:
short[] payload;
int b;
while (true) {
try {
if (in.available() == 0) {
// No more data available.
break;
}
b = in.read();
} catch (IOException e) {
displayMessage.displayLogLater("error on receive: " + e.getMessage());
break;
}
payload = frameHandler.frameAssembler(b);
if (payload != null) {
displayMessage.displayFrameLater(frameHandler.displayFrame(payload));
}
}
break;
default:
displayMessage.displayLogLater("FrameHandler.serialEvent() - unknown event type: " + event.getEventType());
}
}
GpsFinder.java 文件源码
项目:travelingsales
阅读 21
收藏 0
点赞 0
评论 0
/**
* Serial port event listener.
* @param event an event
*/
public void serialEvent(final SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
// we get here if data has been received
String line = "";
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// read data
while (inputStream.available() > 0) {
while (reader.ready()) {
line = reader.readLine();
}
}
LOG.finer("Read: " + line);
if (!gpsFound) {
gpsFound = isGpsStream(line);
}
} catch (IOException e) {
LOG.log(Level.FINE, "IOException in serial-port -event", e);
}
break;
default:
break;
}
}
MeteostickBridgeHandler.java 文件源码
项目:openhab2-addons
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void serialEvent(SerialPortEvent arg0) {
try {
logger.trace("RXTX library CPU load workaround, sleep forever");
Thread.sleep(Long.MAX_VALUE);
} catch (InterruptedException e) {
}
}
SerialThingHandler.java 文件源码
项目:openhab2-addons
阅读 17
收藏 0
点赞 0
评论 0
@Override
public void serialEvent(SerialPortEvent arg0) {
try {
/*
* The short select() timeout in the native code of the nrjavaserial lib does cause a high CPU load, despite
* the fix published (see https://github.com/NeuronRobotics/nrjavaserial/issues/22). A workaround for this
* problem is to (1) put the Thread initiated by the nrjavaserial library to sleep forever, so that the
* number of calls to the select() function gets minimized, and (2) implement a Threaded streamreader
* directly in java
*/
logger.trace("RXTX library CPU load workaround, sleep forever");
Thread.sleep(Long.MAX_VALUE);
} catch (InterruptedException e) {
}
}
RFXComSerialConnector.java 文件源码
项目:openhab2-addons
阅读 22
收藏 0
点赞 0
评论 0
@Override
public void serialEvent(SerialPortEvent arg0) {
try {
/*
* See more details from
* https://github.com/NeuronRobotics/nrjavaserial/issues/22
*/
logger.trace("RXTX library CPU load workaround, sleep forever");
Thread.sleep(Long.MAX_VALUE);
} catch (InterruptedException ignore) {
}
}
RS232Connection.java 文件源码
项目:openhab2-addons
阅读 17
收藏 0
点赞 0
评论 0
@Override
public void serialEvent(SerialPortEvent ev) {
switch (ev.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
try {
if (!inputReader.ready()) {
logger.debug("Serial Data Available but input reader not ready");
return;
}
String message = inputReader.readLine();
logger.debug("Msg Received: {}", message);
RadioRAFeedback feedback = parser.parse(message);
if (feedback != null) {
logger.debug("Msg Parsed as {}", feedback.getClass().getName());
listener.handleRadioRAFeedback(feedback);
}
logger.debug("Finished handling feedback");
} catch (IOException e) {
logger.debug("IOException occurred", e);
}
break;
default:
logger.debug("Unhandled SerialPortEvent raised [{}]", ev.getEventType());
break;
}
}
IT100BridgeHandler.java 文件源码
项目:openhab2-addons
阅读 21
收藏 0
点赞 0
评论 0
/**
* Receives Serial Port Events and reads Serial Port Data.
*
* @param serialPortEvent
*/
@Override
public synchronized void serialEvent(SerialPortEvent serialPortEvent) {
if (serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
String messageLine = serialInput.readLine();
handleIncomingMessage(messageLine);
} catch (IOException ioException) {
logger.error("serialEvent(): IO Exception: {}", ioException.getMessage());
}
}
}