Подтверждение сообщения, полученного от sendCustomMessage () от Ardulink через serial.read ()

1

Я пытаюсь отправить строку в arduino с помощью библиотеки Ardulink

link.sendCustomMessage();

и я хотел бы, чтобы arduino подтвердил это сообщение, отправив его мне через Serial.println(); Однако я ничего не получаю от Ардуино.

После этого кода на ПК, измененном из учебника ardulink:

открытый класс 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
    Есть ли обновление для этого вопроса? У меня такая же проблема. Благодарю.
Теги:
arduino
serial-port

1 ответ

0

вам нужно прекратить сообщение от Arduino до Ardulink с помощью Serial.write(255);

В противном случае Ardulink хранит байты в буфере, думая, что сообщение не закончено и не обрабатывает его. Когда буфер заполнен, возникает исключение.

Чтобы увидеть сообщение назад, вы должны добавить Raw Listener к вашему Java-коду.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню