Ankündigung

Einklappen
Keine Ankündigung bisher.

Zerlegung und Darstellung Bit-Stream

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

    Zerlegung und Darstellung Bit-Stream

    Hallo,

    ich würde gerne in der Comet-Visu den Status meiner Dali-Geräte darstellen. Soweit eigentlich kein Problem aber, der Status wird als Bit-Datentyp im KNX übermittelt und ich müsste die einzelnen Dali-Geräte ausmaskieren, d.h. 10100111 als KNX-Nachricht bedeutet Gerät 8 = 1, Gerät 7 = 0, Gerät 6 = 1 usw.
    Doch leider habe ich keinen blassen schimmer wie ich das mache?
    Ich dachte mal an die Mapping-Funktion aber dann müsste ich ja alle Möglichkeiten ausführen was mir nicht besonders praktikalbel erscheint.
    In der Doku habe ich leider nichts zu meinem "Fall" gefunden.

    Hat vielleicht eine von euch eine Idee?

    Gruß
    Ralf
    Gruß
    Ralf

    #2
    Das Mapping unterstützt auch Formeln, damit kannst Du dann nachschauen ob ein bestimmtes Bit gesetzt ist.

    Code:
    <mapping name=Lampe_8">
     <formula>y = x & (1 << 7) ? 'ON' : 'OFF'</formula>
    </mapping>
    Die Position des Bits welches mit der Formel geprüft werden soll steht rechts neben dem "<<" in dem Beispiel also 7. Bitte beachten das hier bei 0 angefangen wird zu zählen also 8-Bit sind 0-7. Dann braucht Du für jedes Bit ein Mapping und musst jeweils das richtige verwenden.
    Doku dazu: https://www.cometvisu.org/CometVisu/...eln-einsteiger
    Gruß
    Tobias

    Kommentar


      #3
      Hi,

      danke für deb Tipp.
      Dann werde ich versuchen das umzusetzten!

      Schönes Wochenende!

      Gruß
      Ralf
      Gruß
      Ralf

      Kommentar


        #4
        Nach einiger Zeit ohne erfolg muss ich mich noch einmal melden.

        Im prinzip scheint das zu funktionieren aber mit den & und << scheint es ein Problem zu geben, zumindest bei auf meinem PC.

        das & musste ich durch &amp;&amp; ersetzten aber bei dem << Bitschift habe ich nichts gefunden.

        Die Meldung im CV-Editor ist

        CV_Fehler_Formel.JPG
        Gruß
        Ralf
        Gruß
        Ralf

        Kommentar


          #5
          Oh ja, das hatte ich nicht bedacht, das kleiner Zeichen < müsste &lt; sein, also &lt;&lt; (lt wie less than)
          Gruß
          Tobias

          Kommentar


            #6
            Ach und &amp;&amp; wäre && das ist falsch es darf nur ein & sein: y = x &amp; (1 &lt;&lt; 0) ? "EIN" : "AUS"
            Gruß
            Tobias

            Kommentar


              #7
              Hallo,

              vielen Dank für deine Hilfe!
              Leider bin ich was Programmieren angeht nicht gerade sehr bewandert, bin eher der HW-Typ.

              Jetzt ist mir noch etwas aufgefallen, leider handelt es sich bei den Daten um 4 Byte in Hex angegeben, also z.B. 0080 hex was dann 1000 0000 bin entspricht. Leider funktioniert das mit dem Shift irgenwie nicht so wie gedacht wenn ich y = x & (1 << 7) angebe.
              (Habe die für uns besser lesbare Beschreibung hier angegeben, in der CV steht es anders und bringt auch keine Fehlermeldung mehr)

              Hast du vielleicht noch eine Idee?

              Schönen Abend!

              Gruß
              Ralf

              Kommentar


                #8
                Ja hab ich: y = parseInt(x, 16) & (1 << 7). Wäre die schnelle Lösung, aber korrekterweise müsste man das bereits über die Auswahl des passenden Transform-Werts im <address> Element lösen, sofern es da einen passenden Transform für gibt und der auch in der CometVisu implementiert ist.
                Gruß
                Tobias

                Kommentar


                  #9
                  Zur Ergänzung: <address transform="DPT:12.001"... wäre vermutlich die korrekte alternative, dann kann das parsInt in der Formel weggelassen werden, weil das der Transform schon macht.
                  Gruß
                  Tobias

                  Kommentar


                    #10
                    Vielen Dank, mit dem "parseInt(x, 16)" funktioniert es wie gewünscht.

                    Laut dem Dali-Gerät wird die Rückmeldung als DPT 27.001, Type 4 Byte gesendet, das habe ich in der CV auch entsprechend angegeben und es funktioniert...

                    Wünsche dir noch einen schönen Sonntag Abend!

                    Gruß




                    Gruß
                    Ralf

                    Kommentar

                    Lädt...
                    X