java类gnu.io.SerialPortEvent的实例源码

NordicSketchUploader.java 文件源码 项目:arduino-remote-uploader 阅读 15 收藏 0 点赞 0 评论 0
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;
          }
}
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());
        }
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号