Java 类gnu.io.SerialPortEvent 实例源码

项目:jaer    文件:HyperTerminal.java   
public void serialEvent(SerialPortEvent spe) {
    if (spe.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        StringBuilder line = new StringBuilder();
        try {
            while (isr.ready()) {
                if (hexi < 0) {
                    line.append((char) isr.read());
                } else {
                    int value = isr.read();
                    if (value >= 0) {
                        line.append(String.format("%02X ", (value & 0xFF)));
                        if (++hexi % 0x10 == 0) {
                            line.append("\n");
                        }
                    }
                }
            }

            appendString(line.toString());
        } catch (IOException ex) {
            Logger.getLogger(HyperTerminal.class.getName()).log(Level.WARNING, null, ex);
        }
    }

    updateFlags();
}
项目:scorekeeperfrontend    文件:SerialDataInterface.java   
@Override
   public void serialEvent(SerialPortEvent e)
{
    int type = e.getEventType();
    switch (type)
    {
        case SerialPortEvent.DATA_AVAILABLE:
            try
            {
                buffer.readData(is);
                byte[] newline;
                while ((newline = buffer.getNextLine()) != null)
                    processData(newline);
            }
            catch (IOException ex)
            {
                log.log(Level.WARNING, "serial port read error: " + ex, ex);
            }
            break;

        default:
            log.log(Level.INFO, "Recieved serialEvent {0}", type);
            break;
    }
}
项目:org.openhab.binding.zigbee    文件:ZigBeeSerialPort.java   
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            synchronized (bufferSynchronisationObject) {
                int recv;
                while ((recv = inputStream.read()) != -1) {
                    buffer[end++] = recv;
                    if (end >= maxLength) {
                        end = 0;
                    }
                }
            }
        } catch (IOException e) {
        }

        synchronized (this) {
            this.notify();
        }
    }
}
项目:V2R    文件:comm.java   
/**
 * This Method is called when Serialdata is recieved
 */
public synchronized void serialEvent (SerialPortEvent oEvent) {
    if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            int available = input.available();
            for(int i=0;i<available;i++){
                int receivedVal=input.read();
                if(receivedVal!=10 && receivedVal!=13){
                    inputBuffer+=(char)receivedVal;
                }else if(receivedVal==10){
                    te.log("ARDUINO:-> "+inputBuffer);
                    inputBuffer="";
                }
            }
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}
项目:lizard-enclosure    文件:SerialTest.java   
/**
 * Handle an event on the serial port. Read the data and print it.
 */
@Override
public synchronized void serialEvent(SerialPortEvent oEvent) 
{
        if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) 
        {
                try 
                {
                        String inputLine = input.readLine();
                        System.out.println(inputLine);
                } catch (Exception e) {
                        System.err.println(e.toString());
                }
        }
        // Ignore all the other eventTypes, but you should consider the other ones.
}
项目:dammit    文件:SerialPortHandler.java   
public void serialEvent(SerialPortEvent arg0) {
          int data;

          try
          {
              int len = 0;
              while ( ( data = inStream.read()) > -1 )
              {
                  if ( data == '\n' ) {
                      break;
                  }
                  if (data >= 48 && data <= 57 ){buffer[len++] = (byte) data;}
              }
inputData = Integer.parseInt(new String(buffer,0,len));
inputWaiting = true;
          }
          catch ( IOException e )
          {
              e.printStackTrace();
          }             
      }
项目:openhab1-addons    文件:CULSerialHandlerImpl.java   
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        synchronized (serialPort) {
            try {
                if (br == null) {
                    logger.warn("BufferedReader for serial connection is null");
                } else {
                    String line = br.readLine();
                    logger.trace("Serial event: received '{}'", line);
                    processNextLine(line);
                }
            } catch (IOException e) {
                logger.warn("Can't read from serial device {}", config.getDeviceName(), e);
                tryReopenHardware();
            }
        }
    }
}
项目:Dirigino    文件:SerialInterface.java   
/**
 * Handle an event on the serial port. Read the data and print it.
 */
public synchronized void serialEvent(SerialPortEvent oEvent) {
    if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            String inputLine=input.readLine();
            if (inputLine.length() > 0) {
                for(SerialListener s : listeners) {
                    s.readPerformed(inputLine);
                }
            }
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
    // Ignore all the other eventTypes, but you should consider the other ones.
}
项目:elexis-3-core    文件:AbstractConnection.java   
/**
 * Handles SerialPortEvents. The two types of SerialPortEvents that this program is registered
 * to listen for are DATA_AVAILABLE and BI. During DATA_AVAILABLE the port buffer is read until
 * it is drained, when no more data is available and 30ms has passed the method returns. When a
 * BI event occurs the words BREAK RECEIVED are written to the messageAreaIn.
 */

public void serialEvent(final SerialPortEvent e){
    if (adjustEndTime) {
        endTime = System.currentTimeMillis() + (timeout * 1000);
    }
    if (e.getEventType() == SerialPortEvent.BI) {
        breakInterrupt(state);
    } else {
        try {
            serialEvent(this.state, is, e);
        } catch (Exception ex) {
            ExHandler.handle(ex);
        }
    }
}
项目:elexis-3-base    文件:AfinionConnection.java   
/**
 * Handles serial event.
 */
public void serialEvent(final int state, final InputStream inputStream, final SerialPortEvent e)
    throws IOException{

    switch (e.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:
        dataAvailable(inputStream);
        break;
    }

}
项目:lizard-enclosure    文件:SerialTest.java   
/**
 * Handle an event on the serial port. Read the data and print it.
 */
@Override
public synchronized void serialEvent(SerialPortEvent oEvent) 
{
        if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) 
        {
                try 
                {
                        String inputLine = input.readLine();
                        System.out.println(inputLine);
                } catch (Exception e) {
                        System.err.println(e.toString());
                }
        }
        // Ignore all the other eventTypes, but you should consider the other ones.
}
项目:spring-serial-port-connector    文件:AbstractSpringSerialPortConnector.java   
@Override
public synchronized void serialEvent(SerialPortEvent serialPortEvent) {
    if (serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            if (input.ready()) {
                processData(input.readLine());
            }

        } catch (Exception e) {
            log.error("Error ", e);
        }
    }
}
项目:blackbird    文件:RXTXSerialPort.java   
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE)
        fireDataAvailable();
    else
        System.out.println("other event");
}
项目:GazePlay    文件:ArduinoSerialCommunication.java   
/**
 * Handle an event on the serial port. Read the data and print it.
 */
public synchronized void serialEvent(SerialPortEvent oEvent) {
    if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            String inputLine = input.readLine();
            log.info("Reçoit : " + inputLine);
        } catch (Exception e) {
            log.error("error 2 " + e.toString());
        }
    }
    // Ignore all the other eventTypes, but you should consider the other ones.
}
项目:jaer    文件:StreamCommand.java   
@Override
  public void serialEvent(SerialPortEvent spe)
  {
      // we're only interested in streamed data
      if (spe.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
    try
          {
              if (synced) {
            // either synced data (messages), or...
                  continueMessage();
        }
        else {
            // ...some unsynced characters; see setSynced()
                  while(true)
                  {
                      int i= saveRead();
                      if (i == -1) {
                    break;
                }
                      listener.unsyncedChar((char) i);
                  }
        }
          } catch (IOException ex) {
              listener.streamingError(StreamCommandListener.STREAMING_IO_EXCEPTION,
                      "IOException while receiving (see log) : " + ex);
          }
}
  }
项目:ebus    文件:EBusSerialNRJavaSerialConnection.java   
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        synchronized (inputStream) {
            inputStream.notifyAll();
        }
    }
}
项目:ArduinoDB    文件:SerialReader.java   
/**
 * Handle an event on the serial port. Read the data and print it.
 */
public synchronized void serialEvent(SerialPortEvent oEvent) {
    //System.out.println("Serial event successfully triggered");

           if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
                               String inputLine = null;
                               if(input.ready()){
            inputLine=input.readLine();
            System.out.println(inputLine);

                               //StringTokenizer to read an entire line of tata. It is expected that successive
                               //reads are in successive lines. 
                               StringTokenizer stringTokenizer = new StringTokenizer(inputLine,",");

                               String arduinoID = stringTokenizer.nextToken();
                               statement.setString(1,arduinoID);
                               System.out.println(arduinoID);
                               String humidity = stringTokenizer.nextToken();
                               System.out.println(humidity);
                               statement.setString(2,humidity);                                
                               String temperature = stringTokenizer.nextToken();
                               System.out.println(temperature);
                               statement.setString(3,temperature);
                               statement.executeUpdate();



                               }
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
    // Ignore all the other eventTypes, but you should consider the other ones.
}
项目:project-bianca    文件:PortRXTX.java   
/**
 * rxtxlib's "serial event handling" - would be more simple if they just
 * implemented InputStream correctly :P
 */
@Override
public void serialEvent(SerialPortEvent event) {
    log.info(String.format("rxtx event on port %s", portName));

    Integer newByte = -1;

    try {
        while (listening && ((newByte = read()) > -1)) {
            // listener.onByte(newByte); // <-- FIXME ?? onMsg() < ???
            for (String key : listeners.keySet()) {
                listeners.get(key).onByte(newByte);
            }
            ++stats.total;
            if (stats.total % stats.interval == 0) {
                stats.ts = System.currentTimeMillis();
                log.error(String.format("===stats - dequeued total %d - %d bytes in %d ms %d Kbps", stats.total, stats.interval, stats.ts - stats.lastTS, 8 * stats.interval
                        / (stats.ts - stats.lastTS)));
                // publishQueueStats(stats);
                stats.lastTS = stats.ts;
            }
            // log.info(String.format("%d",newByte));
            // rxtx leave whenever it has no new data to delver with a -1
            // which is not what an Java InputStream is supposed to do.. 
        }

        log.info(String.format("%d",newByte));
    } catch (Exception e) {
        ++rxErrors;
        Logging.logError(e);
    } 

}
项目:EmbeddedMonitor    文件:WirelessLCDSystem.java   
@Override
public void serialEvent(SerialPortEvent spe) {
    if (SerialPortEvent.DATA_AVAILABLE == spe.getEventType()) {
        // avoid the high frequency of the notifying
        // just check the read thread first 
        // and then choose to restart or ignore the notity
        if((null != serialReadThread) && serialReadThread.isAlive()){
            // do nothing here
            // or you can close the notify here
            // and open when the thread is done
            serialPort.notifyOnDataAvailable(false);
        }else{
            // you must re-run the thread
            // here you need only one method but using thread.start() with two
            // same thread
            // here you can use start, because we already know that the 
            // thread is dead
            // here you can't use the start method again 
            // the data is already exist,
            // so just use run to make it run again
            //srialReadThread.start();
            // you can never restart a thread again
            serialReadThread = new Thread(new SerialReader(serialIn)); 
            // start it
            serialReadThread.start();
        }
    }// end if
}
项目:openhab-hdl    文件:OceanicBinding.java   
public void serialEvent(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:
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(inputStream), 32*1024*1024);
            if(br.ready()) {
                String line = br.readLine();
                line = StringUtils.chomp(line);
                line = line.replace(",",".");
                response = line.trim();
            }
        } catch (IOException e) {
            logger.debug("Error receiving data on serial port {}: {}", new Object[] { port, e.getMessage() });
        }
        break;
    }
}
项目:openhab-hdl    文件:ZWaveController.java   
@Override
public void serialEvent(SerialPortEvent arg0) {
    try {
        logger.trace("RXTX library CPU load workaround, sleep forever");
        Thread.sleep(Long.MAX_VALUE);
    } catch (InterruptedException e) {
    }
}
项目:openhab-hdl    文件:NikobusInterface.java   
/**
 * {@inheritDoc}
 * 
 * Any data received from a serial event, is immediately passed on to the
 * command receiver thread.
 */
@Override
public void serialEvent(SerialPortEvent event) {

    if (event.getEventType() != SerialPortEvent.DATA_AVAILABLE) {
        return;
    }

    InputStream is = null;

    try {

        lastEventTimestamp = System.currentTimeMillis();
        is = port.getInputStream();

        int available = is.available();
        if (available == 0) {
            log.warn("Received data available event, but no data was found!");
            return;
        }

        byte[] buffer = new byte[available];
        is.read(buffer, 0, available);
        bufferQueue.add(buffer);
        if (available != 1 || buffer[0] != 13) {
            // don't print single CR's in log..
            log.trace("Received: {}", new String(buffer));
        }
    } catch (IOException e) {
        log.error("Error receiving data on serial port {}: {}",
                port.getName(), e.getMessage());
    }

}
项目:openhab-hdl    文件:RFXComSerialConnector.java   
@Override
public void serialEvent(SerialPortEvent arg0) {
    try {
        logger.trace("RXTX library CPU load workaround, sleep forever");
        sleep(Long.MAX_VALUE);
    } catch (InterruptedException e) {
    }
}
项目:openhab-hdl    文件:EpsonProjectorSerialConnector.java   
@Override
public void serialEvent(SerialPortEvent arg0) {
    try {
        logger.trace("RXTX library CPU load workaround, sleep forever");
        Thread.sleep(Long.MAX_VALUE);
    } catch (InterruptedException e) {
    }
}
项目:openhab-hdl    文件:SerialConnector.java   
/**
 * Receives Serial Port Events and reads Serial Port Data
 */ 
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);
         }
     }
 }
项目:openhab-hdl    文件:SerialConnector.java   
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            String data = bReader.readLine();
            logger.trace("Received raw message to process: '{}'", data);
            notifyEventProcessors(data);
        } catch (IOException e) {
            logger.error("Exception while reading from serial port", e);
        }
    }
}
项目:openhab-hdl    文件:CULSerialHandlerImpl.java   
@Override
public void serialEvent(SerialPortEvent event) {
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            processNextLine();
        } catch (CULCommunicationException e) {
            log.error("Serial CUL connection read failed for " + deviceName);
        }
    }
}
项目:Chequers    文件:UsbComm.java   
public void serialEvent(SerialPortEvent evt) {
    // if data available on serial port
    if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            String inputLine = input.readLine();
            System.out.println("Recieved: " + inputLine);

            if (inputLine.equals("FINISHED"))
                System.out.println("ACCORDING TO THE ARDUINO, ARM MOVEMENT IS COMPLETE");

        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }   
}
项目:Brino    文件:CommPortUtils.java   
public void serialEvent(SerialPortEvent event) {
//      byte[] readBuffer = new byte[2000];
        try {
            while (inStream.available() > 0) {
//              inStream.read(readBuffer);
                SerialMonitor.display(String.valueOf((char) inStream.read()));
            }
//          SerialMonitor.display(new String(readBuffer));
        } catch (IOException ioe) {
            System.out.println("Exception " + ioe);
            ioe.printStackTrace();
        } 
    }
项目:mytourbook    文件:PortListener.java   
public void serialEvent(SerialPortEvent portEvent) {

        // Determine type of event
        switch (portEvent.getEventType()) {

        case SerialPortEvent.DATA_AVAILABLE:

            int iData = 0;

            // Read data until -1 is returned
            while (iData != -1) {
                try {

                    iData = fInStream.read();

                    if (iData != -1) {
                        fDataListener.dataArrived(iData & 0xff);
                    }

                } catch (IOException ex) {
                    System.out.println(ex);
                    return;
                }
            }

            break;
        }
    }
项目:arduino-remote-uploader    文件:NordicSketchUploader.java   
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;
          }
}
项目:arduino-remote-uploader    文件:SerialSketchUploader.java   
public void serialEvent(SerialPortEvent event) {
    try {
        handleSerial(event);
    } catch (Throwable t) {
        t.printStackTrace();
    }
}
项目:arduino-remote-uploader    文件:SerialSketchUploader.java   
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;
          }
}
项目:iot-libelium-lora-gateway    文件:PortHandler.java   
/**
 * 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());
    }

}
项目:travelingsales    文件:GpsFinder.java   
/**
 * 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;
    }
}
项目:openhab2-addons    文件:MeteostickBridgeHandler.java   
@Override
public void serialEvent(SerialPortEvent arg0) {
    try {
        logger.trace("RXTX library CPU load workaround, sleep forever");
        Thread.sleep(Long.MAX_VALUE);
    } catch (InterruptedException e) {
    }
}
项目:openhab2-addons    文件:SerialThingHandler.java   
@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) {
    }
}
项目:openhab2-addons    文件:RFXComSerialConnector.java   
@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) {
    }
}
项目:openhab2-addons    文件:RS232Connection.java   
@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;
    }
}
项目:openhab2-addons    文件:IT100BridgeHandler.java   
/**
 * 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());
        }
    }
}