В проекте на 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) процедуры для этого.Я не могу найти ни одного (вероятно, я делаю неправильный поиск), поэтому я застрял здесь.
Этот порядковый номер будет использован позже для проведения (некоторого) большего различия.
Кто-нибудь может помочь?