Ankündigung

Einklappen
Keine Ankündigung bisher.

ProgMode

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

    ProgMode

    Hallo!

    da es bei herkömmlichen KNX-Geräten idR keine Einschränkung der Funktion gibt (mir ist noch keines untergekommen) wenn der ProgMode aktiv ist, hab ich nicht damit gerechnet dass dies bei Konnekting-Geräten sein kann bzw. sein muss.

    Konkret bin ich darauf gestoßen, weil ich den ProgMode per Keypad aktivieren bzw deaktivieren wollte, das Deaktivieren aber nicht funktioniert weil das Keypad nicht gepollt wird
    Die Lösung ist trivial (Keypad unabhängig von Konnekting.isReadyForApplication() pollen) - aber interessiert mich nun.

    In euren DemoSketches und der Doku wird im loop() ermittelt, ob man im progmode ist oder nicht, und wenn nicht, die Abarbeitung der "Applikation" gestoppt.

    Ist das tatsächlich notwendig? Welche Einschränkungen bestehen im ProgMode?
    Gibt es einen unterschied zwischen "ProgMode" und "Ich-Werde-Gerade-Progrmmiert-Mode" ? (bei zweitem kann ich mir ja durchaus vorstellen, dass man hier besser die App stoppt).

    #2
    Wenn du einen "schnelleren" µC nutzt und deine Applikation nicht blockt, funktioniert es auch wenn die Applikation während ProgMode läuft. Hängt halt sehr von der Applikation ab. Der sichere Weg ist, die Applikation zu stoppen.
    Ansonsten kommt es zu Programmierabbrüchen, weil das Gerät irgendwelche KNX Messages verpasst. Und dann heißt's schnell "Konnekting ist schuld"...

    Kommentar


      #3
      Das ist dafür gedacht, das keiner auf die Idee kommt Sensoren abzufragen die dann zu Timing Problemen führen werden und somit das Gerät nicht mehr programmiert werden kann.
      wenn du KeyPad in Mikrosekunden Bereich abfragen kannst, kannst versuchen, ob du KeyPad aus IsReady auslagern kannst

      Kommentar


        #4
        Sowas hab ich mir schon gedacht. Das Keypad ist nicht das Problem, da werden nur ein paar Pins ausgwertet - sehr schnell.

        Mich hat nur gewundert, dass die Einschränkung gilt, sobald der ProgMode aktiv ist. Eigentlich würde es reichen, die App zu stoppen wenn die tatsächliche Programmierung läuft.

        Kommentar


          #5
          alternativ könntest du den Progmode erst durch drücken einer Tastenkombination auslösen. So mach ich das bei meinen Tastern...

          Kommentar


            #6
            naja das mach ich doch. Halt über mein Keypad. Das funktioniert auch. Aber der Weg zurück ist blockiert, wenn man die Tasten im if(Konnekting.isReadyForApplication()){ ...} auswertet. Darum geht es.

            Mir wird nun auch klar, warum mein Dimmer sporadisch nicht funktionierte. Bei dem aktiviert sich öfters mal der ProgMode von selbst...
            Eigentlich mit Taster-Schaltung kopiert von irgendeiner Konnekting-Platine, aber ggf hab ich bei den Cs daneben gegriffen....

            Kommentar


              #7
              Zitat von SirSydom Beitrag anzeigen
              Sowas hab ich mir schon gedacht. Das Keypad ist nicht das Problem, da werden nur ein paar Pins ausgwertet - sehr schnell.

              Mich hat nur gewundert, dass die Einschränkung gilt, sobald der ProgMode aktiv ist. Eigentlich würde es reichen, die App zu stoppen wenn die tatsächliche Programmierung läuft.
              ProgMode ist ja schon Programmierung... man wartet auf ankommende Telegramme.
              Und normallerweise braucht man ProgButton nur einmal, wenn das Device noch im Auslieferungszustand ist. Danach steuert die Suite und will man nicht, dass etwas dazwischen kommt.
              aber du bist der Entwickler, du weiß besser wie dein Device reagiert, kannst also selbst entscheiden wie es in deinem Fall besser ist. Für die meisten Fällt ist unsere Lösung stabiler.

              Kommentar


                #8
                Zitat von Eugenius Beitrag anzeigen
                ProgMode ist ja schon Programmierung... man wartet auf ankommende Telegramme.
                ja - aber man wartet ja IMMER (außer man ist ein reiner Sensor) auf ankommende Telegramm und will keines verpassen. Das muss man eh leisten.
                Aber wo du Recht hast, man braucht es sehr selten, daher kann man hier auch durchaus den Weg gehen und sich auf die sichere Seite legen, und Aufwand sparen.

                Ich persönlich habe eh eher die Philosophie komplett auf den Prog-Button zu verzichten wenns irgendwie geht - meist ist der Platz knapp.

                Wenn man - analog zur ETS - den ProgMode mittels Suite aktivieren könnte, kann man ja beim Gerät im "FactoryMode" das (ist das korrekt ??) die IA 0x11FE (1.1.254) nutzen.
                Ich meine das haben wir schonmal diskutiert und ihr wollte das in die Suite einbauen, im Protokoll ist es eh drin. Aktuell (BETA4b) müsste man dazu aber das "ProgMode-Aktivieren-Telegramm" irgendwie anders senden.. müsste ich mal ausprobieren.

                Kommentar


                  #9
                  Wenn "FactoryMode", dann kann man es so machen:
                  https://github.com/KONNEKTING/ALEDD1....ino#L251-L258
                  Es darf halt maximal nur eins von diesen Geräten gleichzeitig angeschlossen werden. Sonst sind mehrere Geräte gleichzeitig im ProgMode und dann kannst du gar nicht Programmieren.

                  Kommentar


                    #10
                    Zitat von Eugenius Beitrag anzeigen
                    Wenn "FactoryMode", dann kann man es so machen:
                    gute Idee!!

                    Kommentar

                    Lädt...
                    X