Hallo zusammen,
ich bin gerade am testen meiner Datenkommunikation via Serial. Da mag was nicht so ganz hinhauen.
Ich verwende diesen Code zum empfangen:
// Serialempfänger
bool readSerial()
{
static byte index;
if(Serial.available())
{
char c = Serial.read();
if(c >= '0' && c <= '9' && index < MAX_NUMBERS)
{
conSerial[index] = conSerial[index] * 10 + c - '0';
}
else if (c == '#')
{
conSerial[0] = 0;
}
else if(c == ',' && index < MAX_NUMBERS)
{
index++;
conSerial[index] = 0;
}
else if(c == '\n')
{
index = 0;
return true;
}
}
return false;
}
Dieser steckt sowohl in meinem Steuergerät, als auch in den Terminals. In den Terminals, so hab ich's bereits getestet, funktioniert es mehr oder weniger einwandfrei (die Fehler liegen noch bei mir in den Feinheiten^^).
Beim Steuergerät aber funktioniert exakt der gleiche Code nicht!
Ich frag bei beiden ab:
if (readSerial())
Und danach dann immer über
if (conSerial[x] == x)
Mein Steuergerät hatte die ID "000" verpasst gekriegt. Deswegen dachte ich, dass es deshalb vllt. nicht reagiert. Also mal auf "998" umgestiegen (alles im Serial Monitor). Ergebnis aber das gleiche. Also mal überprüft, ob's am ansprechen oder empfangen liegt. Ergebnis: Das Steuergerät empfängt nicht mal was!
(Überprüft folgendermaßen:
if (readSerial())
{
lcd.print("Hallo");
}
)
Das ist gerade erst mal das größere Problem, um die anderen kann ich mich danach kümmern.
Aber ich bin echt planlos, was da schief laufen könnte.
In Serial Monitor schreib ich was a la:
"#998,21,2"
Ist dafür da, um die ID's der Terminals einzutragen und auf Vollständigkeit zu prüfen. Aber er empfängt eben nichts.
Ich hoffe, ihr könnt mir helfen.
LG
Fipsi