2014-12-26 192 views
1

我试图发送一个字符串与Ardulink图书馆确认消息

link.sendCustomMessage(); 

到Arduino的和我想的Arduino通过发送回确认消息给我通过Serial.println();但是我没有从Arduino那里得到任何东西。

继从ardulink教程修改的PC上运行此代码:

公共类InputTest {

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) 

在此先感谢!

+0

这个问题有更新吗?我有同样的问题。谢谢。 – sabrina2020

回答

0

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

否则Ardulink将缓冲区中的字节存储在缓冲区中,认为该消息没有完成并且不处理它。当缓冲区满时,异常提升。

为了查看消息,您必须将Raw Listener添加到Java代码中。