Последовательные данные Bluetooth: Отправьте 100. Получено 100. Отправьте 105, или 83, или 8000 и т. Д. Получили снова 100? - PullRequest
0 голосов
/ 20 июня 2019

Я отправляю данные между телефоном Android и платой разработки ESP32.Я посылаю различные команды из приложения для управления сервоприводом, подключенным к ESP32.Я успешно сделал это;ну частично.

У меня есть около 10 различных команд для левой (100), правой (101), центральной (103), левой максимальной (105) и т. д. Когда я отправляю команды для левой, правой или центральной части, последовательный монитор ESP32 показывает правильные значения.Но когда я отправляю left max, монитор показывает 100, как в левой команде ... Почему вдруг все значения, такие как 105, 48, 8000, 600, будут интерпретированы как 100?

ESP32BT Library

Android BT Library

        //objects that associate a key with a value for each command
        Command commLeft = new Command();
        Command commCenter = new Command();
.....
        //getting settings and or setting the key/val for the command ovjects
        String valRo = Prefs.getString("Command_Routine", "");
        commRoutine.set(valRo, 102);
        commLeftMed.set(valL + " med", 105);
.....
       //sending the data on android
       bt.send(BigInteger.valueOf(flag).toByteArray(), true);
.....
      //receiving data on ESP32
      if (!pauseToggle && ESP_BT.available()) {
        incoming = ESP_BT.read();

Некоторый вывод:

Simple move: 90 -> 100
Main:10 //CLRF
Main:13 //CLRF
Main:100 //this is what the ESP32 sees. I'm sending 100, 101, or 102
Simple move: 100 -> 110
Main:10
Main:13
Main:100
Simple move: 110 -> 120
Main:10
Main:13
Main:101
Main:10
Main:13
Main:100 //but here im sending 105,106,107,108
Simple move: 90 -> 100
Main:10
Main:13
Main:100
Simple move: 100 -> 110
Main:10
Main:13
Main:100
Simple move: 110 -> 120
Main:10
Main:13
Main:102
Simple move: 120 -> 110
Main:10
Main:13
Main:102
Simple move: 110 -> 100
Main:10
Main:13
Main:102
Simple move: 100 -> 90
Main:10
Main:13

Между тем, у меня есть функция пинг-понганапример, как работает сервер IRC.Это работает без нареканий.Это очень запутанно, потому что значения отправляются теми же методами, что и все остальные данные, и неверно истолкованные команды.

        int flagPing = 97;
        int flagPong = 98;

1 Ответ

0 голосов
/ 21 июня 2019

100% все я.Объявления переменных были слишком похожи, и я пропустил букву здесь или там, что привело к дублированию команд.

...