Schleifen für Sensorabfrage

Hallo,

upps, da war ich mal wieder zu schnell. Der Rückgabewert muss dem Datentyp entsprechen. Das struct kann man bestimmt auch als struct Zeiger zurückgeben. Welcher Datentyp das genau ist, kann ich nicht sagen, müsstest du nachschauen was die GPS Funktion macht. Um ein Problem mit dem Intervall Return zu umgehen, bauen wir einfach die Funktion um. Return weg, eine Klammer mehr.

Man könnte (ungetestet) es vielleicht so machen. Den Code NULL musste dann wiederrum beim Aufrufer auswerten. Es gibt laut meines Wissens 3 definierte Rückgabewerte für solche Dinge. Weiß aber im Moment nicht wo ich das nachschlagen muss. ERROR ist glaube ich auch einer davon. Ich sehe aber das es immer komplizierter wird. Wäre es nicht besser wenn du dir eine Datenstruktur aufbaust und die Funktion aktualisiert immer nur den einen Wert? Ohne Rückgabewert der Funktion.

struct checkGPS ()
{  
 
  static unsigned long last_ms = 0;
  const unsigned int INTERVAL = 5000;
  
  if ( (millis() - last_ms > INTERVAL) {    
    last_ms = millis(); 
    Serial.println("checkGPS()");
    if (feedgps()) {
      return gpsdump(gps);
    }
    else {
      return NULL;
    }
  }
}