Отправка данных Arduino ADC на планшет Android через последовательный порт USB - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь отправить данные Arduino ADC на планшет Android с помощью последовательной связи USB. Я использую Serial.println() на стороне Arduino. Моя проблема в том, что я не могу декодировать данные, полученные на конце Android.
Например. Предположим, я отправляю Serial.println(768) из arduino, я проверяю свой буфер приема Android, и он показывает (55,54,56,13,10) .

Как я могу декодировать эти данные обратно в 768 значение?

Ответы [ 2 ]

1 голос
/ 04 октября 2019

При просмотре таблицы ASCII вы обнаружите, что

55,54,56,13,10

представляет

"768\n\r"

Большинство языков программирования предоставляют средства для преобразования между байтовыми значениями и символами/ strings с их строковыми библиотеками. Таким образом, вам не нужно реализовывать декодирование самостоятельно.

См. https://howtodoinjava.com/array/convert-byte-array-string-vice-versa/

или UTF-8 байт [] до String

или что-нибудь еще, что вы найдете в Интернете для "байта в строку Android"

0 голосов
/ 04 октября 2019

String rawdata = "";String finaldata = "";UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback () {// Определение обратного вызова, который срабатывает при каждом чтении данных. @Override public void onReceivedData (byte [] arg0) {

        byte[] buffer = arg0;
        for (i =0;i <=(buffer.length-1);i++) {
         if(buffer[i]!= 13) {
             if(buffer[i]== 10){
                 finaldata = rawdata;
                 rawdata = "";
             }else {
                 chdata = (char) buffer[i];
                 rawdata += chdata;
             }
         }

      }

            data = Integer.parseInt(finaldata);

}

...