Спасибо.
Просто не знал про Substring:
StringSubstring Программирование Ардуино
Вроде бы слепил из кусков то что мне нужно, код как пример.
У меня же на деле прога с компа посылает в serial или по udp команду, которую нужно распознать и выполнить.
Вроде бы просто, до тех пор пока не встал вопрос передать цвет для ws2812)
В данном примере если послать строку типа "index.XXXXXX" где "XXXXXX" цвет в HEX, например input.fbdbc8 то в мониторе порта увидим следующее:
Код:
You have entered the data: 123
You have entered the data: index.fbdbc8
Without a prefix 'index.' : fbdbc8
DEC: 16505800
HEX: fbdbc8
Если послать с префиксом неверное значение то вернет 0, если вводить произвольные данные то будет просто возвращать их в монитор - You have entered the data: 123.
Скетч
Код:
void setup(){
Serial.begin(9600);
}
void loop(){
String Var="";
while (!Serial.available()) delay(20);
delay(200);
while (Serial.available())
Var = Var + (char)(Serial.read());
Serial.print("You have entered the data: ");
Serial.println(Var);
Serial.end();
if (Var.indexOf("index.") != -1){
String tmp = Var.substring(6);
Serial.print("Without a prefix 'index.' : ");
Serial.println(tmp);
uint32_t asd = (uint32_t) strtol(&tmp[0], NULL, 16);
Serial.print("DEC: ");
Serial.println(asd);
String zxc = String(asd, HEX);
Serial.print("HEX: ");
Serial.println(zxc);
}
}