Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

    sagt mal irgendwie gefällt mir nicht so ganz wie das beim proggen aussieht:

    Code:
    xpected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xDC
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x66
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x59
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    Invalid broadcast detected: destination address is 0, but address type is "individual"
    frame with invalid crc ignored
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x9
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xDC
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_FRAME_STATE_IND: 0x13
    got UNEXPECTED: 0x6A
    got UNEXPECTED: 0x50
    got L_ACKN_IND
    got UNEXPECTED: 0x7E
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x9
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x9
    got U_CONFIGURE_IND: 0x1
    got U_CONFIGURE_IND: 0x41
    got L_POLL_DATA_IND
    got UNEXPECTED: 0xC1
    got L_POLL_DATA_IND
    got U_CONFIGURE_IND: 0x5
    got UNEXPECTED: 0x70
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xDC
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x72
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    frame with invalid crc ignored
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x20
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xDC
    got UNEXPECTED: 0x60
    got UNEXPECTED: 0xF6
    got UNEXPECTED: 0xF4
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xDC
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x42
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    got L_POLL_DATA_IND
    got L_ACKN_IND
    got UNEXPECTED: 0xA
    got L_ACKN_IND
    got U_RESET_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got UNEXPECTED: 0x16
    got L_ACKN_IND
    got UNEXPECTED: 0x2
    got L_ACKN_IND
    got U_STATE_IND: 0x17
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x5
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x19
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got U_FRAME_STATE_IND: 0x1B
    got L_ACKN_IND
    got UNEXPECTED: 0x2
    got L_ACKN_IND
    frame with invalid crc ignored
    got L_ACKN_IND
    got L_ACKN_IND
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    Basic restart requested
    das sind ein Haufen "unexpected" aber am Ende funzt es...
    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

    Kommentar


      Vermutlich gibt es z.T. Synchronisationsprobleme. Da Frames im Fehlerfall neu gesendet werden, funktioniert es trotzdem. Man müsste die gesamte Kommunikation als Hex ausgeben und mit der TPUART Doku schauen woran das genau liegt.

      Kommentar


        Hi,

        ich hatte bisher beim Programmieren fast nie den SerialMonitor an, muss ich mal ausprobieren, wie es beim SAMD ist. Aber eigentlich müsste man auch im Gruppenmonitor viele Wiederholungen sehen, oder? Ich schau mal, wenn ich heute mal wieder was programmiere und dann berichte ich mal.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          Ich seh schon, ich muss das weiter untersuchen.

          - Es könnte am RP2040 liegen (uA hat der keine rx/tx serial buffer im ram, weil 32 in HW)
          - Es könnte an der Serial liegen
          - Es könnte am Sketch liegen (task nicht schnell genug gerufen)

          Mach ich dann mal.


          Noch eine allgemeine Frage. Wird eigentlich irgendwie (vom Stack) verhindert dass eine nicht passende knxprod geladen wird?
          Ich wüsste gerade nicht wie und wo, irgendwo müsste man ja in der Applikation (Sktech/Stack) etwas definieren was auch in der knxprod definiert wird. Application ID oder sowas.
          Gibts diese Möglichkeit?

          Und noch eine Frage:
          Ein KO hole ich mir über die Fassade mit knx.getGroupObject(int KO-Nummer)
          Kann ich von einem vorhanden GroupObject die KO-Nummer geben lassen?

          Mir gehts um die callbacks. Da meine Kanäle durch Instanzen repäsentiert werden kann ich ja keine member-funktion als callback nehmen.
          D.h. statische funktion als callback und dann dort die richtige instanz finden. In dem Moment hab ich nur das GroupObject und muss dazu die "Kanalnummer" rausfinden. Über die KO-Nummer wäre das trivial.
          Zuletzt geändert von Ing-Dom; 20.09.2021, 18:04.
          OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

          Kommentar


            Hi,

            Zitat von SirSydom Beitrag anzeigen
            Ein KO hole ich mir über die Fassade mit knx.getGroupObject(int KO-Nummer)
            Kann ich von einem vorhanden GroupObject die KO-Nummer geben lassen?
            Genau das hab ich vor 2 Jahren auch gefragt . Über
            Code:
            asap()
            bekommst Du vom GroupObject die KO-Nummer. MultiplyChannels generiert die KO-Nummern ja auch als Konstanten ins Headerfile, man kann dann recht komfortabel vergleichen.

            Zitat von SirSydom Beitrag anzeigen
            Noch eine allgemeine Frage. Wird eigentlich irgendwie (vom Stack) verhindert dass eine nicht passende knxprod geladen wird?
            Ich meine hier mal was drüber gelesen zu haben, habe es aber noch nicht selber genutzt und kann deswegen nicht qualifiziert antworten. Vielleicht kann Thomas nochmal den passenden Hinweis geben.

            Zitat von SirSydom Beitrag anzeigen
            Es könnte am Sketch liegen (task nicht schnell genug gerufen)
            Beim programmieren sollte Dein Coding abgeschaltet sein. Mein loop() sieht so aus:
            Code:
            void loop()
            {
                // don't delay here to much. Otherwise you might lose packages or mess up the timing with ETS
                knx.loop();
                // only run the application code if the device was configured with ETS
                if (knx.configured())
                    appLoop();
            }
            knx.configured() wird false beim programmieren. Mit dem Pattern kannst Du einfach Dein Coding abschalten, wenn programmiert wird. Ansonsten hab ich noch nicht wieder programmiert, deswegen noch keine Ergebnisse meinerseits.

            Gruß, Waldemar

            OpenKNX www.openknx.de

            Kommentar


              Zitat von mumpf Beitrag anzeigen
              asap()
              Danke, probier ich gleich mal aus.

              Zitat von mumpf Beitrag anzeigen
              Beim programmieren sollte Dein Coding abgeschaltet sein.
              Ja, etwas anders aber gelöst sollte aber den gleichen Effekt haben:

              Code:
              void loop()
              {
              knx.loop();
              if (!knx.configured())
              return;
              
              [...]
              OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

              Kommentar


                Ich hab gestern Nacht noch mit SAMD und RP2040 und dem unveränderten knx-demo sktech ausprobiert.
                Auch beim SAMD kommen die Meldungen:

                Code:
                expected L_DATA_CON not received
                got UNEXPECTED: 0x60
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0x6
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0xF1
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0x72
                got UNEXPECTED: 0x4E
                got L_ACKN_IND
                got UNEXPECTED: 0xA4
                got U_CONFIGURE_IND: 0x1
                got U_CONFIGURE_IND: 0x3D
                got L_ACKN_IND
                got U_CONFIGURE_IND: 0x1
                got L_ACKN_IND
                got L_ACKN_IND
                got L_ACKN_IND
                got UNEXPECTED: 0xA0
                got U_CONFIGURE_IND: 0x41
                got L_ACKN_IND
                got L_ACKN_IND
                got L_ACKN_IND
                got L_ACKN_IND
                got U_CONFIGURE_IND: 0x9
                got UNEXPECTED: 0xE8
                got U_STATE_IND: 0x17
                got unexpected L_DATA_CON
                L_DATA_CON not received within expected time
                expected L_DATA_CON not received
                got UNEXPECTED: 0x60
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0x6
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0xF1
                got UNEXPECTED: 0x28
                got UNEXPECTED: 0x7A
                got U_CONFIGURE_IND: 0x65
                got L_ACKN_IND
                got UNEXPECTED: 0xD0
                got L_ACKN_IND
                got U_CONFIGURE_IND: 0x39
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_FRAME_STATE_IND: 0x53
                got L_ACKN_IND
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_FRAME_STATE_IND: 0x53
                got L_ACKN_IND
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0xA6
                got U_STATE_IND: 0x17
                got unexpected L_DATA_CON
                L_DATA_CON not received within expected time
                expected L_DATA_CON not received
                got UNEXPECTED: 0x60
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0x6
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0xF1
                got UNEXPECTED: 0x28
                got UNEXPECTED: 0x7E
                got U_CONFIGURE_IND: 0x65
                got L_ACKN_IND
                got UNEXPECTED: 0xF5
                got L_ACKN_IND
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_FRAME_STATE_IND: 0x53
                got L_ACKN_IND
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_FRAME_STATE_IND: 0x53
                got L_ACKN_IND
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_SYSTEM_STAT_IND: 0x0
                got U_FRAME_STATE_IND: 0x53
                got L_ACKN_IND
                got U_SYSTEM_STAT_IND: 0x0
                got UNEXPECTED: 0xA6
                got U_STATE_IND: 0x17
                got unexpected L_DATA_CON
                L_DATA_CON not received within expected time
                expected L_DATA_CON not received
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0xF1
                got U_CONFIGURE_IND: 0x11
                got UNEXPECTED: 0x6
                got UNEXPECTED: 0x60
                got UNEXPECTED: 0xC2
                got UNEXPECTED: 0x1A
                got U_STATE_IND: 0x17
                got unexpected L_DATA_CON
                L_DATA_CON not received within expected time
                Basic restart requested
                Als nächstes teste ich mal mit TP-Uart statt NCN5120. (Siemens BCU statt NanoBCU)
                OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                Kommentar


                  und mit Siemens BCU siehts auch nicht anders aus:

                  Code:
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6A
                  got UNEXPECTED: 0x4E
                  got L_ACKN_IND
                  got UNEXPECTED: 0xA4
                  got U_CONFIGURE_IND: 0x1
                  got U_CONFIGURE_IND: 0x3D
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got UNEXPECTED: 0xA0
                  got U_CONFIGURE_IND: 0x41
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x9
                  got L_POLL_DATA_IND
                  got U_STATE_IND: 0x57
                  got unexpected L_DATA_CON
                  L_DATA_CON not received within expected time
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got UNEXPECTED: 0x28
                  got UNEXPECTED: 0x72
                  got U_CONFIGURE_IND: 0x65
                  got L_ACKN_IND
                  got UNEXPECTED: 0xD0
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x39
                  got U_STATE_IND: 0x4F
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_FRAME_STATE_IND: 0x53
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_FRAME_STATE_IND: 0x53
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0xAA
                  got U_STATE_IND: 0x57
                  L_DATA_CON not received within expected time
                  got unexpected L_DATA_CON
                  got U_STATE_IND: 0x17
                  got U_STATE_IND: 0x47
                  L_DATA_CON not received within expected time
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got UNEXPECTED: 0x28
                  got UNEXPECTED: 0x76
                  got U_CONFIGURE_IND: 0x65
                  got L_ACKN_IND
                  got UNEXPECTED: 0xF5
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_FRAME_STATE_IND: 0x53
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_FRAME_STATE_IND: 0x53
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_FRAME_STATE_IND: 0x53
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got UNEXPECTED: 0xAE
                  got U_STATE_IND: 0x57
                  got unexpected L_DATA_CON
                  L_DATA_CON not received within expected time
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got UNEXPECTED: 0x28
                  got UNEXPECTED: 0x7A
                  got U_CONFIGURE_IND: 0x65
                  got U_CONFIGURE_IND: 0x1
                  got UNEXPECTED: 0x1A
                  got U_STATE_IND: 0x4F
                  got L_ACKN_IND
                  got U_STATE_IND: 0x4F
                  got L_ACKN_IND
                  got U_STATE_IND: 0x4F
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x8
                  got U_SYSTEM_STAT_IND: 0x8
                  got U_STATE_IND: 0x57
                  got L_ACKN_IND
                  got U_STATE_IND: 0x4F
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_FRAME_STATE_IND: 0x53
                  got L_ACKN_IND
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x0
                  got U_SYSTEM_STAT_IND: 0x1B
                  got U_STATE_IND: 0x57
                  got unexpected L_DATA_CON
                  L_DATA_CON not received within expected time
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x1D
                  got UNEXPECTED: 0x46
                  got UNEXPECTED: 0x5A
                  got U_CONFIGURE_IND: 0x1
                  got UNEXPECTED: 0x54
                  got L_ACKN_IND
                  got UNEXPECTED: 0x6
                  got L_ACKN_IND
                  got U_RESET_IND
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x25
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got UNEXPECTED: 0x26
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0x5
                  got L_ACKN_IND
                  got U_STATE_IND: 0x27
                  got L_ACKN_IND
                  got UNEXPECTED: 0x6
                  got L_ACKN_IND
                  got UNEXPECTED: 0x2A
                  got L_ACKN_IND
                  got UNEXPECTED: 0x2
                  got L_ACKN_IND
                  got U_STOP_MODE_IND
                  got U_CONFIGURE_IND: 0x9
                  got U_STATE_IND: 0x57
                  got unexpected L_DATA_CON
                  L_DATA_CON not received within expected time
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x4E
                  got UNEXPECTED: 0x8E
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got UNEXPECTED: 0x6
                  got U_STATE_IND: 0xFF
                  got L_ACKN_IND
                  got U_STATE_IND: 0xFF
                  got U_CONFIGURE_IND: 0x9
                  got U_STATE_IND: 0xFF
                  got U_FRAME_STATE_IND: 0x13
                  got U_STATE_IND: 0xFF
                  frame with invalid crc ignored
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got UNEXPECTED: 0x6A
                  got U_FRAME_STATE_IND: 0x53
                  got U_STATE_IND: 0xD7
                  got L_ACKN_IND
                  got U_CONFIGURE_IND: 0xD
                  frame with invalid crc ignored
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x4E
                  got UNEXPECTED: 0x4E
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got UNEXPECTED: 0x6
                  got U_STATE_IND: 0xFF
                  got L_ACKN_IND
                  got U_STATE_IND: 0xFF
                  got U_CONFIGURE_IND: 0x9
                  got U_STATE_IND: 0xFF
                  got U_FRAME_STATE_IND: 0x13
                  got U_STATE_IND: 0xFF
                  frame with invalid crc ignored
                  got U_STATE_IND: 0xFF
                  frame with invalid crc ignored
                  got U_STATE_IND: 0xFF
                  Timeout during RX_L_DATA
                  L_DATA_CON not received within expected time
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x4E
                  got UNEXPECTED: 0x4E
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got UNEXPECTED: 0x6
                  got U_STATE_IND: 0xFF
                  got L_ACKN_IND
                  got U_STATE_IND: 0xFF
                  got U_CONFIGURE_IND: 0x9
                  got U_STATE_IND: 0xFF
                  got U_FRAME_STATE_IND: 0x13
                  got U_STATE_IND: 0xFF
                  frame with invalid crc ignored
                  got U_STATE_IND: 0xFF
                  Timeout during RX_L_DATA
                  expected L_DATA_CON not received
                  got UNEXPECTED: 0x60
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x4E
                  got UNEXPECTED: 0x4E
                  got U_CONFIGURE_IND: 0x1
                  got L_ACKN_IND
                  got L_ACKN_IND
                  got UNEXPECTED: 0x6
                  got U_STATE_IND: 0xFF
                  got L_ACKN_IND
                  got U_STATE_IND: 0xFF
                  got U_CONFIGURE_IND: 0x9
                  got U_STATE_IND: 0xFF
                  got U_FRAME_STATE_IND: 0x13
                  got U_STATE_IND: 0xFF
                  frame with invalid crc ignored
                  got U_STATE_IND: 0xFF
                  Timeout during RX_L_DATA
                  expected L_DATA_CON not received
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0xF1
                  got U_CONFIGURE_IND: 0x11
                  got UNEXPECTED: 0x6
                  got UNEXPECTED: 0x60
                  got UNEXPECTED: 0xCE
                  got UNEXPECTED: 0x16
                  got unexpected L_DATA_CON
                  OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                  Kommentar


                    Falls es jemand debuggen möchte: in die *uart*-Methoden in der Platform printHex einfügen und dann mit der tpuart-Dokumentation analysieren was Sache ist.

                    Kommentar


                      Zitat von thesing Beitrag anzeigen
                      Falls es jemand debuggen möchte
                      möchten täte ich schon gern, aber das TPUart Protokoll hab ich bisher außen vor gelassen (man kann ja nicht alles können). Ich hab mal einen Programmiervorgang gelogged, sowohl ETS als auch Serial.
                      Ich werde noch nicht so recht schlau draus, ist das Protokoll irgendwo mal "in a nutshell" erklärt? DB hab ich, aber der Einstieg ist nicht so easy.

                      Ich hänge meine Logs mal an und werde weiter versuchen den Knackpunkt rauszufinden. Und ich werde mal mit einem "stillen" Bus testen. Nicht dass es am Ende nur Kollisionen sind.

                      knx_prog_log.zip
                      OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                      Kommentar


                        good news! Es scheinen nur Kollisionen gewesen zu sein. Denn auf dem leeren Testbus den ich mir dann aufgebaut habe läuft alles einwandfrei durch.

                        Gott sei Danke, denn ich hab mir gestern bestimmt 2 Stunden das Hirn zermartert nur um ein paar wenige Byte Kommunikation zwischen uC und TPUart zu verstehen.

                        Code:
                        <p01
                        p>03
                        war noch verständlich. Aber dann auch nur ein Gruppentelegramm auf dem Bus...

                        Code:
                        p>BC L_Data.ind ohne repeat system prio
                        p>09 (1/1/
                        p>01 /1)
                        p>E1 ?
                        <p10 ACK
                        
                        p>81
                        p>2B
                        p>9C
                        p>09
                        p>01
                        p>E1
                        <p10
                        
                        p>81
                        p>0B
                        p>9C
                        p>09
                        p>01
                        p>E1
                        <p10
                        
                        p>81
                        p>0B
                        p>9C
                        p>09
                        p>01
                        p>E1
                        <p10
                        
                        p>81
                        p>0B

                        Das passte alles nicht zur Telegrammstruktur. Bis ich dann irgendwann darauf gekommen bin dass die Schnittstelle vom Testbus mit 0.0.0 sendet und der knx-stack bytes mit dem Wert 0 nicht ausgibt Das war dann mein Exkurs und ich lass es wieder sein.



                        thesing

                        könntest du noch was zum Thema "Kann der Stack das Laden "falscher" KNXProds verhindern? Kann man irgendwo im Stack einstellen welche Applikationsnummer, Version und/oder Hersteller der Stack beim Laden akzeptiert?
                        Wo werden im Stack die Load-Procedures behandelt?
                        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                        Kommentar


                          Zitat von SirSydom Beitrag anzeigen
                          Load-Procedures
                          Die Lade-Prozeduren bestehen ja erstmal nur aus normalen MemoryWrite/PropertyRead etc Telegrammen.
                          Diese werden glaub von application_layer.cpp an die bau_systemB.cpp weiter gegeben und dort verarbeitet.

                          Die ETS selbst prüft nur Maskenversion und Hersteller.
                          Man könnte das lösen indem man in die Ladeprozedur noch ein "LdCtrlCompareProp" einfügt.
                          Quasi eine Property abfragen und bei Ungleichheit eine ErrorMessage ausgeben "Applikation ist nur für ModbusGateway".
                          (Zum Beispiel die PID_ORDER_INFO)

                          Die KNX Virtual Geräte haben zum Beispiel so eine Abfrage drin.
                          Code:
                          <LoadProcedures>
                              <LoadProcedure MergeId="2">
                                  <LdCtrlRelSegment LsmIdx="4" Size="256" Mode="0" Fill="0" />
                                  <LdCtrlCompareProp InlineData="00FA020723" ObjIdx="4" PropId="13">
                                      <OnError Cause="CompareMismatch" MessageRef="M-00FA_A-0207-23-E298_M-1" />
                                  </LdCtrlCompareProp>
                              </LoadProcedure>
                              <LoadProcedure MergeId="4">
                                  <LdCtrlWriteRelMem ObjIdx="4" Offset="0" Size="256" Verify="false" />
                              </LoadProcedure>
                          </LoadProcedures>
                          <Messages>
                              <Message Id="M-00FA_A-0207-23-E298_M-1" Name="EM_APmismatch" Text="This application program can only be used for device D7." />
                          </Messages>
                          Zuletzt geändert von thewhobox; 22.09.2021, 11:59.
                          OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                          Kommentar


                            ich versuche mich aktuell am Firmware-Update hochschieben über MemoryWrite und Kaenx.Connect.
                            Soweit sind erste Tests schonmal ganz vielversprechend, die Daten kommen an und auch Extended Frames klappen.
                            Sobald jedoch >11 byte gesendet werden (Extended Frame) bekomme ich vom Stack beim Senden des Response folgende Ausgabe (erstmal 10 byte, dann
                            32 byte).
                            Die Writes gehen zum Testen erstmal NICHT in den speicher...
                            Im zweiten Fall wird die MemoryResponse auch korrekt zurückgeschickt und empfangen von kaenx.connect.
                            Ich kann leider nur per Wireshark tracen da mein IP-Interface kein Busmonitor kann (nur für die Daten zwischen ETS und Gerät, aber nicht zwischen kaenx und Gerät).

                            Ist euch das bei Nutzung von Extended Frames auch schon aufgefallen?
                            mumpf
                            du hast damit doch Erfahrung, oder?

                            Code:
                            rec memWriteInd adr:FF 7F
                            number: 0A
                            data: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
                            snd memoryReadIndication adr:FF 7F 00 00
                            number: 0A
                            
                            rec memWriteInd adr:FF 7F
                            number: 20
                            data: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
                            snd memoryReadIndication adr:FF 7F 00 00
                            number: 20
                            expected L_DATA_CON not received
                            got UNEXPECTED: 0x60
                            got U_CONFIGURE_IND: 0x11
                            got UNEXPECTED: 0x6
                            got U_CONFIGURE_IND: 0x11
                            got UNEXPECTED: 0xF2
                            got UNEXPECTED: 0x23
                            got UNEXPECTED: 0x52
                            got UNEXPECTED: 0x60
                            got U_STATE_IND: 0x7F
                            got U_STATE_IND: 0xFF
                            got L_ACKN_IND
                            got U_CONFIGURE_IND: 0x41
                            got UNEXPECTED: 0xC1
                            got U_STATE_IND: 0x6F
                            got U_STATE_IND: 0xE7
                            got L_ACKN_IND
                            got U_FRAME_STATE_IND: 0x5B
                            got UNEXPECTED: 0xEB
                            got UNEXPECTED: 0xAE
                            got UNEXPECTED: 0x89
                            got U_CONFIGURE_IND: 0x59
                            got UNEXPECTED: 0xE5
                            got U_CONFIGURE_IND: 0x59
                            got U_CONFIGURE_IND: 0x69
                            got UNEXPECTED: 0x70
                            Timeout during RX_L_DATA


                            Wenn ich den verify-Mode über Property 0,14 ausschalte, tut alles wie es soll. Logisch.
                            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                            Kommentar


                              Bitte beachte, dass die Speicheradresse vom Stack immer relativ zu _platform.getEepromBuffer() ist. Du kannst damit also nicht so einfach auf ganz bestimmte Speicherbereiche schreiben. Dafür würde ich an deiner Stelle ein neues InterfaceObject ähnlich wie dem ApplicationProgramObject hinzufügen. Das packst du auf einen festen Index und kannst dann dort über die Properties alles nötige machen. Dafür gibt es auch Bereiche für die Objekttypen und Properties für herstellerspezifische Erweiterungen.

                              Und wie proggerKA schon gesagt hat: Man kann prinzipiell jede Application auf den Stack programmieren. (Zumindest mit der korrekten Maskenversion).
                              Kommerzielle Geräte prüfen oft PID_HARDWARE_TYPE. Siehe https://support.knx.org/hc/en-us/art...-HARDWARE-TYPE

                              Kommentar


                                Zitat von SirSydom Beitrag anzeigen
                                du hast damit doch Erfahrung, oder?
                                Neee, gar nicht, sorry. Ich hab nur im Stack freigeschaltet, dass man mit dem MDT-Interface schneller programmieren kann (die nennen das "Long Frame Support"). Ob das jetzt die Extended Frames sind, weiß ich gar nicht. Ich bin nicht so fit im Protokoll selbst, sorry.

                                Gruß, Waldemar
                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X