Ankündigung

Einklappen
Keine Ankündigung bisher.

Lebensdauer der Variablen in Plugins

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Lebensdauer der Variablen in Plugins

    Ich habe gerade angefangen mich mit Plugins zu beschäftigen. Dabei stellt sich mir gerade die Frage nach der Lebensdauer der Variablen innerhalb der Plugins. Werden die Variablen bei jedem Aufruf neu deklariert oder kann ich auch beim nächsten Aufruf noch auf den Inhalt der Variablen zugreifen?

    Grüße
    Donnerknall

    #2
    Bei jedem Aufruf ist alles neu...
    Also musst Du sie entweder in einer KNX-GA "abspeichern" oder in ein File schreiben.

    Kommentar


      #3
      Ganz so stimmt das nicht!

      Grundsätzlich sind alle Variablen, die man in einem Plugin mit "my $variable" definiert, werden bei jedem Aufruf neu initialisiert.

      Es gibt aber die Möglichkeit, mittels dem hash "plugin_info" Werte global und dauerhaft zu speichern, so dass die Werte bei einem späteren Aufruf noch verfügbar sind (auch nach einem Neustart). Die Verwendung von $plugname bewirkt, dass die Variable in der Übersicht des Plugineditors auch beim jeweiligen Plugin dargestellt wird (sehr zu empfehlen). Man kann aber grundsätzlich beliebige globale Namen vergeben.

      Code:
          $plugin_info{$plugname.'_tlast'} = time();
          $plugin_info{$plugname.'_zaehle_starts'} = 1;
          $plugin_info{$plugname.'_last_status'} = 1;
      Man kann damit auch von anderen Plugins die Werte lesen:
      Code:
      $plugin_info{'NameDesPlugins_last_status'}
      Der Zwischenschritt über eine GA ist nicht empfehlenswert, da sich plugins gegenseitig blockieren können, ein File ist hierfür viel zu kompliziert.

      lg
      Robert

      Kommentar


        #4
        Das klingt ja sehr gut. Muss ich gleich bei Gelegenheit probieren.

        Vielen Dank!

        Kommentar


          #5
          Zitat von Robert_Mini Beitrag anzeigen
          Der Zwischenschritt über eine GA ist nicht empfehlenswert, da sich plugins gegenseitig blockieren können, ein File ist hierfür viel zu kompliziert.
          Das kommt - wie immer - darauf an...
          Wenn ich das Ergebnis sowieso in der Visu brauche, dann ist es auch sinnvoll in der GA abzulegen.
          Und... ich kann damit ein weiteres Skript antriggern.
          Das klappt nicht, wenn ich die Ergebnisse im globalen Hash ablege.

          Viele Grüße
          Joe

          Kommentar


            #6
            Richtig. Deine Bsp. sind Klassiker für die Anwendung einer GA anstelle des globalen hash.
            Robert

            Kommentar

            Lädt...
            X