Ankündigung

Einklappen
Keine Ankündigung bisher.

Commandline-Tool für "KNX mit ETS"-Projekt

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

    #91
    Hi Maik,

    Zitat von proggerKA Beitrag anzeigen
    in deinem Auszug wird aber gar nichts überschieben?
    ja, war falsch. Beim partiellen Programmieren darf ja der Speicher nicht gelöscht werden.
    Ich meinte das hier:
    Code:
                    <LdCtrlRelSegment LsmIdx="4" Size="0" Mode="1" Fill="0" AppliesTo="full" />
    Und meine Aussage ist somit auch falsch gewesen (sorry, falls ich jemanden verwirrt habe):
    • Beim partiellen Programmieren werden natürlich nur die geänderten Werte übertragen, und das können natürlich keine inaktiven Parameter sein, da diese nicht geändert werden können.
    • Beim Programmieren der Applikation wird der Speicher mit 0 gefüllt und nur die Parameter übertragen, die ungleich 0 sind. Das sind aber auch inaktive Parameter, falls deren Value-Attribut ungleich 0 ist.
    Und ja, ich habe nur RelMem, da das so vom knx-Stack von thesing unterstützt wird.

    Gruß, Waldemar

    Kommentar


      #92
      Zitat von mumpf Beitrag anzeigen
      Das sind aber auch inaktive Parameter, falls deren Value-Attribut ungleich 0 ist.
      Okay, nur um nochmal ganz sicher zu gehen:
      Werden also nur aktive/sichtbare Parameter und inaktive(Access=None) übertragen?
      Oder werden auch nicht sichtbare (die in einem when zweig sind, der nicht angezeigt wird) übertragen?

      Wenn ich iwann mal genug Zeit habe und nicht dauernd meinen SAMD kaputt mache, teste ich das mal selbst mit dem knx-stack^^

      Gruß Mike
      Run you clever boy and remember!

      Kommentar


        #93
        Hi,

        Zitat von proggerKA Beitrag anzeigen
        Werden also nur aktive/sichtbare Parameter und inaktive(Access=None) übertragen?
        Kann man so glaube ich nicht trennen (wenn ich Dich richtig verstehe). Es werden alle Parameter übertragen, die ungleich 0 sind. Ganz egal, wie sie in der ETS auftauchen. Die ETS will ja beim Programmieren der Applikation einen gültigen initialen Zustand im Device herstellen.

        Ich stelle mir das so vor:
        • Durch die ganzen Parameter-Adressen (Offset) weiß die ETS ja, an welcher Speicherstelle was stehen muss.
        • Durch die Value-Angaben am Parameter weiß sie auch den Wert für einen Parameter, selbst wenn dieser nirgendwo im verändert wurde
        • Eine Teilmenge der Parameter wird dann im UI verändert
        Es ist aber immer gegeben, dass die ETS den Parameterblock, der an das Device zu schicken ist, komplett im Speicher aufbauen kann, z.B.
        Code:
        00 01 00 00 00 00 00 00 00 00 0a ab 00 00 00 00 45 00 10 00
        Das wäre ein 20 Byte Parameterblock. Jetzt kann die ETS das komplett als Block, beginnend an der Adresse 03e2, an das Device schicken:
        Code:
        03e2: 00 01 00 00 00 00 00 00 00 00 0a ab 00 00 00 00 45 00 10 00
        [
        Oder sie sagt dem Device:
        Schreibe ab 03e2 20 mal die 00 in den Speicher und empfange dann
        Code:
        03e3: 01
        03ec: 0a ab
        03f2: 45
        03f4: 10
        Im Device kommt die selbe Information an. Und die Firmware wertet die Byteinformation aus und kann sich darauf verlassen, dass jedes Byte den korrekten Wert hat, ganz egal, ob der Parameter jemals im UI aufgetaucht ist oder nicht.

        Gruß, Waldemar

        P.S.: Die ETS macht es übrigens noch schlauer... Die Übertragung der Adressen erfordert ja auch Bandbreite und jedes Telegramm hat auch ein Overhead. Wenn das neue Telegramm, dass die Übertragung von 00 sparen soll, mehr Bytes kosten würde als die eigentlichen übertragenen 00, dann überträgt sie trotzdem die 00 im vorherigen Telegramm. Wahrscheinlich würde es dann eher so aussehen:
        Code:
        03e3: 01
        03ec: 0a ab 
        03f2: 45 00 10
        (in der Praxis sieht das noch anders aus, das hier ist stark vereinfacht)

        Kommentar


          #94
          mumpf Danke für die Ausführliche Erklärung. Dann muss ich meine Funktion da mal etwas überarbeiten.
          Bisher habe ich mit der Methode allerdings keine Probleme erkennen können. Mir ist nur ab und an in der KNXProd aufgefallen, dass es das Attribut "DownloadOnlyVisibleOnPartiell" (oder ähnlich geschrieben gibt).

          Ich denke ich muss mir auch einfach mal ein Gerät zulegen mit dem knx-stack, um das zu Testen.
          Run you clever boy and remember!

          Kommentar


            #95
            Ich bin mir ziemlich sicher, dass die MDT email application für die IP-Schnittstelle funktioniert genau so, zumindest hab ich da viel abgeguckt. Nur falls Du die schon hast, könntest Du damit testen.

            Gruß, Waldemar

            Kommentar


              #96
              Super Tipp! Hab ich tatsächlich.
              Hatte mir bisher immer nur die normale Applikation vom Interface angeschaut.
              Run you clever boy and remember!

              Kommentar

              Lädt...
              X