ok jetzt hab ichs verstanden, ich dachte dir fehlen die Bemerkungen im Programm.
Wenn die Daten eingelesen werden und nicht dem Schema entsprechen , werden diese direkt identisch zurückgegeben. Aber: der Empfänger sendet diese auch wieder zurück als Bestätigung .
Jetzt ist das eien ewige Dauerschleife von senden und zurücksenden.
Lösung soll sein: if der letzte Datensatz dem nächsten Datensatz entspricht nicht senden , else schon .
Mein Versuch schreibt nichts :
//falls dem Schema entspricht//
if ( read_serial() && SB[0]==49 && SB[1]==1 && SB[2]==0 && SB[3]==0 && SB[4]==0 && SB[5]==1 && SB[6]==0&& SB[5]==1 )
{
for ( int i = 0; i <( SBL-2 ) ; i++) {
Serial.write(SB[i]);
}
Serial.write(5);
Serial.write(13);
Serial.write(237); // 237 nicht fix
Serial.write(50);
}
if ( read_serial() ) { // identisch ?
for( int i=0; i <=SBL; i++)
{
lastSB[i] = SB[i]; // Array kopieren SB = Serial byte, SBL= SErial byte Länge
}
for (int i=0; i <=SBL; i++)
{
if( lastSB[i] != SB[i]) // vergleichen
// falls verschieden , Serial byte SB schreiben
{
for (int i = 0; i <= SBL; i++) { // nicht identisch also schreiben
Serial.write(SB[i]);
}
}
}
}
}
bool read_serial() {
static byte index;
while (Serial.available()) {
byte c = Serial.read();
if (c == 49) { // das Starzeichen
index = 0;
}
SB[index] = c;
index++;
if (c == 50) { // das Endzeichen
SBL = index;
return true;
}
}
return false; // Endzeichen noch nicht erreicht
}