Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

Mein erstes Plugin: Eigentlich läuft alles, ABER …

  • … ein paar Fragen hätte ich schon noch.


    Ich programmiere mir mein erstes Plugin für den Eigengebrauch und bin schon weit gekommen. Eigenlich läuft schon alles. Es gibt eine config-Klasse mit den Settings (WHERE_PLUGINMENU) und eine autostart/ WHERE_SESSIONSTART Klasse die im Hintergrund läuft und jede Minute etwas überwacht. Das läuft alles. Anhand der Screenshot sieht man, worum es beim Plugin geht.


    Problem:
    Wenn ich in meinen Settings (config.plugins.MyFirstPlugin.enable) das Plugin von "disabled" auf "enabled" schaltet, muss ich ein GUI-Reboot machen damit autostart/WHERE_SESSIONSTART zum Zug kommt und die Hintergrund-Klasse zu laufen beginnt.


    Frage 1:
    Wie kann ich die Hintergrund-Klasse aus der config-Klasse heraus starten (und stoppen), ohne dass ich ein GUI-Reboot machen muss?


    Frage 2:
    Timer starten mit self.timer.start(60000, False). Was passiert bei True? Solche Timer laufen bis man sie stoppt, nicht nur einmal, oder?


    Frage 3:
    Das Plugin soll die Box in den Idle-Mode setzen können. Ich mache das mit Notifications.AddNotificationWithID("Standby", Standby). In mach anderen Plugins habe ich weitere Varianten gesehen.


    Notifications.AddNotificationWithID("Standby", Standby)
    Notifications.AddNotificationWithID("Standby", Standby.Standby) (Elektro-Plugin)
    Notifications.AddNotification(Screens.Standby.Standby) (SleepTimer-Plugin)


    Was sind die Unterschiede?


    Frage 4:
    Zum ganzen Code: Gibt es "unschöne" Sachen und/oder Verbesserungspotential?


    Danke für Antworten.
    Grüsse Schweizerbox

  • Zu deinem Problem: du müsstest doch dann einfach die Funktion aufrufen, die du sonst bei SESSIONSTART ausführst.


    Frage 1: Was ist für dich die Hintergrund-Klasse?


    Frage 2: True müsste bedeuten, dass der Timer genau einmal ausgeführt wird. Bei einem Wert von 60000 würde sich übrigens ein LongTimer empfehlen. Da wird der Wert in Sekunden statt Millisekunden angegeben.


    Frage 3: Da wird Standby wohl einfach unterschiedlich importiert und deshalb auch unterschiedlich übergeben


    Frage 4:
    Also die Auswahlmöglichkeiten würde ich einmal als Variable hinterlegen (z.B. choicesList) und dort die Zeiten hinterlegen. Dann machst du bei ConfigSelection nur noch choices = choicesList. Hab aber sonst nicht im Detail geschaut, was du machst.

  • Danke Dre für die Inputs!
    Ich mache dann mal weiter mit meinen Tests und deinen Vorschlägen und melde mich vermutlich wieder mit weiteren Fragen. Ein LongTimer macht wirklich Sinn hier. So wie ich das bereits gesehen haben werden nur die Sekunden übergeben ohne True/False und ein LongTimer läuft immer nur einmal und muss je Wiederholung neu gestartet werden. Das mit der ChoiceList als Variable macht natürlich Sinn ... wieso kommt man nicht selber drauf?