Как я могу получить данные из Arduino, используя Android? - PullRequest
0 голосов
/ 26 апреля 2020

Я создаю приложение в Android для связи с Arduino через USB.

В Android я создаю кнопку для отправки данных в Arduino. Затем Arduino должен ответить на это сообщение и отправить другое сообщение для обработки в функции той же кнопки. Проблема в том, что когда я нажимаю на кнопку, приложение останавливается.

Мой код Arduino:

        void setup()  
    {  
    Serial.begin(9600); 
    }  
    void loop()  
    {
     char c;
     int i = 0;
     if(Serial.available()){
     c=Serial.read();
     if (c == '4'){
      Serial.write("X:100 Y:10");
     }
    }
    }

Определение обратного вызова, который срабатывает при считывании данных в Android:

UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {
    @Override
    public void onReceivedData(byte[] arg0) {
        String data = null;
        try {
            data = new String(arg0, "UTF-8");
            data.concat("\n");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
};

Функция кнопки в Android:

public void goBefore(View view) {
    ssend = "M114"; // send message to update current position
    serialPort.write(ssend.getBytes());
    String[] current_Pos = data.split(" ");

Вы знаете, что я делаю неправильно?

...