Ankündigung

Einklappen
Keine Ankündigung bisher.

core.scheduler verhindern das sich Tasks überholen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [callidomus] core.scheduler verhindern das sich Tasks überholen

    Hi,
    ich hätte eine Frage gibt es eine Möglichkeit über den scheduler zu verhindern das sich Zyklische Task überholen?

    Konkretes Beispiel

    ich will meine StromZähler mit dem DLMS Plugin auslesen da steht folgende Zeile drin.

    self._sh.scheduler.add('DLMS', self._update_values, prio=5, cycle=self._update_cycle)

    Kann man über den scheduler von Aussen verhindern das sich die Tasks überholen oder muss das in der update Routine selbst programmiert werden?

    Viele Grüsse
    Jürgen

    #2
    Hallo Jürgen,

    der Scheduler bekommt an der Stelle nichts von der Ausführdauer mit. Daher nein.

    Es gibt eine neue Funktion delay.

    Code:
    self._core.scheduler.delay('DLMS', self._update_values, seconds=self._update_cycle)
    Die kannst Du in init oder run aufrufen und am Ende Deiner Update-Routine.

    Bis badl

    Marcus

    Kommentar


      #3
      Das Problem ist ja das man am Anfang der Rountine ich auch nicht weiss wielange das Runterladen dauert. Bei 300 Baud ~45s bei 9600 Baud ~5.5s

      Dann muss ich das also Selber in das Plugin reinprogrammieren das sich update beendet wenn ich die Routine noch nicht verlassen habe.

      Viele Grüsse
      Jürgen


      Kommentar

      Lädt...
      X