Товарищи!
к двум пинам ардуино подключил лед ленту, парсю некий пакет данных , в котором указываю для какой ленты предназначен этот пакет (body/foot). не получаетс хранить результат двух парсингов. т.к. один перетирает другой, подскажите что я делаю не так.
вот код
к двум пинам ардуино подключил лед ленту, парсю некий пакет данных , в котором указываю для какой ленты предназначен этот пакет (body/foot). не получаетс хранить результат двух парсингов. т.к. один перетирает другой, подскажите что я делаю не так.
вот код
C++:
#include <AsyncStream.h>
AsyncStream<50> serial(&Serial, ';');
#include <Parser.h>
struct myStruct {
char* nameZone;
char* operation;
char* brightness;
char* speedMove;
char* breathing;
};
myStruct param_body;
myStruct param_foot;
void setup() {
Serial.begin(9600);
}
void loop() {
char str[50];
if (serial.available())
{
strcpy(str, serial.buf);
}
if (strcmp(str, "body") == 0) {
Parser data_body(str, ',');
int am = data_body.split();
param_body.nameZone = data_body[0];
param_body.operation = data_body[1];
param_body.brightness = data_body.getInt(2);
param_body.speedMove = data_body.getInt(3);
param_body.breathing = data_body.getInt(4);
}
else if (strcmp(str, "foot") == 0)
{
Parser data_foot(str, ',');
int am = data_foot.split();
param_foot.nameZone = data_foot[0];
param_foot.operation = data_foot[1];
param_foot.brightness = data_foot.getInt(2);
param_foot.speedMove = data_foot.getInt(3);
param_foot.breathing = data_foot.getInt(4);
}
Serial.println(param_body.nameZone);
Serial.println(param_foot.nameZone);
}