蓝牙串行数据:发送100。已接收100。发送105、83或8000等。再次接收100?

时间:2019-06-20 19:44:01

标签: serialization bluetooth arduino deserialization esp32

我正在Android手机和ESP32开发板之间发送数据。我正在从应用程序发送各种命令,以控制连接到ESP32的伺服器。我成功地做到了;很好。

我有大约10个不同的命令,分别用于left(100),right(101),center(103),left max(105)等。当我发送关于left,right或center的命令时,ESP32串行监视器显示正确的价值观。但是当我发送left max时,监视器显示为100,就像在left命令中一样...为什么突然将所有值(例如105、48、8000、600)解释为100?

ESP32 BT 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

同时,我具有ping / pong功能-就像IRC服务器的工作方式一样。这可以完美地工作。这非常令人困惑,因为使用与所有其他数据和错误解释的命令相同的方法来发送值。

        int flagPing = 97;
        int flagPong = 98;

1 个答案:

答案 0 :(得分:0)

我全都是100%。变量声明太相似了,我在这里或那里错过了一个字母,导致重复的命令。