Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX Falcon NuGet / DatenTypen / C#

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

    #16
    Ok... Dpt9 war vielleicht kein gutes Beispiel
    Was ist z.B. mit DPTS-9-4 (Helligkeit, Lux)... da brauch ich dann ja die Factory (oder nicht)?

    Code:
    DptBase dptFactory = DptFactory.Default.Get(9, 4);
    object lux = dptFactory.ToValue(notification.Value);​
    Was mir daran misfällt ist das oben schon erwähnte boxing.
    Wenn ich dem SDK doch schon vorgebe dass es vom Typ 9.004 ist, dann würde ich erwarten dass ich da auch ein typed Value zurück bekomme.
    Also das was DptSimple<T> mitbringt in der DptBase...
    Code:
    DptBase mit abstract T ToTypedValue()
    Sowas geht... aber ich habe nicht das Gefühl dass das eine gute Idee ist, dann könnte ich mir den Factory Umweg auch wieder sparen...
    Code:
    var x = DptFactory.Default.Get(9, 4) as DptSimple<float>;
    var y = x.ToTypedValue(notification.Value);​
    Oder ist das auch einfach wieder nur ein Dpt9? Sind die subtypes für die conversion grundsätzlich immer irrelevant? Hängt das nur am main type?

    Wo finde ich denn Beispiele wie man sinnvoll mit diesen Datentypen im SDK umgehen kann?
    Wie komme ich z.B. zu einer DptSimple<float> Instanz (abstract)?

    Dass die libs alle eine dotfuscator Behandlung bekommen haben ist bedauerlich...

    Kommentar


      #17
      Die Subtypes sind bis auf wenige Fälle (z.B. 5.1 und 5.3) irrelevant.
      Dpt9 ist von DptSimple<float> abgeleitet.
      Und `DptFactory.Default.Get(9, 4)` liefert dir eine `Dpt9`-Instanz.

      Kommentar


        #18
        Zitat von naym Beitrag anzeigen
        Dass die libs alle eine dotfuscator Behandlung bekommen haben ist bedauerlich...
        Senkt aber wenigstens die Performance. Würde mich nichtmal wundern, wenn das einer der Punkte ist, unter denen die ETS selber sehr leidet...
        Chris

        Kommentar


          #19
          Mit Hilfe des Falcon SDK habe ich mir ein Programm geschrieben, welches meine Energie-Daten aus meiner Influx ausließt und dann auf meinen Bus sendet.
          Die Anwendung läuft in einem Docker-Container auf meiner NAS. Soweit funktioniert auch alles.

          Nur die Werte für Wirkarbeit kWh werden aus meiner Sicht nicht richtig in der ETS angezeigt.
          In rot, was ich erwarten würde.
          ets.png
          Ich habe schon echt viele Konvertierungen versucht beim Senden der Werte.
          Das ist meine aktuelle.
          konvertierung.png

          Kennt sich hier jemand aus und kann helfen?

          Danke und viele Grüße.
          Angehängte Dateien

          Kommentar


            #20
            DPT 13 ist signed integer - da gibts halt keine Dezimalstellen. Du könntest einfach auf Wh umrechnen und 13.010 benutzen.

            Kommentar


              #21
              Danke! So hätte es vermutlich auch funktioniert. Habe die Gruppenadressen jetzt als 9.* Floating Point Value definiert. Dann bekomme ich meine Kommazahlen und gut ist

              Kommentar

              Lädt...
              X