我正在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?
//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;
答案 0 :(得分:0)
我全都是100%。变量声明太相似了,我在这里或那里错过了一个字母,导致重复的命令。