我想在java中使用RxTx通过串口检测设备

我想在java中使用RxTx通过串口检测设备,设备被编程,如果它从计算机收到一个特定的单词,它将回复“ok”,如果计算机收到ok ..它将停止发送单词并突出显示设备已连接。 请帮我。 还有一件事……我必须检查每个端口..请您编写一个自动循环通过端口的方法,直到检测到设备。 我的代码即使在无限循环中也只发送一次该单词。 码:

private void cb1KeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: try{ l1.setText("Port: "+cb1.getSelectedItem().toString()+" is Selected"); selectedPort = cb1.getSelectedItem().toString();// TODO add your handling code here rs.connect(selectedPort); for(;;) { CommPortSender.send(new ProtocolImpl().getMessage("KITM"));//send message if(pi.rmess().equalsIgnoreCase("OK"))//received message { l1.setText("The Device is attached to: "+selectedPort); CommPortSender.send(new ProtocolImpl().getMessage("OK ACK"));//send message break; } else { rs.disconnect(selectedPort); continue; } } } catch(Exception e){} } 

  static void listPorts() { java.util.Enumeration portEnum = CommPortIdentifier.getPortIdentifiers(); while ( portEnum.hasMoreElements() ) { CommPortIdentifier portIdentifier = portEnum.nextElement(); System.out.println(portIdentifier.getName() + " - " + getPortTypeName(portIdentifier.getPortType()) ); } } static String getPortTypeName ( int portType ) { switch ( portType ) { case CommPortIdentifier.PORT_I2C: return "I2C"; case CommPortIdentifier.PORT_PARALLEL: return "Parallel"; case CommPortIdentifier.PORT_RAW: return "Raw"; case CommPortIdentifier.PORT_RS485: return "RS485"; case CommPortIdentifier.PORT_SERIAL: return "Serial"; default: return "unknown type"; } } 

5分钟的谷歌搜索可以告诉你同样的事情。