Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - 14byte Text zu 2Byte EIS5 wandeln

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

    HS/FS - √ - 14byte Text zu 2Byte EIS5 wandeln

    Eine Webabfrage liefert einen 14byte Text in Form von 2 hexadezimalen Zahlen, z.B. 2F. Es handelt sich um 2 bytes die ich mit dem Baustein 2byte to 16bit in 16 einzelne Bits wandeln möchte. Leider akzeptiert der genannte Baustein kein 14byte KO an seinem Eingang. Der Text müßte also vor der Verwendung des Bausteines in ein ein KO z.B. des Formates EIS5 gwandelt werden.
    Einen passenden Baustein habe ich nirgendwo gefunden. Gibt es Alternativen? Es sollte jedoch nicht zu kompliziert werden, denn diese Umwandlung soll recht zahlreich durchgeführt werden.
    Leider ist es auch nicht möglich, die beiden bytes gleich durch die Webabfrage in einen passenden KO Typ schreiben zu lassen, denn dann läuft die Webabfrage nicht.

    Bin für jeden Tip dankbar.

    #2
    Hallo Viceversa,

    also ungetestet (weil kein HS zur Hand) und auf die Schnelle:

    Speicher den folgenden Text als "10001_HEX2DEC.hsl" im Logik-Verzeichnis (bzw. unter einer anderen Zahl, falls die 10001 schon belegt ist).

    Sollte das machen, was Du willst.
    PHP-Code:
    # Baustein: 10001_HEX2DEC.hsl
    5000|"Wandler\HEX2DEC"|0|1|"E1 Hexadezimalzahl"|1|"A1"|
    5001|1|1|0|0|0
    5002
    |1|0|
    5004
    |1|0|0|1|0
    5012
    |0|""|"int(EN[1],16)"|"" |1|0|0|
    Kann ja mal schnell einer (mit HS) ausprobieren.


    Gruß
    Hartmut

    Kommentar


      #3
      Hallo Hartmut,,
      Danke, prima. Bin gerade am testen. Auf jeden Fall ist die Logik gültig. Irgendwas funktioniert noch nicht, es fehlen 8 bits am Ausgang, das kann aber auch an meiner Folgelogik liegen. Ich melde mich dazu noch mal.

      viceversa

      Kommentar


        #4
        Ich glaube nicht, dass 8 Bits "verloren gehen", sondern nie eingelesen werden.
        Den Widersprich hatt ich schon in Deinem ersten Posting gesehen, dachte aber an so was wie "der schreibt nur ein Beispiel":

        Zitat von viceversa Beitrag anzeigen
        Eine Webabfrage liefert einen 14byte Text in Form von 2 hexadezimalen Zahlen, z.B. 2F. Es handelt sich um 2 bytes
        Jede Stelle einer Hexzahl steht nur für 4 Bit, "2F" ist also auch nur 8bit lang. Wenn Du 16bit brauchst, dann müssen da 4 Zahlen/Ziffern am Eingang stehen, z.B. "12CD".


        Gruß
        Hartmut

        Kommentar


          #5
          Du hast natürlich völlig recht. Manchmal vergißt man die Grundlagen und denkt viel zu komplex. Ich füttere ihn dann mal mit 4 Werten. Danke.

          Kommentar


            #6
            ...und so funktioniert es auch. Danke!

            Kommentar


              #7
              Ich habe den "HexToDec" nochmals "aufgehübscht", mit "offizieller" Nummer, Doku + HTML-Hilfe versehen und in den Download gestellt (https://knx-user-forum.de/downloads.php?do=file&id=219).

              Als wesentlich Neues ist noch die Umwandelmöglichkeit von "negativen", also vorzeichenbehafteten Hexzahlen dazugekommen. War mehr ein "Muss doch irgendwie gehen" als eine Notwendigkeit, da die Realisierung erst überhaupt nicht klappen wollte. Vielleicht braucht es aber doch jemand.


              Gruß
              Hartmut

              Kommentar

              Lädt...
              X