Ankündigung

Einklappen
Keine Ankündigung bisher.

Debugging...

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

    #31
    PHP-Code:
    function LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,"LBSLBSID($id): ".$a);} 
    ...sollte funktionieren. LBSID wird natürlich erst nach dem Update durch die ID ersetzt - aktuell wird halt etwas wie "LBSLBSID(1234): ..." angezeigt werden.
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      #32
      Nee, da wird leider nichts ins TraceLog geschrieben … auch nicht wenn ich es ohne der Hilfsfunktion versuche … da scheint ein anderes Problemchen irgendwo zu sein :-(

      PHP-Code:
      ###[EXEC]###

      <?php

      require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
      sql_connect();

      if (
      $E=getLogicEingangDataAll($id)) {

          
      $str file_get_contents('http://10.0.100.150/%7Edariusz/track.json');
          
      $track json_decode($str,true);

          
      setLogicLinkAusgang($id,1,$track['name']);
              
      writeToTraceLog(0,true,'iTunes | A01 | Titel: '.$track['name']);
              
      //         if ($E[2]['value'] == 1) {LB_LBSID_DEBUG($id,'iTunes | A01 | Titel: '.$track['name']);}
          
          
      setLogicLinkAusgang($id,2,$track['album']);
          
      setLogicLinkAusgang($id,3,$track['genre']);
          
      setLogicLinkAusgang($id,4,$track['composer']);
          
      setLogicLinkAusgang($id,5,$track['artist']);
      }

      sql_disconnect();

      function 
      LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);}

      ?>

      ###[/EXEC]###
      Danke und LG, Dariusz
      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

      Kommentar


        #33
        Ich habe keine Idee mehr warum das Debuging nicht geht … Ich dachte ich weiß was ich mache :-(

        LBS-Teil:
        PHP-Code:
        <?php

        function LB_LBSID($id) {
        //     function LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);}

            
        if ($E=getLogicEingangDataAll($id)) {
                if (
        $E[1]['refresh']) {
        //          if ($E[2]['value'] == 1) {LB_LBSID_DEBUG($id,'iTunes | E01 | Trigger Aktiv: '.$E[1]['value']);}
                    
        writeToTraceLog(0,true,'iTunes | E01 | Trigger Aktiv: '.$E[1]['value']);
                    
        writeToTraceLog(0,true,'iTunes | E02 | Debug Aktiv: '.$E[2]['value']);
                        
        callLogicFunctionExec(LBSID,$id);
                    
                }
            }
        }

        Der EXEC-Teil:
        PHP-Code:
        <?php

        require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
        sql_connect();

        if (
        $E=getLogicEingangDataAll($id)) {

            
        $str file_get_contents('http://10.0.100.150/%7Edariusz/track.json');
            
        $track json_decode($str,true);

            
        setLogicLinkAusgang($id,1,$track['name']);
                
        writeToTraceLog(0,true,'iTunes | A01 | Titel: '.$track['name']);
                
        writeToTraceLog(0,true,'URL= '.$str);
                
        //         if ($E[2]['value'] == 1) {LB_LBSID_DEBUG($id,'iTunes | A01 | Titel: '.$track['name']);}
            
            
        setLogicLinkAusgang($id,2,$track['album']);
            
        setLogicLinkAusgang($id,3,$track['genre']);
            
        setLogicLinkAusgang($id,4,$track['composer']);
            
        setLogicLinkAusgang($id,5,$track['artist']);
        }

        sql_disconnect();

        function 
        LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);}

        ?>
        Danke und LG, Dariusz
        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

        Kommentar


          #34
          So, warum auch immer, der EXEC-Teil läuft - sowohl mit der Hilfsfunktion wie auch Klassisch ...

          2016-03-04 23:56:28 100519 EXEC 9114 iTunes | A01 | Titel: Sur le fil
          2016-03-04 23:56:28 100676 EXEC 9114 LBSLBSID(
          $id): iTunes | A01 | Titel: Sur le fil

          PHP-Code:
          <?php

          require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
          sql_connect();

          if (
          $E=getLogicEingangDataAll($id)) {

              
          $str file_get_contents('http://10.0.100.150/%7Edariusz/track.json');
              
          $track json_decode($str,true);

              
          setLogicLinkAusgang($id,1,$track['name']);
                  
          writeToTraceLog(0,true,'iTunes | A01 | Titel: '.$track['name']);
          //      if ($E[2]['value'] == 1) {
                  
          LB_LBSID_DEBUG($id,'iTunes | A01 | Titel: '.$track['name']);
              
              
          setLogicLinkAusgang($id,2,$track['album']);
              
          setLogicLinkAusgang($id,3,$track['genre']);
              
          setLogicLinkAusgang($id,4,$track['composer']);
              
          setLogicLinkAusgang($id,5,$track['artist']);
          }

          sql_disconnect();

          function 
          LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);}

          ?>



          Wenn ich in LBS-Tiel die Hilfsvariable aktiviere, dann FATAL-ERROR …. übersehe ich etwas ?

          PHP-Code:
          <?php

          function LB_LBSID($id) {
              function 
          LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);}

              if (
          $E=getLogicEingangDataAll($id)) {
                  if (
          $E[1]['refresh']) {
                      if (
          $E[2]['value'] == 1) {LB_LBSID_DEBUG($id,'iTunes | E01 | Trigger Aktiv: '.$E[1]['value']);}
                      
          writeToTraceLog(0,true,'iTunes | E01 | Trigger Aktiv: '.$E[1]['value']);
                      
          writeToTraceLog(0,true,'iTunes | E02 | Debug Aktiv: '.$E[2]['value']);
                          
          callLogicFunctionExec(LBSID,$id);
                      
                  }
              }
          }

          Nur klassisch erhalte ich in LBS-Teil:

          2016-03-04 23:56:28 076963 EXEC 9024 iTunes | E01 | Trigger Aktiv: 23:56:28
          2016-03-04 23:56:28 077038 EXEC 9024 iTunes | E02 | Debug Aktiv: 1



          DANKE vorab !
          Zuletzt geändert von coliflower; 05.03.2016, 00:06.
          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar


            #35
            Zitat von coliflower Beitrag anzeigen
            DANKE vorab !
            Du hast wieder eine Funktion innerhalb einer anderen Funktion definiert... schieb mal die Zeile:
            function LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);}
            irgendwo ans Ende... vor das abschliessende "?>" zB.

            Kommentar


              #36
              ...und:

              Nicht

              PHP-Code:
              function LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID($id): '.$a);} 
              sondern

              PHP-Code:
              function LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,"LBSLBSID($id): ".$a);} 
              (doppelte Anführungszeichen)
              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

              Kommentar


                #37
                Zitat von wintermute Beitrag anzeigen
                Du hast wieder eine Funktion innerhalb einer anderen Funktion definiert... schieb mal die Zeile… irgendwo ans Ende... vor das abschliessende "?>" zB.
                Ich … hab wieder nicht daran gedacht es in LBS-Teil ans Ende zu stellen, in den EXEC-Teil habe ich es ja eh getan ...

                doppelte Anführungszeichen
                Warum ist das hier so wichtig ?
                Ich habe diese bis jetzt übersehen - mea culpa :-(
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  #38
                  Zitat von coliflower Beitrag anzeigen
                  Warum ist das hier so wichtig ?
                  Weil Variablen in Hochommata (hier $id) nicht ersetzt werden sondern nur wenn diese in Anführungszeichen stehen, siehe z. B. hier.

                  Kommentar


                    #39
                    DANKE !
                    OK, es ging hier um die $id, das habe ich im Gesamtkontext übersehen … und adaptiert :-)

                    EXEC-Teil funktioniert mal ...
                    PHP-Code:
                    function LB_LBSID_DEBUG($id,$a) {writeToTraceLog(0,true,'LBSLBSID('.$id.'): '.$a);} 

                    Diese Schreibweise mit Hochkomma ist mir irgendwie lieber als „Alles“ in die Anführungszeichen zu setzten ..,
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      #40
                      Kann es sein, dass der Name der Hilfsfunktion unterschiedlich im LBS- und EXEC-Teil sein muss ?
                      Danke und LG, Dariusz
                      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                      Kommentar


                        #41
                        Zitat von coliflower Beitrag anzeigen
                        Kann es sein, dass der Name der Hilfsfunktion unterschiedlich im LBS- und EXEC-Teil sein muss ?
                        Nein, das sind verschiedene Namensraeume... wichtig ist nur sicherzustellen, dass im LBS-Teil die Funktionsnamen eindeutig sind (was seitens Edomi ueber das Ersetzen von "LBSID" gewaehrleistet wird - drum sollten eigene Funktionen auch der Nomenklatur "LB_LBSID_funktionsname" entsprechen).

                        Kommentar


                          #42
                          Eigene Funktionen im LBS-Teil müssen(!) sogar dieser Nomenklatur folgen - denn sonst kann es ganz schnell Probleme geben:
                          Wenn Dein LBS die Funktion abc() deklariert und irgendein anderer LBS würde dies auch tun, gäbe es 2 gleiche Funktionen im Kontext der Logikengine. Die Folge wäre ein FatalError...

                          Im EXEC-Teil ist das Wurscht, da dieser vollkommen unabhängig als eigener Prozess läuft.

                          Übrigens ist jetzt das Update 1.22 verfügbar - hier wird LBSID auch im EXEC-Teil "übersetzt"
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            #43
                            1.22 ist drauf und die Übersetzung funkt :-)

                            Hmmm, wenn ich aber die gleiche Hilfsfunktion die in EXEC-Teil läuft auch in LBS anwende, dann gibt es FatalError.
                            Wenn im LBS-Teil die Hilfsfunktion „umbenenne“ dann gibt es kein FatalError und das TraceLog spukt die abgefragten Infos aus ..
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar

                            Lädt...
                            X