使用RXTX库将串行通信的数据从Arduino存储到Java

时间:2017-12-20 14:39:37

标签: java serialization arduino rxtx

我遇到了RXTX库和Arduino的问题,我正在尝试将从Arduino串行输出获得的变量存储到我在Java代码中声明的变量中,然后使用它来执行某些操作。这是我用来从Arduino读取串行输出的代码的一部分。

现在的问题是,如何从这段代码开始存储数据?

我需要存储从超声波传感器获得的数据,并将其显示在我的Java GUI中。

public void serialEvent(SerialPortEvent evt) {
  if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
    try {
      byte singleData = (byte)input.read();
      if (singleData != NEW_LINE_ASCII) {
        logText = new String(new byte[] { singleData });
        finestra.logArea.append(logText);
      } else {
        finestra.logArea.append("\n");
      }
    }
    catch (Exception e) {
      logText = "Failed to read data. (" + e.toString() + ")";
      finestra.logArea.setForeground(Color.red);
      finestra.logArea.append(logText + "\n");
    }
  }

这段代码只是为了阅读序列中的所有内容。

1 个答案:

答案 0 :(得分:0)

为什么不尝试使用Javino中间件而不是RxTx?

您的Java代码将是这样的:

Javino j = new Javino();
String receivedMessage = new String();
if (j.requestData("COM3","hi")) 
   receivedMessage = j.getData();

你的Arduino代码(在主循环内):

if(javino.availablemsg()){
    msg = javino.getmsg();
}

if (msg=="hi) {
    javino.sendmsg("Your Value");
}

msg = "";

就是这样。