Ankündigung

Einklappen
Keine Ankündigung bisher.

Kaenx-Creator - Erstelle KNX Produktdatenbanken mit GUI

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

    #61
    Zitat von mobil750 Beitrag anzeigen
    Sollte man das dann nicht erstmal ausblenden
    Wenn man nun aber alte KnxProds importiert (zb wenn eine alte .vdx in eine .knxprod umgewandelt wurde) muss man das ja trotzdem sehen.
    Run you clever boy and remember!

    Kommentar


      #62
      Hallo Mike,

      ich bin gerade wieder über ein Problem gestolpert.

      Ich habe Probleme beim Einlesen der Parameter in meinem KNX Projekt. Es sind recht viele Parameter, die ich in einem Speicher ablegt habe. Ab einem bestimmten Parameter kommen nur noch falsche Werte beim readMemory. Meine Vermutung ist nun, dass die Parameter nicht in einen Speicher passen.

      Deshalb habe ich nun 4 Speicherbereiche angelegt und die Parameter darauf aufgeteilt. Die Prüfung ist erfolgreich, beim Erstellen der knxProd kommt aber eine Exception und zum Schluß die Meldung "erfolgreich erstellt". Im output Verzeichnis ist allerdings nur die h-Datei und ein temp Ordner, der wahrscheinlich zur Erstellung der knxProd verwendet wird.

      Mir ist momentan nicht ersichtlich wo mein Fehler liegt. Kannst du da wieder helfen?

      Da stellt sich mir auch noch die Frage, wie denn eigentlich die Aufteilung der Parameter in die entsprechenden "Speicher" (Blöcke) im uC gesteuert wird.
      Wenn ich mir die Debug Ausgabe des "knx.readMemory" ansehe, kann ich überheupt nicht nachvollziehen, wie hier die Parameter extrahiert werden. Ich habe da zumindest erwartet, dass der erste Parameter (offset 0, 1 Byte) zu erkennen sein sollte. Das passt aber überhaupt nicht zur Debug Ausgabe, der Parameterwert ist allerdings vom Wert korrekt eingelesen?!?

      Kannst du da Licht ins Dunkel bringen?

      Anbei wieder meine Datei.

      Gruß
      Helmut

      Angehängte Dateien

      Kommentar


        #63
        Hi Helmut,

        wie viel Parameterspeicher hast Du denn verwendet? Standardmäßig kann der OpenKNX-Stack 16kB, man muss schon eine große Applikation bauen, um da drüber zu kommen. Mehrere Speicherblöcke machen keinen Sinn. Wenn Du wirklich über 16kB kommst, müsst Du was an der Entwicklungsumgebung ändern, nicht an der ETS-Applikation.

        Die Debug-Ausgabe von knx.readMemory() hat nichts mit Deinen Parametern zu tun. Das sind die Metadaten für den Stack.

        Gruß, Waldemar

        Kommentar


          #64

          Hallo Helmut,

          das Aufteilen des Speichers geht nur bei Absolutem Speicher.
          Der Stack funktioniert aber nur mit Relativem Speicher (SystemB).

          Zitat von mobil750 Beitrag anzeigen
          Meine Vermutung ist nun, dass die Parameter nicht in einen Speicher passen.
          Hast du denn eine feste Speichergröße vorgegeben oder lässt du das alles automatisch erstellen?
          Wenn es automatisch erstellt wird, berechnet Kreator den tatsächlich belegten Speicher (Stichwort Heatmap anschauen).

          Zitat von mobil750 Beitrag anzeigen
          Ab einem bestimmten Parameter kommen nur noch falsche Werte beim readMemory
          Im Speicher stehen noch ganz viele andere Sachen im Speicher, wie HardwareType, ApplikationsVersion, Eigene Adresse und so weiter.
          Nur diese Sachen werden dort ausgegeben, da es keinen Sinn macht den kompletten Parameterspeicher auszugeben.


          ​Wie rufst du denn die Parameter aus dem Speicher ab?
          Wie sieht der Parameter (und die .h) aus, ab dem es auftritt?

          Das mit der "HelpTemp" Fehlermeldung kann ich mir nicht erklären.
          Bei meinen Applikationen (und allen die ich getestet habe) trat das nie auf. ich schau mal ob ich heraus finden kann, woran das liegt.

          Gruß Mike
          Run you clever boy and remember!

          Kommentar


            #65
            Hallo mumpf,

            danke Waldemar, für die Aufklärung. Von den 16KB bin ich meilenweit entfernt. Ich werde also wieder auf den Single Speicher zurückfallen.

            Den Dump des readMemory kann ich also auch ignorieren.

            Gruß
            Helmut

            Kommentar


              #66
              Eine kurze wichtige Info:

              Ich habe gestern die Version 1.5.0 veröffentlicht.
              Hauptaugenmerk lag auf der Ladezeitverkürzung beim Importieren oder Öffnen einer knxprod.

              Es gab allerdings vorher einen Bug beim erstellen der Header Files.
              Dies lies sich nur durch eine größere Änderung beheben.
              Mask und Shift sind nun getauscht. Parameter werden also nun so ausgelesen:
              Code:
              (knx.paramByte(PARAM_x) >> PARAM_x_Shift) & PARAM_x_Mask
              Neu hinzugekommen ist folgendes:
              Code:
              GETPARAM_x
              Das ist ein Makro welches automatisch den Parameter ausliest und mit Shift/Mask verarbeitet und auch gleich in den richtigen Datentyp umwandelt.
              Run you clever boy and remember!

              Kommentar


                #67
                Hallo Mike,

                aus dem letzten Eintrag werde ich nicht ganz schlau. Um welchen Teil der openKNX SW handelt es sich? Der Creator kann es nicht sein und ich tippe eher auf den KNX Stack (?). Wo finde ich die neue Version?

                Gruß
                Helmut

                Kommentar


                  #68
                  Zitat von thewhobox Beitrag anzeigen
                  Mask und Shift sind nun getauscht. Parameter werden also nun so ausgelesen: Code:

                  (knx.paramByte(PARAM_x) >> PARAM_x_Shift) & PARAM_x_Mask
                  Hi Mike,

                  gibt es einen Grund, warum Du das jetzt so machst? Wenn Du erst shift machst, musst Du immer auch ein Mask machen - und Du musst die Maske umrechnen.
                  Wenn Du aber erst Mask machst, dann kann man Shift in 2 Fällen weglassen: Wenn Shift 0 ist oder wenn das Ergebnis bool soll. In beiden Fällen braucht man dann nicht mehr zu shiften.

                  Ist nur interessehalber, weil ich es eben genau andersrum mache im OpenKNXproducer...

                  Gruß, Waldemar

                  Kommentar


                    #69
                    Zitat von mobil750 Beitrag anzeigen
                    Um welchen Teil der openKNX SW handelt es sich?
                    Doch ist die Version von meinem Creator.
                    Die aktuellste Version entweder per git neu pullen und kompilieren oder bei den Releases.

                    Zitat von mumpf Beitrag anzeigen
                    musst Du immer auch ein Mask machen
                    Das stimmt so nicht.
                    Wenn die Bits links aligned sind (also von links startend, 0b11100000) reicht auch ein shift (>> 5) ohne Mask.

                    Zitat von mumpf Beitrag anzeigen
                    oder wenn das Ergebnis bool soll
                    Da benutze ich die funktion knx.paramBit(offsetByte, offsetBit)

                    Ich habe auch einiges von deinem producer abgeschaut, dann aber doch bewusst anderst gemacht, da ich einfach einen anderen Programmierstil habe.
                    Am Ende ist es aber gehüpft wie gesprungen^^

                    Gruß Mike
                    Run you clever boy and remember!

                    Kommentar


                      #70
                      Hallo Mike,

                      ich möchte die Release Version verwenden und direkt loslegen. Allerdings schaut die Release 1.5.0 anders aus als die vorherigen. Da ist auch keine Exe drin ?!?

                      Verstehe ich da was falsch?

                      Gruß
                      Helmut

                      Kommentar


                        #71
                        Hallo Helmut,

                        Hast du auch wirklich die Binaries runter geladen und nicht etwa den Source Code?
                        Hab grad nachgeschaut und in der Zip ist definitiv die Kaenx.Creator.zip drin.

                        Gruß Mike
                        Run you clever boy and remember!

                        Kommentar


                          #72
                          Hallo Mike,

                          danke du hast Recht. Irgendwie muss ich mich da vertan haben.

                          Gruß
                          Helmut

                          Kommentar


                            #73
                            Hallo Mike,

                            habe nun die 1.5.0 erfolgreich im Einsatz. War ein gewisser Aufwand das mit GETPARAM umzusetzen, macht aber ein paar Dinge bei mir einfacher weil man sich nicht mehr um den Typ kümmern muss.

                            Ich hatte noch versucht bei den ENUM Parametern den Wert "-1" umzusetzen. Das funktioniert auch bei Überprüfen, bei Veröffentlichen gibt es dann aber zum Schluss eine Exception. Wäre vielleicht noch einen Check wert (?).

                            Gruß
                            Helmut

                            Kommentar


                              #74
                              Hallo Helmut,

                              Ja kann ich gerne einbauen als Check.

                              Gruß Mike
                              Run you clever boy and remember!

                              Kommentar


                                #75
                                Hallo Mike,

                                heute bin ich noch über ein kleines Problem gestolpert.
                                Ich habe eine neue App erstellt und hatte beim Erstellen eines Parametertyps (Enum) einen nervösen Finger. Dadurch ist ein Aufzählungselement mehr enstanden als beabsichtigt. Das Problem liegt darin, dass ich keine Möglichkeit gefunden habe das überflüssige Element wieder zu entfernen.
                                Oder habe ich da was übersehen?

                                Gruß
                                Helmut

                                Kommentar

                                Lädt...
                                X