从Arduino串行输入中读取前几个字符

时间:2018-04-28 17:36:41

标签: android string bluetooth arduino

我试图通过比较从android到Arduino的输入文本来分离四个功能。为此我写了一小段代码如下:

//Input string
String inStr = "";
char inChar;
int x = 0;
void setup() {
    Serial.begin(9600);
}

void loop() {
  if(inStr == "st") { Serial.print(inStr); inStr = ""; x = 0; }
  if(inStr == "sp") { Serial.print(inStr); inStr = ""; x = 0; }
  if(inStr == "cc") { Serial.print(inStr); inStr = ""; x = 0; }
  if(inStr == "cb") { Serial.print(inStr); inStr = ""; x = 0; }
}

void serialEvent() {
  while(Serial.available()) {
    if(x < 2) {
       inChar = Serial.read();
       inStr += inChar;
  }
  Serial.print(inStr); //Just to debug
}

它为我从android应用程序发送“sp”,“cc”,“cb”的按钮提供了很好的输入。但是发送“st”的按钮也从android发送时间,即它发送的总字符串是“st22:00:11”(例如,以22:00:11为时间)。这个字符串是我试图打破“st”,但我的代码无法。

1 个答案:

答案 0 :(得分:0)

假设代码在输入字符串的开头只是2个字母,您可以对输入字符串进行子串:

String extractedStr = inStr.substring(0,2); //This is the first 2 letters