ArrayIndexOutOfBoundsException
означает, что вы пытаетесь получить доступ к индексу массива, который не существует или не связан с границей этого массива. Индексы массива начинаются с 0 и заканчиваются на длину - 1.
В вашем случае
for(int i = 0; i<=name.length; i++) {
System.out.print(name[i] +'\n'); // i goes from 0 to length, Not correct
}
ArrayIndexOutOfBoundsException
происходит, когда вы пытаетесь получить доступ к элементу index.length, который делает не существует (индекс массива заканчивается на -1). просто заменяя & lt; = с & lt; решит эту проблему.
for(int i = 0; i < name.length; i++) {
System.out.print(name[i] +'\n'); // i goes from 0 to length - 1, Correct
}
Следуя совету Дэвида Хеффернана, я пошел и пересмотрел свои типы данных. Попытка собрать двоичные данные из символов не работает, потому что не все значения от 0 до 255 могут быть правильно представлены. Вы теряете данные по пути, в основном. Тем более что ваши данные представлены 4 байтами за раз.
Решением для меня было использование компонента Async Professional вместо библиотеки Denjan Comport lib. Он лучше обрабатывает потоки данных и имеет встроенный журнал, который я мог бы использовать, чтобы выяснить, как интерпретировать потоковые данные с инструмента. Это также лучше задокументировано. Итак, если вы новичок в последовательной связи (как и я), лучше попробуйте.