Я отправляю данные между телефоном 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;