Чтение первых нескольких символов из последовательного ввода Arduino - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь разделить четыре функции, сравнивая входные тексты от 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
}

Это дает мне хороший ввод для кнопок, которые отправляют "sp", "cc", "cb" из приложения для Android. Но кнопка, которая отправляет "st", также отправляет время с android, то есть общая строка, которую она отправляет, является "st22: 00: 11" (например, время 22:00:11). Эта строка - то, что я пытаюсь разбить на "st", но мой код не может.

1 Ответ

0 голосов
/ 28 апреля 2018

Предполагая, что код состоит из двух букв в начале входной строки, вы можете подставить входную строку:

String extractedStr = inStr.substring(0,2); //This is the first 2 letters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...