GSM-Shield/SIM900 GSM-Modem am Nextion

Hallo,

...Mit dem ersten/letzten CR wird millis() als Start gesetzt.
Auszug:

char c = stream.read();

     if ((c == '\r') && (GSMCR == true)) // GSMCR sorgt dafür das es nur zieht wenn GSM-Shield/SIM900 Modem in Betrieb ist.
      {
       GSMStartMillis = millis();
      }

hier werden die Kommandos des SIM900 "sichtbar" gemacht. Wenn da mehrere Kommandos am Stück kommen,
kann man diese nicht erkennen. Das delay gefällt mir aber überhaupt nicht, da finde ich aber eine Lösung.
Auszug:

if ((c == '\n' || c == '\r') && index > 0)
      {
        serialBuffer[index] = '\0';
        index = 0;
        
       if (GSMCR == true)
       {
       delay(1000); // hier ist das Biest
       }
        return true;
      }

An Serial2 hängt nur das SIM900, wenn sich dort etwas rührt, dann wird am Nextion die richtige Seite dazu
aufgerufen. Diese bleibt dann nach dem letzten CR z.B. 5 stehen.
Auszug:

if ((millis() - GSMStartMillis > GSMIntervall) && (GSMStart == false))
  {
    GSMStartMillis = millis();

    if (zlNexSeite == 0)
    {
      digitalWrite(LEDEB, HIGH);
      Serial3.print("page GSM");
      Serial3.write(NexT, 3);
    }
    else
    {
      digitalWrite(LEDEB, LOW);
      Serial3.print("page Start");
      Serial3.write(NexT, 3);
      GSMStart = true;
    }
  }

}

Das ist bis hierher genau das, was ich wollte. Das GSM-Modem/SIM900 gibt Kommandos und SMS raus,
und im Nextion wird das ganze dann dargestellt.

Als nächtes werde ich im Nextion eine Seite für den Text einer SMS einrichten. Auf dieser Seite
wird dann nur der Text einer SMS angezeigt.
Auf der jetzigen Seite nur die Kommandos. Der erweiterte AT-BefehlsSatz des SIM900 gibt das her
und läßt sich wunderbar auswerten.
Gruß und Spaß
Andreas

So hat es angefangen...

B0.jpg B1.jpg

B2.jpg B3.jpg

B4.jpg B5.jpg

B0.jpg

B1.jpg

B2.jpg

B3.jpg

B4.jpg

B5.jpg