Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: 19001030: Modbus TCP Master Read

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

    LBS: 19001030: Modbus TCP Master Read

    Hallo zusammen,

    hier mal mein erster LBS um per Modbus System abzufragen.
    Ich nutze es zur Anbindung meiner PV Anlage.

    Würde mich über Feedback freuen

    http://service.knx-user-forum.de/?co...ad&id=19001030


    Ein Problem das ich bei mir habe ist das der LBS spontan manchmal stopped weil er keine Verbindung mit dem Slave mehr bekommt.
    Aber ich denke das ist ein Problem des Slaves und nicht vom LBS...

    Viele Grüße
    Michael
    Gruß
    Michael

    #2
    Morgen,


    Also ich hab den heute morgen mal gtestet mit einem Siemens PAC3200 aber ich komm nicht weiter ich bekomm keine Daten raus.
    Log:
    Code:
     
    2017-03-04 07:50:36 702617 11802 debug EXE19001030 [v0.1]: START ModbusMaster Daemon
    2017-03-04 07:50:36 704135 11802 debug EXE19001030 [v0.1]: v3:9
    2017-03-04 07:50:36 704492 11802 debug EXE19001030 [v0.1]: inputs:
    2017-03-04 07:50:36 704535 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT START ================
    2017-03-04 07:50:36 704579 11802 debug EXE19001030 [v0.1]: ["9"]
    2017-03-04 07:50:36 704615 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT END ================
    2017-03-04 07:50:36 704973 11802 debug EXE19001030 [v0.1]: i:0
    2017-03-04 07:50:36 705277 11802 debug EXE19001030 [v0.1]: input:9
    2017-03-04 07:50:36 705604 11802 debug EXE19001030 [v0.1]: address:30001
    2017-03-04 07:50:36 708374 11802 debug EXE19001030 [v0.1]: Modbus Error:
    2017-03-04 07:50:36 708426 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT START ================
    2017-03-04 07:50:36 708470 11802 debug EXE19001030 [v0.1]: {"host":"10.10.10.1","port":"502","client":"","client_port":"502","status":"readMultipleRegisters: START\nConnected\nPacket: 89f600000006010375310002\nSend\nWait data ... \nData received\nPacket: 89f600000003018302\n","timeout_sec":5,"endianness":0,"socket_protocol":"TCP"}
    2017-03-04 07:50:36 708512 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT END ================
    2017-03-04 07:50:36 708817 11802 debug EXE19001030 [v0.1]: Modbus Error:
    2017-03-04 07:50:36 708857 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT START ================
    2017-03-04 07:50:36 708893 11802 debug EXE19001030 [v0.1]: {}
    2017-03-04 07:50:36 708925 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT END ================
    2017-03-04 07:50:36 709240 11802 debug EXE19001030 [v0.1]: Retries:0
    2017-03-04 07:50:36 709682 11802 debug EXE19001030 [v0.1]: Delay:1000
    2017-03-04 07:50:37 710331 11802 debug EXE19001030 [v0.1]: end of delay
    2017-03-04 07:50:37 710730 11802 debug EXE19001030 [v0.1]: i:0
    2017-03-04 07:50:37 711040 11802 debug EXE19001030 [v0.1]: input:9
    2017-03-04 07:50:37 711364 11802 debug EXE19001030 [v0.1]: address:30001
    2017-03-04 07:50:38 714590 11802 debug EXE19001030 [v0.1]: Modbus Error:
    2017-03-04 07:50:38 714677 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT START ================
    2017-03-04 07:50:38 714721 11802 debug EXE19001030 [v0.1]: {"host":"10.10.10.1","port":"502","client":"","client_port":"502","status":"readMultipleRegisters: START\nConnected\nPacket: f45000000006010375310002\nSend\nWait data ... \nData received\nPacket: f45000000003018302\n","timeout_sec":5,"endianness":0,"socket_protocol":"TCP"}
    2017-03-04 07:50:38 714761 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT END ================
    2017-03-04 07:50:38 715064 11802 debug EXE19001030 [v0.1]: Modbus Error:
    2017-03-04 07:50:38 715102 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT START ================
    2017-03-04 07:50:38 715137 11802 debug EXE19001030 [v0.1]: {}
    2017-03-04 07:50:38 715171 11802 debug EXE19001030 [v0.1]: ================ ARRAY/OBJECT END ================
    2017-03-04 07:50:38 715528 11802 debug EXE19001030 [v0.1]: Retries:1
    2017-03-04 07:50:38 715987 11802 debug EXE19001030 [v0.1]: Delay:1000
    edomimodbus.jpg

    hir ist auch noch die Anleitung von der SiemensPac da gehts so bei seite 42 los mit den Modbus adressen

    es ist bestimmt noch zu früh und hab einfach nur was banales übersehn PS: die php aus der ZIP habe ich alle in den "/usr/local/edomi/main/include/php" ordner gemacht ohne unterordner

    Kommentar


      #3
      Hi,

      ich hab mir mal "kurz" die Anleitung angeschaut und zuerst mal nicht die Addresse 30001 gefunden. Bist du sicher das die richtig ist?
      Du must auch aufpassen das du den Wert mit Funktion 0x3 abrufen kannst weil andere hab ich noch nicht implementiert.

      Dieses Wochenende ist ein bisschen eng aber nächste Woche sollte ich mehr Zeit haben.
      Das mit den includes past so.

      Ich hänge mal eine simple php für die Konsole mit an. Damit kann man am einfachsten Testen.
      Einfach in den gleichen Ordern wie die anderen php files kopieren und mit
      Code:
      php -n modbus.php
      ausführen.
      Du must natürlich die Addressen anpassen und ach eventuell den "require" ab ändern.
      PHP-Code:
          <?php
      //echo dirname(__FILE__) . '/ModbusMaster.php';
          
      require_once dirname(__FILE__) . '/ModbusMaster.php';

          
      // Create Modbus object

          
      $modbus = new ModbusMaster("192.168.1.2""TCP");

          try {
              
      // FC 3
              
      $recData $modbus->readMultipleRegisters(0400821);
          }
          catch (
      Exception $e) {
              
      // Print error information if any
              
      echo $modbus;
              echo 
      $e;
              exit;
          }

          
      // Print status information
          
      echo "</br>Status:</br>" $modbus;

          
      // Print read data
          
      echo "Data:";
          echo 
      PhpType::bytes2signedInt($recData);

          
      //echo "</br>";
          
      ?>
      Gruß
      Michael
      Gruß
      Michael

      Kommentar


        #4
        Okay die datei war schon sehr Hilfreich damit ich eine Antwort bekomme muss ich doch die 300001 durch 1 ersetzen ...
        beim letzen versuch mit IO.Broker gings nur mit 30001
        Jetzt das nächste Problem ich vermute das wird man nicht so einfach lösen können hab mir grad schon nen ast gegoogelt.
        der wert der ankommt ist 32Bit Swap Float ausgegeben wird
        Code:
        4.7325912078122E-8
        da bei Typ nur Float angegeben werden kann ich hab auch nichts gefunden das es swapfloat irgendwie gibt. vllt. hast du noch ne idee denke du steckst noch tiefer in der materie

        Kommentar


          #5
          Ich denke was du mit Swap Float meinst ist die Endianess, das heißt die Bytereihenfolge.
          Das kann per Parameter angegeben werden hab ich aber im LBS nicht implementiert.

          Versuch mal im xxxxxbytes2xxxxxx($recData, true); das Umzuschalten.
          Gruß
          Michael

          Kommentar


            #6
            So ich hab zumindestens ein kleines Fixit für mein Problem wenn du das mid der Endianess iwann mal einfügen solltest müsste man dort vllt. noch etwas "basteln"

            Und Zwar liegt das Problem in der PhpType.php ab zeile 235
            PHP-Code:
                    if ($endianness == 0)
                        
            $value = (($data[3] & 0xFF)<<16) |
                                ((
            $data[2] & 0xFF)<<24) |
                                ((
            $data[1] & 0xFF)) |
                                ((
            $data[0] & 0xFF)<<8);
                    else
                        
            $value = (($data[3] & 0xFF)<<24) |
                                ((
            $data[2] & 0xFF)<<16) |
                                ((
            $data[1] & 0xFF)<<8) |
                                ((
            $data[0] & 0xFF));

                    return 
            $value
            die muss für die Siemens PAC da die daten in Byte Swap oder Float Swap wie man es auch nennen mag sendet ( im io Broker ist es ganz normal unter Float Big Endian) folgendermaßen ändern
            PHP-Code:
                    if ($endianness == 0)
                        
            $value = (($data[3] & 0xFF)) |
                                ((
            $data[2] & 0xFF)<<8) |
                                ((
            $data[1] & 0xFF))<<16 |
                                ((
            $data[0] & 0xFF)<<24);
                    else
                        
            $value = (($data[3] & 0xFF)<<24) |
                                ((
            $data[2] & 0xFF)<<16) |
                                ((
            $data[1] & 0xFF)<<8) |
                                ((
            $data[0] & 0xFF));

                    return 
            $value
            also eigt. nur das die Bytes in der falschen Reihenfolge ankommen ist jetzt die Frage ob das generell ein Implementirungsfehler in der PHPModbus ist oder ob Siemens da ihr eigenes Süppchen Kocht

            Kommentar


              #7
              Hm, sieht so aus also ob bei dir jeweils 2 Bytes "swapped" sind, das sieht eher so aus also ob dieses Float Swat tatsächlich ein eigenes Format ist wenn das im IO Broker schon so drin ist.
              Ich muss jetzt mal in mich gehen wie man das am besten löst... an den Modbus Libs will ich eigentlich wenn möglich nichts ändern... (Mal von meiner kleinen Logging modifikation abgesehen). Entweder das ich die Typumwandlung direkt im LBS mache oder das man die Bytes "roh" ausgibt und sich einenen kleinen LBS baut der das Umwandelt.
              Gruß
              Michael

              Kommentar


                #8
                Ja ist halt die Frage ob das oft verwendet wird. ansonnsten wäre vllt ne einfachere möglichkeit die Modbus Libs zu forken sind ja eigt. nur funktionen die dazu kommen.
                Bin mir auch nicht sicher obs bei Modbus überhaupt noch weitergeht die letze Aktualisierung ist schon 2 Jahre her wenn ich mich nicht verschaut hab

                Wie hast du das eigt. gelöst wenn du mehrer der LBS´s hast die auf ein und die Selbe IP adresse zugreifen? ich bin hingegangen und hab den ersten lbs auf Loop gestellt und den "A9" zum nächsten LBS weitergeleitet den aber nicht auf Loop gestellt.
                Oder war der "A9" für was anderes geplant ?

                Mir ist grad nochn kleiner Bug aufgefallen

                wenn ich "E7" loop auf "0" setze kommt nach jedem start von edomi im log ein fehler

                Code:
                 
                2017-03-07 13:35:08 185054 ? 20251 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001030.php | Fehlercode: 1 | Zeile: 152 | Call to undefined function str() FATALERROR
                Zuletzt geändert von Peterich; 07.03.2017, 13:36.

                Kommentar


                  #9
                  Fehler gefunden und hoffentlich behoben
                  Das mit A9 ist genau so geplant, steht auch in der Hilfe
                  Ich missbrauche ihn auch für einen Watchdog weil meine PV Anlage abundzu ihre 30s hat in der Sie nicht will und ich so den LBS neu starten kann.

                  In v0.2 gibts jetzt den Type 6 als Swap Float, probier mal ob das bei dir so geht.
                  Ich hab auch in V4 die Endianess gepackt, wird aber nur für die Swap Float genutzt.
                  Gruß
                  Michael

                  Kommentar


                    #10
                    Also Funktioniert nicht ich hab mir mal kurz angeschaut was du für ne änderung gemacht hast und auch nen "Fehler" gefunden der hat aber keine abhilfe geschafft.
                    Zeile 340
                    PHP-Code:
                                $ret=PhpType::bytes2string($recData); 
                    müsste
                    PHP-Code:
                                $ret=PhpType::bytes2float($recData); 
                    heißen

                    ich vermute das Problem liegt aber darin das du die bytes im LBS swapst und sie aber auch nochmal im PHPType geswappt werden theoretisch müsste man also den kompletten teil von der phptype bytes2float in den lbs machen nur dafür sind meine php kenntnisse nicht ausreichend das ich das ordentlich da umgesetzt bekomme

                    Denkst du nicht es wäre einfacher die Endianess im LBS einzufügen und in der PhpType.php um eine funktion zu erweitern
                    PHP-Code:
                            if ($endianness == 0)
                                
                    $value = (($data[3] & 0xFF)<<16) |
                                        ((
                    $data[2] & 0xFF)<<24) |
                                        ((
                    $data[1] & 0xFF)) |
                                        ((
                    $data[0] & 0xFF)<<8);
                    if (
                    $endianess == 2)
                    $value = (($data[3] & 0xFF)<<24) |
                                        ((
                    $data[2] & 0xFF)<<16) |
                                        ((
                    $data[1] & 0xFF))<<8|
                                        ((
                    $data[0] & 0xFF));
                            else
                                
                    $value = (($data[3] & 0xFF)<<24) |
                                        ((
                    $data[2] & 0xFF)<<16) |
                                        ((
                    $data[1] & 0xFF)<<8) |
                                        ((
                    $data[0] & 0xFF));

                            return 
                    $value

                    Kommentar


                      #11
                      Das hab ich genau gemacht
                      Hast du auch den Type auf 6 geändert?
                      Fängt alles ab Zeile 341 an
                      Gruß
                      Michael

                      Kommentar


                        #12
                        oh ja ... so geht das wenn man nur überfliegt klar dann stimmt auch zeile 340

                        und ja in 6 hab ich ihn geändert
                        e11.jpg
                        E11 ist schon 6 und die andern noch 2 deshalb steht bei {382} auch so ne Blöde Zahl.

                        ich hab auch Sicherheitshalber schon die kompletten daten von PhpModbus neu auf Edomi kopiert fals es daran liegt hat aber an den Daten nichts geändert.

                        Das Projekt hab ich natürlich auch neu Aktiviert ^^

                        Kommentar


                          #13
                          Hab noch einen kleinen Fehler gefunden...
                          Bitte mal Zeile 342 durch dies hier ersetzten
                          PHP-Code:
                          if (getLogicElementVar($id4) == 0){ 
                          Dann kann über V4 die Endianess bestimmt werden. Ich weiß leider nicht welche du brauchst...

                          Der Code ansich ist nur copy & past von dir und sollte daher eigendlich gehen.

                          Vielleicht mal noch vor dem If in 342 folgendes und dann den Logeintrag posten. Dann kann ich sehen was konkret zurück kommt.
                          PHP-Code:
                            logging($id,"Data before convertion:" $recData); 
                          Hm, gerdae noch ein Typop gefunden, bin mir aber nicht sicher ob der auch im LBS drin ist.
                          Zeile 351 sollte so aus sehen
                          PHP-Code:
                          (($recData[0] & 0xFF)); 
                          Da war bei mir im Variablennamen noch ein zusatz "d".
                          Gruß
                          Michael

                          Kommentar


                            #14
                            Alos Bug´s gefixt

                            Log:
                            Code:
                             
                            2017-03-09 07:11:51 110222 8066 debug EXE19001030 [v0.2]: Data:1130713930
                            2017-03-09 07:11:51 110780 8066 debug EXE19001030 [v0.2]: i:1
                            2017-03-09 07:11:51 111102 8066 debug EXE19001030 [v0.2]: input:13
                            2017-03-09 07:11:51 111434 8066 debug EXE19001030 [v0.2]: address:3
                            2017-03-09 07:11:51 114037 8066 debug EXE19001030 [v0.2]: Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: ee4c00000006010300030002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: ee4c000000070103044364c683[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                            2017-03-09 07:11:51 114505 8066 debug EXE19001030 [v0.2]: Type:2
                            2017-03-09 07:11:51 114856 8066 debug EXE19001030 [v0.2]: Data:228.77543640137
                            2017-03-09 07:11:51 120743 8066 debug EXE19001030 [v0.2]: i:2
                            2017-03-09 07:11:51 121094 8066 debug EXE19001030 [v0.2]: input:17
                            2017-03-09 07:11:51 121433 8066 debug EXE19001030 [v0.2]: address:5
                            2017-03-09 07:11:51 130023 8066 debug EXE19001030 [v0.2]: Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: 077500000006010300050002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: 0775000000070103044365a36e[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                            2017-03-09 07:11:51 130374 8066 debug EXE19001030 [v0.2]: Type:2
                            2017-03-09 07:11:51 130711 8066 debug EXE19001030 [v0.2]: Data:229.6383972168
                            2017-03-09 07:11:51 132672 8066 debug EXE19001030 [v0.2]: i:3
                            2017-03-09 07:11:51 132997 8066 debug EXE19001030 [v0.2]: input:21
                            2017-03-09 07:11:51 133311 8066 debug EXE19001030 [v0.2]: address:55
                            2017-03-09 07:11:51 135833 8066 debug EXE19001030 [v0.2]: Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: 948c00000006010300370002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: 948c000000070103044247e772[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                            2017-03-09 07:11:51 136172 8066 debug EXE19001030 [v0.2]: Type:2
                            2017-03-09 07:11:51 136686 8066 debug EXE19001030 [v0.2]: Data:49.976020812988
                            2017-03-09 07:11:51 137260 8066 debug EXE19001030 [v0.2]: i:4
                            2017-03-09 07:11:51 137597 8066 debug EXE19001030 [v0.2]: input:25
                            2017-03-09 07:11:51 137909 8066 debug EXE19001030 [v0.2]: address:7
                            2017-03-09 07:11:51 140314 8066 debug EXE19001030 [v0.2]: Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: 13ec00000006010300070002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: 13ec0000000701030443c65d0f[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                            2017-03-09 07:11:51 140789 8066 debug EXE19001030 [v0.2]: Type:2
                            2017-03-09 07:11:51 141127 8066 debug EXE19001030 [v0.2]: Data:396.72702026367
                            2017-03-09 07:11:51 142013 8066 debug EXE19001030 [v0.2]: Delay:1000
                            2017-03-09 07:11:52 143095 8066 debug EXE19001030 [v0.2]: end of delay
                            2017-03-09 07:11:52 143511 8066 debug EXE19001030 [v0.2]: i:0
                            2017-03-09 07:11:52 143826 8066 debug EXE19001030 [v0.2]: input:9
                            2017-03-09 07:11:52 144140 8066 debug EXE19001030 [v0.2]: address:1
                            2017-03-09 07:11:52 146856 8066 debug EXE19001030 [v0.2]: Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: 611d00000006010300010002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: 611d000000070103044365511d[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                            2017-03-09 07:11:52 147183 8066 debug EXE19001030 [v0.2]: Type:6
                            2017-03-09 07:11:52 147813 8066 debug EXE19001030 [v0.2]: Data before convertion:
                            2017-03-09 07:11:52 147857 8066 debug EXE19001030 [v0.2]: ================ ARRAY/OBJECT START ================
                            Ergebnis is blöderweise das selbe..

                            Ich hab mich jetzt Hingesetzt und hab mir die PHPType genau Angesehen

                            PHP-Code:
                            <?php
                            class PhpType {
                            public static function 
                            bytes2float($values$endianness 0) {
                            $data = array();
                            $real 0;

                            // Überprüft die Daten auf Korrektheit
                            $data self::checkData($values);
                            // Tauscht die Bytes je nach endianness
                            $real self::combineBytes($data$endianness);
                            // Konvertiert nach Float
                            return (float) self::real2float($real);
                            }
                            private static function 
                            checkData($data) {
                            // Überprüft die daten
                            if (!is_array($data) ||
                            count($data)<||
                            count($data)>||
                            count($data)==3) {
                            throw new 
                            Exception('The input data should be an array of 2 or 4 bytes.');
                            }
                            // Fill the rest of array by zeroes
                            if (count($data) == 2) {
                            $data[2] = 0;
                            $data[3] = 0;
                            }
                            // Check the values to be number
                            if (!is_numeric($data[0]) ||
                            !
                            is_numeric($data[1]) ||
                            !
                            is_numeric($data[2]) ||
                            !
                            is_numeric($data[3])) {
                            throw new 
                            Exception('Data are not numeric or the array keys are not indexed by 0,1,2 and 3');
                            }

                            return 
                            $data;
                            }
                            private static function 
                            combineBytes($data$endianness) {
                            $value 0;
                            // Tauscht die Bytes
                            if ($endianness == 0)
                            $value = (($data[3] & 0xFF)) |
                            ((
                            $data[2] & 0xFF)<<8) |
                            ((
                            $data[1] & 0xFF))<<16|
                            ((
                            $data[0] & 0xFF)<<24);
                            else
                            $value = (($data[3] & 0xFF)<<24) |
                            ((
                            $data[2] & 0xFF)<<16) |
                            ((
                            $data[1] & 0xFF)<<8) |
                            ((
                            $data[0] & 0xFF));

                            return 
                            $value;
                            }
                            private static function 
                            real2float($value) {
                            // Konvertiert zu Float
                            // get unsigned long
                            $ulong pack("L"$value);
                            // set float
                            $float unpack("f"$ulong);

                            return 
                            $float[1];
                            }
                            }
                            ?>]
                            Wenn du das Wirklich in den LBS integrieren willst müsste eigt. der gesamte teile rein mit den "private static function" so wie ich verstanden hab sind die nicht von extern aufrufbar (aber habs auch nicht nachgelesen).
                            Bzw man könnte das reduzieren auf den teil den man wirklich brauch den else teil könnte man weglassen weil man bei Float Byte Swap nur den ersten teil brauch okay das wars eigt. was man weglassen kann das müsste man halt so in den LBS integrieren oder was ich wiederum einfacher finde die endianess in den baustein und ne kleinstmodifikation in der PhpType.php

                            PHP-Code:
                                private static function combineBytes($data$endianness) {
                                    
                            $value 0;
                                    
                            // Combine bytes
                                    
                            if ($endianness == 0)
                                        
                            $value = (($data[3] & 0xFF)<<16) |
                                                ((
                            $data[2] & 0xFF)<<24) |
                                                ((
                            $data[1] & 0xFF)) |
                                                ((
                            $data[0] & 0xFF)<<8);
                                    if (
                            $endianness == 2)
                                        
                            $value = (($data[3] & 0xFF)) |
                                                ((
                            $data[2] & 0xFF)<<8) |
                                                ((
                            $data[1] & 0xFF))<<16|
                                                ((
                            $data[0] & 0xFF)<<24);
                                    if (
                            $endianness == 1)
                                        
                            $value = (($data[3] & 0xFF)<<24) |
                                                ((
                            $data[2] & 0xFF)<<16) |
                                                ((
                            $data[1] & 0xFF)<<8) |
                                                ((
                            $data[0] & 0xFF));

                                    return 
                            $value;
                                } 
                            ergebniss wäre folgendes mod.jpg
                            Zuletzt geändert von Peterich; 09.03.2017, 07:50. Grund: ] vergessen

                            Kommentar


                              #15
                              Ja da ist noch ein Schritt drin den ich übersehen habe, Ich hab nur deinen code kopiert und da ich es ohne Daten nicht testen kann gehofft das es klappt.

                              Irgendwie ist das Log auch komisch, es hört genau da auf wo es interessant für mich währe... Also er fäng tnoch an mit Array start aber dann kommt nichts mehr...
                              Ist das wirklich so im Log? Dann währe nämlich so wie es aussieht der Logger abgeschmiert und dann kommt natürlich auch nichts sinnvolles raus.
                              Wenn du mir mal den Inhalt der 4 Bytes schicken könntest dann kann ich damit mal rumspielen (und natürlich auch was das korrekte Ergebnis sein soll).
                              Gruß
                              Michael

                              Kommentar

                              Lädt...
                              X