Hallo Leute,
Ich habe mir einen Web-Server mit AJAX erstellt, in dem ich mir einen parser geschrieben habe, um an die Daten vom Browser zu kommen. Eine Zeile lautet z.b.:
if (StrContains(serialBuffer, “LED1”)){ …}
und funktioniert auf dem Web-Server wunderbar.
jetzt schicke ich meine Daten mit
Serial.print " &LED1=";
Serial.print"LED_state[0]";
Serial.print " &LED2=";
Serial.print"LED_state[1]";
Serial.print " &LED3=";
Serial.print"LED_state[2]";
Serial.print " &LED4=";
Serial.print"LED_state[3]";
Serial.println();
über RX/TX weiter an einen zweiten Arduino. Auf diesem möchte ich jetzt zum Daten auslesen meinen vorhandenen parser verwenden um wieder an die Daten zu kommen.
Die empfangenen Daten lasse ich mir auf der Empfängerseite mit folgendem Code anzeigen:
#include <SPI.h>
const int SERIAL_BUFFER_SIZE = 200;
char serialBuffer[SERIAL_BUFFER_SIZE];
bool readSerial(Stream& stream)
{
static byte index;
while (stream.available())
{
char c = stream.read();
if (c >= 32 && index < SERIAL_BUFFER_SIZE - 1)
{
serialBuffer[index++] = c;
}
else if (c == '\n' && index > 0)
{
serialBuffer[index] = '\0';
index = 0;
return true;
}
}
return false;
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (readSerial(Serial))
{
Serial.print("Read: ");
Serial.println(serialBuffer);
}
parseSerial(serialBuffer);
}
void parseSerial(char* str)
{
char* ptr = strchr(str, '&');
// if (StrContains(serialBuffer, "LED1"))
{
if (strncasecmp(ptr + 1, "LED1", 4) == 0 )
{
int value_1 = atoi(ptr + 3);
Serial.println(value_1);
}
}
}
Der Empfänger gibt dann zur Kontrolle die empfangenen Daten wie folgt aus
Read: &LED1=0 &LED2=1 &LED3=1 &LED4=0
0
0
0
0
0
.
Wenn ich in dem code die zeile
if (StrContains(serialBuffer, “LED1”))
verwenden möchte, bekomme ich beim kompilieren die Fehlermeldung,
StrContains was not declared in this scope
Auch andere Befehle wie IfCurrentLineIsBlank werden als not declared bemängelt.
warum läuft dieser Befehl auf dem Web-Server, aber auf meinem Empfänger nicht? was muss ich machen, um diesen Befehl verwenden zu können (und damit meinen vorhandenen Parser) bzw. welche alternative gibt es um an meine Daten zu kommen?
vielen dank
celle