- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 Java 编写一个程序,用于处理从 Arduino Uno 接收到的天气数据。它将数据存储在数据库中并将其发送到不同的 api。
我使用 jSerialComm library获取数据,该数据通过串口从 Arduino 发送。我正在使用 SerialPortEvent
,只要 Arduino 发送任何数据,就会触发该事件(我没有使用 InputStream
,因为程序中的其他一些事情不会发生”不再工作了)。
(在程序的main方法中调用enable())
import com.fazecast.jSerialComm.SerialPort;
import com.fazecast.jSerialComm.SerialPortDataListener;
import com.fazecast.jSerialComm.SerialPortEvent;
public class Arduino implements SerialPortDataListener {
@Override
public void enable() {
SerialPort comPort = SerialPort.getCommPort("COM5");
System.out.println(comPort.getDescriptivePortName());
comPort.openPort();
comPort.setBaudRate(9600);
comPort.addDataListener(this);
}
@Override
public int getListeningEvents() {
return SerialPort.LISTENING_EVENT_DATA_AVAILABLE;
}
@Override
public void serialEvent(SerialPortEvent event) {
byte[] newData = event.getReceivedData();
System.out.println(newData);
}
}
(现在只是一个简单的测试程序)
void setup() {
Serial.begin(9600);
}
int i = 0;
void loop() {
Serial.println(i);
i++;
delay(1000);
}
但无论我在做什么,SerialPortEvent.getReceivedData()
方法总是返回 null
,而不是 byte[]
-Object(当 Arduino 发送数据时,每秒打印一次):
User-Specified Port
null
null
null
null
...
我的错误在哪里?
最佳答案
在对你的代码进行了一些修改之后,我已经让它工作了。首先,您需要将 getListeningEvents 方法更新为以下内容,将事件设置为仅在读取数据时触发:
@Override
public int getListeningEvents() {
return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
}
然后,您需要通过将serialEvent 方法更改为以下内容来解释作为字符串返回的字节数组:
@Override
public void serialEvent(SerialPortEvent event) {
byte[] newData = event.getReceivedData();
System.out.print(new String(newData));
}
这将打印带有换行符的数字,因为 Arduino 已经在每个数字后发送换行符。
关于java - jSerialComm - SerialPortEvent.getReceivedData() 在收到 Arduino 消息时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56670047/
我正在使用 jSerialComm 库与 SerialPort 进行通信。我编写了一个 SerialDataListener 来使用重写的 serialEvent 方法读取字节,如下所示: @Over
我正在将 jSerialComm 与我的 Java 应用程序结合使用来从 Arduino 接收数据。然而,Java 程序仅读取传入的“字节”。这不好,因为我的 Arduino 正在打印一个长字符串,而
我有一个微 Controller ,我想要接收和发送数据,所以我尝试使用 UART 端口来看看这是否可行。我为我的微 Controller 编写了一个快速程序,该程序会在 LCD 屏幕上显示 char
我正在编写一个必须与我的 Arduino UNO 通信的 JavaFX 应用程序。为此,我使用 jSerialComm 库。 出于测试目的,我将一个非常简单的草图上传到我的 Arduino,每 2 秒
我试图让 JComboBox 列出所有插入了某些东西的串行端口,但每当我尝试获取端口列表时,我的应用程序都会抛出错误并退出。 错误: Exception in thread "main" java.l
我正在用 Java 编写一个程序,用于处理从 Arduino Uno 接收到的天气数据。它将数据存储在数据库中并将其发送到不同的 api。 我使用 jSerialComm library获取数据,该数
我正在做一个实习项目,在使用 librairie jSerialComm 时尝试将 Java 程序通信到 Arduino Mega 2560 时遇到一些问题。我使用 USB 电缆连接 arduino。
我正在使用 Java 构建一个 POS 桌面应用程序,该应用程序使用热敏打印机打印交易收据。我发现我可以使用 escpos 和 JSerialComm Java API 来实现这一点。我从 GitHu
我是一名优秀的程序员,十分优秀!