eTimer.isActive Verständnisfrage

  • Moin,


    wenn ich mit isActive abfrage, ob ein Timer noch läuft, bekomme ich immer ein True. Ist das gewollt? :loudly_crying_face:


    Code
    if self.songChangeTimer.isActive():# prevent enigma2 hickups :-)
    	logger.debug('Player]playSong]songChangeTimer.isActive, cancel!')
    	self.songChangeTimer.stop()
    else:
    	self.playSongNow(slentry)

    Der Aufruf lautet


    Code
    self.songChangeTimer.start(1000, 1)

    Die meisten Probleme macht man sich selber!

    3 Mal editiert, zuletzt von Bobo71 () aus folgendem Grund: fehlende Klammer gesetzt

  • gibt es dafür nicht .isRunning ?


    edit nach Hinweis von 'dre':
    die obige Anmerkung ist falsch: .isRunning gilt nur für Aufnahmetimer.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    Einmal editiert, zuletzt von Sven H ()

  • Hallo Ghost,


    die Klammern habe ich nur hier beim posten vergessen . Hab sie angefügt. :smiling_face:
    Mir ist nur im log aufgefallen, das wenn der Timer gar nicht läuft, trotzdem das stop aufgerufen wird. Daher meine Frage. :smiling_face:

    Die meisten Probleme macht man sich selber!

  • Ich möchte abfragen, ob der besagte Timer gerade ausgeführt wird(läuft). Wenn ja, dann soll er gestoppt werden. Ansonsten soll eine andere Funktion aufgerufen werden.
    Ich habe den Code nochmals aktualisiert.

    Die meisten Probleme macht man sich selber!

  • Und genau das funktioniert bei mir nicht. Es wird auch wenn der Timer nicht läuft ein True zurück gegeben. :frowning_face: Das ist der eigentliche Grund für meine Frage.

    Die meisten Probleme macht man sich selber!

    • Offizieller Beitrag

    Ich denke, da hast Du einen Fehler irgendwo in deinem Code.


    Generell funktioniert das. Und der Code ist auch korrekt bei uns.


    Ist nun schwer zu helfen, ohne den gesammten Code zu sehen.


    Irgendwo wird bestimmt der Timer wieder gestartet..


    Bau halt mal überall print's ein.. da wo du den Timer erzeugst... da wo du start aufrufst... da wo du stop aufrufst...


    Also direkt nach dem erzeugen des Timers ... und vor dem Aufrufen von start wird isActive auf jedenfall False liefern. Da bin ich sehr sehr sicher :winking_face:


    cu