Обработка данных по Bluetooth

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

Код Arduino:

polojeniye = serv1.CheckPosition();
      Serial.print("drive1=");
      Serial.print(polojeniye);
      Serial.print(",");
      polojeniye = serv2.CheckPosition();
      Serial.print("drive2=");
      Serial.print(polojeniye);
      Serial.print(",");
      polojeniye = serv3.CheckPosition();
      Serial.print("drive3=");
      Serial.print(polojeniye);
      Serial.print(",");
      polojeniye = serv4.CheckPosition();
      Serial.print("drive4=");
      Serial.print(polojeniye);
      Serial.print(",");
      polojeniye = serv5.CheckPosition();
      Serial.print("drive5=");
      Serial.print(polojeniye);
      Serial.print(",");

Код для Android:

h = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
                case RECIEVE_MESSAGE:                                                   // если приняли сообщение в Handler
                    byte[] readBuf = (byte[]) msg.obj;
                    String strIncom = new String(readBuf, 0, msg.arg1);
                    sb.append(strIncom);                                                // формируем строку
                    int endOfLineIndex = sb.indexOf("\r\n");                            // определяем символы конца строки
                    if (endOfLineIndex > 0) {                                            // если встречаем конец строки,
                        String sbprint = sb.substring(0, endOfLineIndex);               // то извлекаем строку
                        sb.delete(0, sb.length());                                      // и очищаем sb
                        String[] result = sbprint.split("\\,");
                        for (int i=0; i<result.length; i++){
                            String[] command = result[i].split("=");
                            if(command[0].compareTo("drive1")==0) {
                                t1.setText(command[1]);             // обновляем TextView
                            }
                            if(command[0].compareTo("drive2")==0) {
                                t2.setText(command[1]);             // обновляем TextView
                            }
                            if(command[0].compareTo("drive3")==0) {
                                t3.setText(command[1]);             // обновляем TextView
                            }
                            if(command[0].compareTo("drive4")==0) {
                                t4.setText(command[1]);             // обновляем TextView
                            }
                            if(command[0].compareTo("drive5")==0) {
                                t5.setText(command[1]);             // обновляем TextView
                            }
                        }
                        //Toast.makeText(getBaseContext(), "Ответ от Arduino: " + sbprint, Toast.LENGTH_SHORT).show();
                        set.setEnabled(true);
                        reset.setEnabled(true);
                        menu.setEnabled(true);
                    }
                    //Log.d(TAG, "...Строка:"+ sb.toString() +  "Байт:" + msg.arg1 + "...");
                    break;
            }
        };
    };

Ответы (1 шт):

Автор решения: Михаил Потемкин

Пробовал отправлять команду в микроконтроллер в логах ответа нет

h = new Handler() {
            public void handleMessage(android.os.Message msg) {
                switch (msg.what) {
                    case RECIEVE_MESSAGE:                                                   // если приняли сообщение в Handler
                        byte[] readBuf = (byte[]) msg.obj;
                        String strIncom = new String(readBuf, 0, msg.arg1);
                        sb.append(strIncom);                                                // формируем строку
                        int endOfLineIndex = sb.indexOf("\r\n");                            // определяем символы конца строки
                        if (endOfLineIndex > 0) {                                            // если встречаем конец строки,
                            String sbprint = sb.substring(0, endOfLineIndex);               // то извлекаем строку
                            sb.delete(0, sb.length());                                      // и очищаем sb
                            Log.d(TAG, "...Строка:"+ sb.toString() +  "Байт:" + msg.arg1 + "...");
                            String[] result = sbprint.split("\\,");
                            for (int i=0; i<result.length; i++){
                                String[] command = result[i].split("=");
                                if(command[0].compareTo("drive1")==0) {
                                    t1.setText(command[1]);             // обновляем TextView
                                }
                                if(command[0].compareTo("drive2")==0) {
                                    t2.setText(command[1]);             // обновляем TextView
                                }
                                if(command[0].compareTo("drive3")==0) {
                                    t3.setText(command[1]);             // обновляем TextView
                                }
                                if(command[0].compareTo("drive4")==0) {
                                    t4.setText(command[1]);             // обновляем TextView
                                }
                                if(command[0].compareTo("drive5")==0) {
                                    t5.setText(command[1]);             // обновляем TextView
                                }
                            }
                            Toast.makeText(getBaseContext(), "Ответ от Arduino: " + sbprint, Toast.LENGTH_SHORT).show();
                            set.setEnabled(true);
                            reset.setEnabled(true);
                            menu.setEnabled(true);
                        }
                        Log.d(TAG, "...Строка:"+ sb.toString() +  "Байт:" + msg.arg1 + "...");
                        break;
                }
            };
        };
reset.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v)
            {
                Log.d(TAG, "Кнопка нажата");
                angle1.setText("");
                angle2.setText("");
                angle3.setText("");
                angle4.setText("");
                angle5.setText("");
                mConnectedThread.write("ATR\r\n");
            }
        });

Вижу только уходящие логи

→ Ссылка