Ankündigung

Einklappen
Keine Ankündigung bisher.

Arbeitsweise kconfig.xml

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

    Arbeitsweise kconfig.xml

    Hallo,
    ich verstehe noch nicht so ganz wie du Suite mit den Device XMLs vorgeht. Ich verstehe es so:
    - Beim Gerät anlegen wird eine Kopie der xml im Projektverzeichnis angelegt.
    - Im Original XML werden einmalig die aktuellen Einstellungen hinterlegt.
    - in der Kopie werden die aktuellen Einstellungen jeweils gesichert.
    ist das korrekt?
    Wie muss ich vorgehen wenn ich im Device XML etwas erweitern will, wenn ich z.b. 3 Geräte diesen Types angelegt habe?
    Die XMLs von jedem Geräte löschen, manuell ändern oder gibts eine Art Upgrade?

    #2
    Es gibt zwei Dateiformen:

    .kdevice.xml
    .kconfig.xml

    Beide nutzen prinzipiell das selbe Schema, die selbe XSD.

    Die File .kdevice.xml ist die Gerätebeschreibung. Diese folgt streng diesem Muster:

    https://github.com/KONNEKTING/Konnek...description.md

    Sie enthält prinzipiell KEINE Gerätekonfiguration, sondern nur die Gerätedefinition.

    Wo die Datei liegt ist vollkommen egal. In der Suite, wenn du ein neus Gerät hinzufügen willst gibt es zwei Möglichkeiten:

    1) Du nimmst eine .kdevice.xml von irgendwoher. Die Suite will dann einen Namen für dieses Gerät von dir wissen. Mit diesem Namen legt sie eine Kopie der .kdevice.xml in dein Projektverzeichnis. Die Datei erhält die Endung .kconfig.xml. Die Konfiguration dieses Gerätes wandert ab jetzt in diese Datei, die auch gleichzeitig die Gerätedefinition beinhaltet.

    2) Du nimmst eine .kconfig.xml von irgendwo her. Die Suite will dann auch einen Namen von dir für dieses neue anzulegende Gerät wissen. Und auch hier wird eine Kopie dieser Datei im Projektverzeichnis abgelegt. Der Unterschied zur ersten Variante ist nun aber, dass es hier wohl schon eine Konfiguration für dieses Gerät gibt. Diese wird "verworfen" und von vorne begonnen. Die Datei wird gemäß des Gerätenamens den du vergibst benannt und behält die Endung .kconfig.xml.

    Einen Upgrade-Modus gibt es nicht. Wie sollte das auch funktionieren? Die Konfiguration eines Geräts passt ja normalerweise immer nur auf die dafür vorhergesehene Gerätedefinition. Wenn du die Gerätedefinition änderst, dann passt die Konfiguration vielleicht noch, aber nicht mehr unbedingt.

    Wenn du eine neue Gerätedefinition hast, musst du auch mit der Konfiguration von vorne anfangen. Wenn du nur neue KOs und neue Parameter hinzufügst, dann kannst du die passenden Konfigurationsabschnitte aus der alten .kconfig.xml in die neue .kconfig.xml von Hand kopieren (aber bitte die Suite während dessen geschlossen halten, sonst gibt es überschneidungen beim speichern...).
    Zuletzt geändert von tuxedo; 07.11.2016, 08:19.

    Kommentar


      #3
      Danke für die ausführliche Erläuterung.
      Wäre hier eine Versionsüberprüfung möglich?
      Sprich die Original XML Files mit der Suite ausliefern oder in einer Art Library Verzeichniss ggf. auch im Projektverzeichnis halten.
      Wenn jetzt die Original XML Version nicht mit der Version des jeweiligen Gerätes zusammenpasst eine Meldung alla "Hey vorsicht die Version passt nicht".

      Ich bin gerade am erstellen einer ausführlichen Device XML und ich bin mir bei dieser relativ sicher dass Sie über die Zeit erweitert wird.

      Kommentar


        #4
        Du musst sowohl auf der Arduino-Seite, als auch auf der XML-Seite folgendes Tripel angeben:

        * Manufacturer ID
        * Device ID
        * Revision

        Bei der Programmierung des Geräts wird das abgeglichen. Passt einer der drei Werte nicht zu seinem jeweiligen Gegenüber, schlägt die Programmierung fehl.

        Wenn du jetzt aber selbst schindluder mit der XML treibst, dann wird die Programmierung ggf. trotzdem klappen (sofern sich Parameter-Anzahl und KO-Anzahl nicht ändert: zumindest in beta4.. in beta5 wird das nochmal anders), aber das Gerät wird dann nicht mehr richtig funktionieren.

        Die .kconfig.xml ist für sich immer vollständig (mit samt dem ID/Versions-Tripel) und kann ohne .kdevice.xml leben und genutzt werden. Auch der Konfigurations-Block in der XML trägt diese Tripel, so dass ein einfaches kopieren der kompletten Konfiguration in ein inkompatible XML (mit einem anderen Tripel) als fehlerhaft erkannt wird.
        Zuletzt geändert von tuxedo; 07.11.2016, 08:29.

        Kommentar


          #5
          Änderungen an der Gerätedefinition solltest du über die "Revision" versionieren. Sowohl im Arduino-Code, als auch in er XML.

          Kommentar


            #6
            Wie kann denn aus der kdevice.xml die "KonnektingDevice.h" erzeugt werden?

            Gruß Ivan

            Kommentar


              #7
              Der Suite beta4 liegt ein weiteres BAT File bei das auf den "Code Creator" verweist. .kdevice.xml datei mit rechter Maustaste auf diese BAT File ziehen, loslassen und "öffnen mit" wählen. Dann wird eine entsprechende .h File erzeugt.

              Kommentar


                #8
                aha,.. danke die BAT Datei hatte ich bereits entdeckt. Also BAT aufrufen und .kdevice.xml als Parameter übergeben :-)

                Gruß Ivan

                Kommentar


                  #9
                  Ja, am einfachsten geht das unter Windows mit Drag'n'Drop. Aber ne Windows-Konsole geht auch.

                  Kommentar


                    #10
                    Hab heute mal versucht eine Header-Datei zu generieren. bekomme aber eine Fehlermeldung: ".\jre.1.8.0_101\bin\javaw" konnte nicht gefunden werden..

                    gelöst: die .kdevice.xml lag nicht im selben Verzeichnis
                    Zuletzt geändert von ivande; 20.12.2016, 23:40.

                    Kommentar


                      #11
                      muss die CommObject Id bzw. die ParameterGroup Name="General" Id im xml-File fortlaufend sein, oder können auch ein paar Id's freigelassen werden,.. z.B. 0,1,2,3,4,5, 10,11,12,13,14,15, 20,21,22,24,25,..

                      Gruß Ivan

                      Kommentar


                        #12
                        Es darf keine ID Lücken geben. Es muss bei 0 anfangen und dann fortlaufend sein. Steht auch so in der Doku: https://github.com/KONNEKTING/Konnek...description.md

                        Each group needs an ID and readable name. The first group has to have Id="0". The ID must be provided as a readable integer and you must not have Id-gaps.

                        Kommentar

                        Lädt...
                        X