gpt4 book ai didi

java - 通过serial.read()确认从Ardulink的sendCustomMessage()收到的消息

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:34 24 4
gpt4 key购买 nike

我正在尝试使用 Ardulink 库将字符串发送到 arduino

link.sendCustomMessage();

我希望 arduino 通过 Serial.println() 将消息发送回给我来确认该消息;但是我没有从 Arduino 得到任何东西。

在 PC 上按照根据 ardulink 教程修改的代码进行操作:

公共(public)类输入测试{

public static void main(String[] args) {
Link link = Link.getDefaultInstance();

link.addConnectionListener(new ConnectionListener() {

@Override
public void disconnected(DisconnectionEvent e) {
System.out.println("Board disconnected");
}

@Override
public void connected(ConnectionEvent e) {
System.out.println("Board connected");
}
});

link.connect("COM5");
try {
System.out.println("wait for a while");
Thread.sleep(2000);
System.out.println("proceed");
} catch (InterruptedException e1) {
e1.printStackTrace();
}

System.out.println("start Listening");

while(true)
{
link.sendCustomMessage("omglol");
}
}

}

在 Arduino 上执行以下代码:

String inData;
void setup()
{
Serial.begin(115200);
}
void loop()
{
inData="";
if (Serial.available() > 0)
{
int h=Serial.available(); // if you are getting escape -characters try h--; here
for (int i=0;i<h;i++)
{
inData += (char)Serial.read();
}
// if you are getting escape -characters try Serial.read(); here
}
//print it out
Serial.println(inData);
}

我不知道我这样做是否正确;但我收到错误:

Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 1024 at         org.zu.ardulink.connection.serial.AbstractSerialConnection$SerialReader.run(AbstractSerialConnection.java:190)
at java.lang.Thread.run(Unknown Source)

提前致谢!

最佳答案

您必须使用 Serial.write(255) 终止从 Arduino 到 Ardulink 的消息;

否则 Ardulink 将字节存储在缓冲区中,认为消息尚未完成并且不处理它。当缓冲区已满时,会引发异常。

为了查看返回的消息,您必须将原始监听器添加到 Java 代码中。

关于java - 通过serial.read()确认从Ardulink的sendCustomMessage()收到的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com