Ankündigung

Einklappen
Keine Ankündigung bisher.

REQUEST :: Gira X1 Logikbaustein 2Byte -> 16 Bit

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

    X1 REQUEST :: Gira X1 Logikbaustein 2Byte -> 16 Bit

    Moin zusammen,

    ich benötige einen Logikbaustein zur Wandlung eines 2Byte Datenpunktes zu 16Bit. Kann jemand helfen? Entweder mit einem fertigen Baustein oder einem Ansatz zur Lösung? ;-)


    P.S.: ich bin selbst seit über 30 Jahren mit/in der Softwareentwicklung tätig, die letzten 13 Jahre allerdings ausschließlich im iOS/Android Umfeld. Habe mir trotzdem gerade mal Visual Studio und das Gira X1 SDK installiert, Entwickler-Zertifikat zur Signierung ist beantragt.
    C# wird man wohl noch hinbekommen...




    Danke. LG.
    Zuletzt geändert von MultiMike; 27.07.2021, 17:21.

    #2
    Ein Ansatz zur Lösung ist die Wandlung von 1 Byte in 8 Bits als Muster mit dem Logikbaustein Formelberechnung beschrieben hier und in den nächsten Posts.

    Kommentar


      #3
      Hi, mal unabhängig vom X1: Ein 2 Byte Datenpunkt ist exakt 16 Bit lang. Insofern verstehe ich die Anforderung nicht wirklich...

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #4
        Ich geh mal davon aus, das er die 16 einzelnen Bits verarbeiten will (ABB Jalousieaktor hat z.B 2Byte Statussammelobjekt)

        Kommentar


          #5
          Zitat von vento66 Beitrag anzeigen
          Ich geh mal davon aus, das er die 16 einzelnen Bits verarbeiten will (ABB Jalousieaktor hat z.B 2Byte Statussammelobjekt)
          korrekt, ich will tatsächlich das Status-Objekt eines ABB Jalousieaktors auswerten. Aktuell mache ich das recht umständlich über zwei MDT Logikbausteine und Belege dort jeweils 2 Funktionslogiken pro Aktor…

          Kommentar


            #6
            Ich habe gerade keinen X1 mehr zur Hand, aber kann man da nicht mit dem Formel-Baustein von hyman und den Binär-Operationen (Shift, bitweises Und/Oder, etc.) von C# relativ einfach etwas erreichen?

            Kommentar


              #7
              EugenDo

              hyman

              Was mir hierfür bei dem Logik-Baustein (Formel) scheinbar fehlt, ist:


              a) die Möglichkeit gezielt Libs einzubinden, z.B. "using System.Linq" (könnte auch gerne per Default verfügbar sein), um Enumeratoren wie .Last() nutzen zu können

              (ein using System.Linq als Formel führt zu einem Fehler)


              und/oder


              b) als AusgangsTyp für eine Formel ein (Byte)-Array angeben zu können

              (könnte dann z.B. via _out1_[0] oder _out1_.Last() angesprochen werden)




              Wenn das gehen würde, wäre ich glücklich :-)

              LG,

              Michael

              Kommentar


                #8
                Das geht leider alles nicht. Es gibt halt was da ist. Woher soll der Baustein auch was anderes nehmen?

                Zwischenergebnisse dürfen alle in C# möglichen Typen haben, nur auf einen Ausgang bekommst Du die dann halt nicht, kannst sie also nur innerhalb derselben Formel weiterverwenden, und das auch nur ein Mal.

                Trotzdem kannst Du das Problem auch ohne Arrays, Enumeratoren und Libraries lösen. Man nimmt einfach den Eingangs-Integer und prüft dessen bitweise Ver-UND-ung mit dem gewünschten Bit (implizit) auf ungleich Null. Das Ergebnis ist ein Boolean:
                {int:I} & 0x0001
                Mit 16 derartigen Formeln und ebenso vielen Ausgängen ist die Zerlegung in Bits gelöst.

                Disclaimer: Ungetestet.

                Kommentar


                  #9
                  Tja, warum einfach machen wenn's auch kompliziert geht? ;-)

                  ich wollte den Eingang erstmal in 2 Bytes wandeln und und und ... war wohl overdosed.

                  Danke Dir!

                  Kommentar


                    #10
                    MultiMike – der Name ist Programm

                    Kommentar


                      #11
                      so, ich habe nun mein DEV-Zertifikat von GIRA bekommen und mich durch die Doku und Toolchain gewühlt ... einfach geht anders ;-)

                      Nach einigem Trail&Error habe ich nun (m)einen ersten Baustein fertig, der "Bitmapper". Das Ding konvertiert einen 1-2 Byte Wert in eine entsprechende Bit-Repräsentation. Falls jemand Interesse hat, gerne melden.

                      bmap1.PNG
                      Zuletzt geändert von MultiMike; 03.08.2021, 14:44.

                      Kommentar


                        #12
                        araeubig viel Spaß damit.

                        Kommentar


                          #13
                          MultiMike vielen Dank. Werde heute Abend probieren.

                          Gruss André

                          Kommentar


                            #14
                            Zitat von MultiMike Beitrag anzeigen
                            Nach einigem Trail&Error habe ich nun (m)einen ersten Baustein fertig, der "Bitmapper". Das Ding konvertiert einen 1-2 Byte Wert in eine entsprechende Bit-Repräsentation.
                            Guten Morgen Mike

                            habe Deinen Baustein gestern Abend mal installiert und ein wenig probiert.

                            In den ersten Tests fielen mir ein paar Dinge auf:

                            - Dein verwendetes Icon (in Deinem Screenshot sichtbar) fehlt in der LBS-Datei
                            - es wäre übersichtlicher, wenn man den Baustein umschalten könnte auf 1- bzw. 2-Byte Eingangsobjekte - dann wären die ungenutzten Ausgänge nicht sichtbar.
                            - auch wenn eine Hilfe-Datei nicht wirklich notwendig ist, so gehört diese ja zum "fertigen" Baustein um GIRA-konform zu sein

                            und noch eine Idee für die Version 1.1.0 :-)....

                            Wenn Du es ermöglichst, dass der Baustein eine variable Anzahl an Eingängen hätte (natürlich alle mit dem identischen Byte-Format) und ein weiterer Ausgang existiert mit der Nummer des Eingangs mit letztem empfangenen Wert, dann könnte man das Bitmapper-Ergebnis direkt mit "Eingangsnummer" weiterverarbeiten. Also zum Beispiel als Meldung an ein G1 senden mit TITEL= "Fehler Dimmer/Ventil Nummer x" CONTENT= "aufgeschlüsselter Fehler aus Bitmapper und Textformatierer"


                            Gruss André

                            Kommentar


                              #15
                              Guten Morgen André,

                              danke für Dein Feedback.

                              Zu Deinen Punkten:

                              Das fehlende Icon: yepp, die Toolchain kopiert den icons-Ordner leider nicht mit, so dass man hier manuell tätig werden muss. Hatte ich wohl nach dem Builden vergessen ;-) Ist in anhängender ZIP erfolgt.

                              Umschaltung 1 bzw 2 Byte: Ich habe bei mir einfach die Ausgänge, die ich nicht "auswerte" unsichtbar geschaltet. So hast Du im einfachsten Fall nur einen Ausgang und gut.

                              Variable Anzahl an Eingängen: ist es wirklich eine gute Idee, dass eine Ausgangsmatrix über unterschiedliche Eingänge gesetzt wird? Können wir gerne weiter besprechen, aber ich denke, dass man sowas eleganter lösen kann ;-)



                              BTW.: der einfachste Weg das fehlende Icon in Dein Projekt zu bekommen, ist vermutlich, dass die die Inhalte im GPA-Order (z.B. C:\ProgramData\Gira\Gira Project Assistant\LogicNodes\appfarms_com.Logic.Nodes\1.0. 0) direkt mit den Inhalten aus dem neuen ZIP ersetzt. Es müsste auch reichen, nur den "icons"-Ordner dort hin zu kopieren.

                              Wenn das nicht klappt:

                              - alle Verwendungen das Bausteins aus dem Projekt entfernen
                              - GPA beenden
                              - Ordner "appfarms_com.Logic.Nodes" aus "C:\ProgramData\Gira\Gira Project Assistant\LogicNodes" löschen
                              - Baustein neu installieren


                              LG,

                              Michael




                              Angehängte Dateien

                              Kommentar

                              Lädt...
                              X