Поиск строк в массиве char * - PullRequest
0 голосов
/ 26 августа 2018

В проекте на Arduino Uno мне нужно ввести следующие строки:

DDRS,parm1,parm2,...parm4 <cr>

Количество параметров является переменным, но не менее одного, но не может превышать 4 и разделитель всегда запятая.

Команда может содержать только 3 или 4 символа. ASCII

Я помещаю команды в массив следующим образом:

char* Str[6] = {"ANA", "ANAR, "DDR", "DDRS", "DIGW", "DIGR"};

И читаю строку

void loop()
{
    if (Serial.available() == 0) return;
    String  Line = Serial.readStringUntil('\n');         /* \r ==  CR  */
    int     ComPos = Line.indexOf(',');
    String  Cmd    = Line.substring(0,ComPos);

    /* here for test purposes     */

    Serial.print(Line);
    Serial.print(" ");
    Serial.print(Cmd);
    Serial.println();

    for (int n = 0; n < 6; ++n)
    {
      if (Str[n] == Cmd)
      {
          Serial.print("OK på index[");
          Serial.print(n);
          Serial.print("]");
          Serial.println();
      }
    }
  }
} 

но моя проблема в том, что это не работает.Я думаю, это потому, что Cmd - это строка, а Str - это char*.

Я искал в Интернете (также и в сообществе Arduino) процедуры для этого.Я не могу найти ни одного (вероятно, я делаю неправильный поиск), поэтому я застрял здесь.

Этот порядковый номер будет использован позже для проведения (некоторого) большего различия.

Кто-нибудь может помочь?

...