Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX-Multisensor

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

    #61
    Hi Max,

    ja, den zweiten Schritt (GA-Index auf KO-Nummer) habe ich auch nicht. Bei angenommen 256 GAs und KOs kommt man zwar mit 2-Byte-Einträgen hin - aber wozu?

    Schätze die Idee war es, dass eine GA nur einmal abgelegt wird und dann eben über den Association Table mit MEHREREN KOs verknüpft werden kann. Ändert sich die GA muss nur ein Eintrag (im Addresstable) geändert werden.

    Meine Beobachtung ist aber, das man an einem Gerät eher selten mehreren KOs dieselbe GA zuweist (außer vielleicht Zentraladressen). Daher fand ich eben auch zwei Tabellen wie oben dargestellt ausreichend:
    Addresstable mit Mapping: GA-Idx: <GA> -> <KO-Idx>
    KO-Table: KO-Idx: Flags, Options

    Ja, bei den Properties der BCU kann man nur die Speicheradresse der Tables auslesen.

    ABER:

    Bei neueren Typen wird das auch per Property gemacht, eben weil das "memwrite" zu limitiert war. Daher sollten wir das auch nicht mehr machen, da man sonst immer wissen muss, wie die Firmware die Adressen und vor allem die weiteren Daten intern ablegt. Das ging bei einer BCU2 vielleicht, aber bei komplexeren Busunits führt das in die Irre. Beim Zugriff über Properties kann die Firmware Prüfen, Umsortieren oder sogar sich weigern.

    Irgendwann hatte ich auch schon mal die Specs neuerer Typen gesehen - kann es aber grad nicht finden.

    Also: Alles gut. Einzig könnten wir uns vielleicht noch mal auf eine (Bit-)Reihenfolge für die Kommunikationsflags einigen damit man da nicht umdenken muss. Da bin ich aber schmerzfrei.

    Grüße
    Robert

    Kommentar


      #62
      Hallo Robert,

      sehe ich genauso wie du. Da sind sicher einige historische Entscheidungen dabei, die die Entwickler heute ggf. anders träfen.


      Zitat von Robert Beitrag anzeigen
      Addresstable mit Mapping: GA-Idx: <GA> -> <KO-Idx>
      KO-Table: KO-Idx: Flags, Options
      Was ist der Unterschied zwischen KO-Idx und KO? Ich würde gerne jedem KO ein eigenes Object geben. Wenn ich alles in ein Object quetsche, habe ich je KO nur noch eine Property. Die kann zwar mehrere Einträge enthalten, diese müssen dann aber alle die gleiche Größe haben. Den Vorteil der Einschränkung sehe ich nicht.

      Vorschlag zur Güte:
      Object 0x00: Device Info
      Objects 0x01-0x09: reserved
      Object 0xFF, Property 0: GA Mapping table, bestehend jeweils aus GA und KO.
      Zu jedem KO existiert ein Object mit der gleichen Nummer, KOs mit Nummern kleiner 10 (0x0A) sind nicht zulässig.
      Innerhalb dieses Objects gilt:
      Property 0 = Flags (1 Octet)
      Property 1...x: nach Wahl des Entwicklers

      So sind auch die Flags je KO zentral definiert. Einverstanden?

      Beispiel:
      Object 0xFF, Property 0
      (3 Einträge à 3 Byte):
      1A 78 0A 1A 00 0A 1A 79 14
      KO 10 mappt auf 1.1.228 und auf 1.1.0.
      KO 20 mappt auf 1.1.229

      Object 0x0A [Temperatur]
      Property 0 (1 Eintrag):
      0x07 (d.h. Flags K+L+S)
      Property 1 (1 Eintrag):
      00 3B (d.h. Sendeintervall 60 Sekunden)

      Object 0x14 [Feuchte]
      Property 0 (1 Eintrag):
      0x05 (d.h. Flags K+S)
      Ich habe nun nur keine rechte Vorstellung, wo ich zentrale, d.h. KO-übergreifende Konfigurationsdaten ablegen soll. Ich möchte z.B. Feuchte und Temperatur im gleichen Intervall senden, das macht mein Leben einfacher. Vorschläge?


      Bezüglich der Flags:
      wenn du deine #defines dazu postest, baue ich sie bei mir ein - die Funktionalität der Flags wird bei mir bis jetzt sehr halbherzig unterstützt. Ist bei mir also nahe null Aufwand.

      Gruß,

      Max

      Kommentar


        #63
        Windows und Falcon - ich habe die Nase voll

        Hallo zusammen,

        meine Motivation, ein Windows-Config-Tool zu stricken, ist zusammengefallen wie ein kaltgewordenes Soufflé. Nur ein paar Stichworte zur Brechreizerzeugung:
        • COM-Server
        • CLSID
        • MFC
        • afxwin
        • stdafx
        • LoadLibrary
        • regsrv32
        • MIDL_DEFINE_GUID

        usw. usf.

        Wenn jemand meinen Layoutvorschlag für Qt haben will, bitte melden. Ansonsten beschränke ich mich auf irgendetwas Kommandozeilenbasiertes für Linux. Ich habe die Nase gestrichen voll und bleibe bei Embedded-Programmierung, davon verstehe ich wenigstens was.

        ================================================== ======

        Frust II: Von meinen fünf aufgebauten Geräten funktioniert eines, zwei haben zwischendrin mal getan und dann wieder aufgegeben. Merde alors.

        Max

        Kommentar


          #64
          Hallo Max,

          d.h., Projekt gestorben?

          Ari

          Kommentar


            #65
            Zitat von rel Beitrag anzeigen
            Hallo Max,

            d.h., Projekt gestorben?

            Ari
            Nö. So schnell gebe ich nicht auf. Nur die Windows-Entwicklung kann mir gestohlen bleiben. Habe gestern Abend einen vernünftigen Stencil bestellt, damit wird die v0.8 hoffentlich erfolgreicher als die aktuelle v0.7.

            Max

            Kommentar


              #66
              Version 0.8

              Hallo zusammen,

              Kurzzusammenfassung: Anfang März sollte ich einige Exemplare der v0.8 verfügbar haben, die nach aktuellem Stand der endgültigen Version entspricht.
              Weitere Änderungen gibt es dann nur noch für Serienfertigungszwecke oder für EMV-Optimierung.

              Langversion:
              Heute hat es gleich zweimal geklingelt: erst hat UPS 20 Platinen der v0.8 (diesmal von Fischer Leiterplatten) gebracht, dann kam DHL und hat mich mit Busklemmen (Wago 243-211) versorgt.

              Funktionale Änderungen gegenüber v0.7 gibt es keine, aber einige Detailverbesserungen:
              • Die Busklemme passt jetzt (hoffentlich, hab´s noch nicht getestet) in den Berker Sensoreinsatz mit rein - sie sitzt jetzt diagonal auf der Ecke
              • Neue Klemme für das Onewire-Interface (Phoenix MPT0.5/3-2.54)
              • Fehler im Debuginterface behoben
              • Onewire-Interface auf DS2484 umgestellt (der kann auch nominell 3,3V am I2C, der DS2482-100 war mit 3,3V außerhalb der Spezifikation)
              • Ausgangstiefpass für den Feuchtesensor


              Ich konnte nicht widerstehen und habe die erste Platine schon mal aufgebaut. Der Debugger hat sich auf Anhieb verbunden , er mag aber noch nicht mit dem Bus reden - das muss dann morgen der Lötkolben richten.
              Ende nächster Woche kommt endlich ein brauchbarer Stencil (aus Metall statt Polyimid), dann geht der Pastendruck hoffentlich endlich mal anständig. Momentan ist das eher ein Gewürge. HASL, Kunststoffstencil und QFN ist in etwa so sinnvoll wie Bergsteigen in Hausschuhen.

              Ich habe noch nicht getestet, ob die Feuchte jetzt endlich sinnvolle Werte liefert. Morgen (hoffentlich) mehr.

              Max

              Kommentar


                #67
                Zitat von l0wside Beitrag anzeigen
                Hallo zusammen,

                meine Motivation, ein Windows-Config-Tool zu stricken, ist zusammengefallen wie ein kaltgewordenes Soufflé.
                Habe mir eben Java und Calimero angeschaut. Das sieht um Längen besser aus - und ist wohl auch noch portabel nach Linux und Windows, vermutlich auch auf den Mac. Und der GUI-Builder von NetBeans ist ebenfalls weitaus besser als der von Qt.

                Das Design ist zwar nicht ganz mein Fall, und Java-Installationen sind meistens ein Krampf, aber das ist mir an der Stelle dann auch vollends egal. Stellt euch auf ein Java-Config-Tool ein. Oder Mirko, hast du Ambitionen? Ich denke momentan nicht...obwohl, bis die PCBs kommen...

                Max

                Kommentar


                  #68
                  Java find ich toll (muss ich wohl, bin Java Entwickler ;-)). Kann bei Bedarf SVN, Jenkins und Sonatype Nexus Maven Repo zur Verfügung stellen. Zeit zum aktiv mitwirken hab ich vorerst leider (noch) nicht ;-(

                  P.S. Ohne jetzt einen Glaubenskrieg losbrechen zu wollen: Aber wenn eine Java Programm scheiße aufzusetzen und zu starten ist, dann hat der Entwickler was falsch gemacht. Es ist kein Thema ein Bundle aus JRE und der Java Anwendung zu schnüren und damit ein funktionierendes Komplettpaket anbieten zu können.

                  Kommentar


                    #69
                    Zitat von tuxedo Beitrag anzeigen
                    Java find ich toll (muss ich wohl, bin Java Entwickler ;-)). Kann bei Bedarf SVN, Jenkins und Sonatype Nexus Maven Repo zur Verfügung stellen. Zeit zum aktiv mitwirken hab ich vorerst leider (noch) nicht ;-(
                    Ein SVN-Repo wäre klasse, alternativ schiebe ich den Krempel zu Google Code oder Sourceforge.
                    Ich habe mit dem Java-Ding mal angefangen (Basis SWT und Calimero) und mal wieder festgestellt, dass PC-Programmierung nicht mein Ding ist. Leider ist Calimero nicht mächtig genug, so dass ich auch noch das erweitern musste (unterstützt nur Multicast, aber kein Singlecast und Broadcast, jedenfalls nicht auf den höheren Layern).

                    Max

                    Kommentar


                      #70
                      SWT? Puuh. Darf ich da ein Swing Veto einlegen?

                      SVN Zugang kann ich dir heute Nachmittag anlegen. Hast du schon einen Projektnamen?

                      Kommentar


                        #71
                        Zitat von tuxedo Beitrag anzeigen
                        SWT? Puuh. Darf ich da ein Swing Veto einlegen?

                        SVN Zugang kann ich dir heute Nachmittag anlegen. Hast du schon einen Projektnamen?
                        Oder ist das Swing? Ich habe mit Netbeans einfach angefangen zu malen und war ganz positiv angetan. Was ist da defaultmäßig dabei? Wie du siehst, ist das nicht gerade mein Spezialgebiet (obwohl ich zugestehen muss, dass es unter Java unglaubliche Mengen an richtig guten Libraries gibt - JAXB lief innerhalb kurzer Zeit zu meiner Zufriedenheit).

                        Projektname: kconfig (außer es kommen noch bessere Vorschläge).

                        Im Moment stricke ich an einer Kommandozeilenversion auf Basis xpropwrite. argp ist schon besiegt :-)

                        Max

                        Kommentar


                          #72
                          Okay, wenn du dir nicht speziell Mühe gegeben hast SWT zu verwenden, dann ist das im Fall von Netbeans dann doch Swing ;-)

                          kconfig ... hmm. okay. Als "Arbeitsname" auf jeden fall erstmal zu gebrauchen.

                          Zugangsdaten kommen gleich per PN.

                          Kommentar


                            #73
                            So,

                            Repo ist eingerichtet. Hat etwas gedauert. Das Tool das ich zum einrichten verwendet habe hat sich entschieden mit dem neuen PHP nicht mehr zu funktionieren. Jetzt pflege ich's halt vorrübergehend von Hand.


                            kconfig - Revision 3: /

                            Leserechte für alle. Schreibrechte bisher nur für l0wside.

                            Unter Dashboard [Jenkins] kann ich bei Bedarf auch einen automatischen Build anlegen. Macht das ausprobieren von Nightlies für Nicht-Enwickler einfacher.

                            Kommentar


                              #74
                              Danke! Dort liegen nun:
                              • Calimero (gepatchtes Original-Calimero)
                              • KNXConfig (das eigentliche Tool)
                              • shelltool (eine reine Kommandozeilenvariante, wohl nur unter Linux lauffähig, da auf eibd aufsetzend))


                              Habe gerade alle drei eingecheckt. Wer daran weitermachen will, ist herzlich willkommen.

                              Ich schreibe noch einen separaten Post zum Thema Konfiguration.

                              Max

                              Kommentar


                                #75
                                Ich war mal so frei und hab die drei Verzeichnisse in den trunk verschoben.

                                Schau mir den Java-Teil gleich mal an.

                                [update]
                                Okay, da ist noch viel zu tun ;-)
                                Denke es könnte hilfreich sein das Tool in Java erstmal analog zur C Variante "konsolenbasiert" zu machen, und dann eine GUI drauf zu setzen.

                                Wenn ich zwischendrin Zeit finde versuch ich mich da mal tiefer rein zu denken. Könnte übrigens auch noch eine Projekt-Seite unter dev.root1.de anbieten: Forum, Bugtracker, Wiki, Filearchiv etc...
                                Wie sowas fertig aufgebaut aussieht, kann man sich hier anschauen: http://dev.root1.de/projects/simon (ist eins meiner Projekte)

                                Kommentar

                                Lädt...
                                X