Ankündigung

Einklappen
Keine Ankündigung bisher.

In der Tiefe: Validierungskonzept

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

    Zitat von Tessi Beitrag anzeigen
    Ich verstehe ja auch, wenn Fragen mit beantwortet werden.
    Aber dazu muß die Dokumentation auch tatsächlich alles vollständig abdecken. Das ist aus meiner Sicht bei der EPC-Doku noch nicht der Fall.
    Dann frag doch ganz konkret mit einem Beispiel, welches sich anders verhält, als Du Dir es denkst.
    Obige Beispiele haben keine gültige Syntax, der EibParser übersetzt sie nicht, und daher brauch ich nicht erklären, warum Sie nicht funktionieren, da sie einfach gar nicht funktionieren. Wenn es um das Thema "if a>10 then a=a+1 endif" geht, bin ich zwar der Meinung, dass es schon beschrieben ist, aber ich kann gerne nochmals ausholen (und werde das Manual ggf. erweitern).
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      Zitat von enertegus Beitrag anzeigen
      Obige Beispiele haben keine gültige Syntax, der EibParser übersetzt sie nicht, und daher brauch ich nicht erklären, warum Sie nicht funktionieren, da sie einfach gar nicht funktionieren.
      Es geht um grundsätzliche Prinzipien und die Fragen werden wegen Formfehler abgewiesen.

      OK, ich habe mich - schreibfaul wie ich bin - nicht an die ganz korrekte Schreibweise gehalten, aber um die ging es mir auch noch nicht - die ist dokumentiert und wird vom Parser überwacht. Mir geht es um die logischen Fallstricke im Code, die Dinge, die nicht vom Parser bemängelt werden aber ggf. sich nicht so verhalten, wie ich mir das vorstelle, weil ich beim Entwurf irgendeine Eigenheit des EPCs nicht bedacht habe - weil ich das nicht aus der Dokumentation so herausgelesen habe.
      Mir geht es momentan um das grundsätzliche Verständnis - was genau machen Parser und EPC tatsächlich aus dem Code - vor allem verglichen mit dem, was man abweichend davon als "normaler" Programmierer erwarten würde.
      Darum bleibt die Frage: Welches Beispiel wäre auch bei korrekter Einhaltung der Syntax denn generell nicht zulässig. Und mit welchem Code statt des fehlerhaften würde ich dann das erwartete/vermutete Verhalten beim EPC bekommen?

      Ich habe keinen noch keinen Code, der nicht tut was ich möchte - die paar bisherigen Supersimpellogiken funktionieren - sondern ich habe einen Menge Wünsche/Probleme deren Lösung noch codiert werden muß. Leider habe ich kein zweites Gebäude als "Labor" und am lebenden Objekt (eben dem eigenen Heim) verträgt der FAF (Family Acceptance Factor) keine ausgiebigen Try-and-Error-Sessions. Wenn da mal richtig was schief geht, brauche ich den Code hier nicht mehr analysieren zu lassen, dann hat meine Familie den EPC schneller als unzumutbare Störquelle entsorgt als irgend jemand hier antworten kann!
      Deshalb möchte ich möglichst viel schon vorher klären. Deshalb suche ich nach grundsätzlichen Prinzipien und allen Ausnahmen davon. Und es ist nicht nur anstregend, sie diese aus einer Hand voll Beispielen ableiten zu müssen - es ist schlicht nicht möglich, da diese auch alle zusammen eben nicht alle möglichen Eventualitäten abdecken.
      Ich kann mich statt dessen auch ein paar Wochen lang hinsetzen und ewig lange Listen von Anforderungen schreiben, diese hier veröffentlichen und darauf hoffen/warten, das man mir dann diese ganz genauen "Beispiele" in funktionierenden Code umsetzt - aber so ist das ja wohl nicht wirklich gemeint, oder?
      Ich möchte das System EPC einfach richtig und vollständig verstehen, das ist doch nicht zu viel verlangt?
      Tessi

      Kommentar


        Zitat von Tessi Beitrag anzeigen
        Ich möchte das System EPC einfach richtig und vollständig verstehen, das ist doch nicht zu viel verlangt?
        Nein, das ist sogar erwünscht!
        Aber zu Deiner Frage:
        a=a+1u08
        etc. steht das ja schon explizit mit fast den gleichem Beispiel. Wenn da noch was unklar ist, so beziehe Dich halt darauf. Wir ergänzen gerne die Beispiele.
        Angehängte Dateien
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          Zitat von enertegus Beitrag anzeigen
          Nein, das ist sogar erwünscht!
          Aber zu Deiner Frage:
          a=a+1u08
          etc. steht das ja schon explizit mit fast den gleichem Beispiel. Wenn da noch was unklar ist, so beziehe Dich halt darauf. Wir ergänzen gerne die Beispiele.
          Im Betaforum hat mir ein User noch einen Tipp gegeben, wo Dein Problem
          if a==10 then a=a+1 else a=a-2
          iegen könnte. Ich werde das morgen ins Handbuch einpflegen und hoffe die Sache wird allen klarer.
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            Zitat von enertegus Beitrag anzeigen
            Nein, das ist sogar erwünscht!
            Aber zu Deiner Frage:
            a=a+1u08
            etc. steht das ja schon explizit mit fast den gleichem Beispiel. Wenn da noch was unklar ist, so beziehe Dich halt darauf. Wir ergänzen gerne die Beispiele.

            Bild siehe Posting oben!
            Der Text (im Bild) ist geeignet, einen Knoten im Hirn zu verursachen.

            Variablen:
            - Im angegebenen Text vermutet man zuerst ein change() von x und y, 'da sich x und y im nächsten Zyklus nicht mehr ändert'. (Hast du wirklich konstante Variablen im Baum mit Abhängigkeiten???)
            - Du versuchst einen Baum der Abhängigkeiten ohne jegliches Bild zu vermitteln, wobei du speziell auf Eigenschaften "vererbt sich", "von unten nach oben" und "invalidiert sich" etc. eingehst. Es mag ja sein, dass du das im Kopf hast, aber der Leser überließt das eher, oder macht sich u.U. ein falsches Bild. Später verwendest du dann auch noch diese Abhängigkeiten um das Verhalten in Spezialfällen zu beschreiben ...
            - "da aber ODER bereits auf EIN steht"? Da kommt plötzlich auf, dass ODER auch ein Element im Baum ist oder sprichst du vom ODER Ausdruck?

            Generell:
            Beispiele, die solch einen Text erklären haben Markierungen, Nummern, Symbole oder irgend eine Form des näheren Bezuges zum Text.
            BR
            Marc

            Kommentar


              Zitat von saft6luck Beitrag anzeigen
              Der Text (im Bild) ist geeignet, einen Knoten im Hirn zu verursachen.

              Genau das ging mir gestern schon durch den Kopf. Mir als "aussenstehendem Programmierer" fällt die Kinnlade runter wenn ich lese, dass eine klar definierte, logische ODER-Verknüpfung in Ihrer Funktion von der Zustandsänderung der mit ihr zu verknüpfenden Elemente abhängig ist. Dass damit je nach Zustand ein "bedingtes XOR" gebaut wird, scheint keine Rolle zu spielen.
              In meiner Ausbildung hatten wir mal so ein "Spass-Logik-DINA4-Blatt" am Schrank in der Werkstatt hängen.
              Dort waren fiktive logische Gatter in der Form "vielleicht", "warum nicht", "oder nicht", "doch" usw. vorhanden - jetzt weiss ich endlich, was damit gemeint war.
              Gruß

              Sascha

              Kommentar


                Zitat von no sleep Beitrag anzeigen
                Dass damit je nach Zustand ein "bedingtes XOR" gebaut wird, scheint keine Rolle zu spielen.
                Was ist denn ein "bedingtes XOR"? Und warum sollte aus dem OR ein XOR werden, nur weil der Ausdruck nur bei Änderungen von mindestens einem seiner Teilausdrücke erneut ausgewertet wird? Habe ich da etwa eine weitere Nebenwirkung des VKs noch nicht erkannt?
                Tessi

                Kommentar


                  Zitat von Tessi Beitrag anzeigen
                  Was ist denn ein "bedingtes XOR"?
                  Das ist eben die Frage. Normalerweise sollte es sowas garnicht geben, aber wenn lt. Doku eine OR-Verknüpfung ihren Ausgang abhängig vom eigenen Zustand (eine Verknüpfung mit eigenem Zustand - hä?) und von der Änderung ihrer Eingangsgrössen ändert, es es eben keine logische ODER-Verknüpfung mehr sondern irgendwas anderes.
                  Gruß

                  Sascha

                  Kommentar


                    Zitat von no sleep Beitrag anzeigen
                    Das ist eben die Frage.
                    Da hast Du was falsch verstanden.
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      Zitat von enertegus Beitrag anzeigen
                      Da hast Du was falsch verstanden.
                      Gut, dass ich das auch nicht verstehen muss, weil ich mir "sowas" nie antun würde.
                      Aber euren Kunden solltet ihr soweit entgegenkommen, dass sie in der Lage sind, es zu verstehen, meinste nicht?
                      Gruß

                      Sascha

                      Kommentar


                        Zitat von no sleep Beitrag anzeigen
                        Gut, dass ich das auch nicht verstehen muss, weil ich mir "sowas" nie antun würde.
                        Ich glaube, Du solltest hier nicht einfach was in die Runde schmeißen, so quasi auf Verdacht mal was gesagt.

                        Da zieh ich mal den Stecker, PLONK.
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          Zitat von enertegus Beitrag anzeigen
                          Da zieh ich mal den Stecker, PLONK.
                          Wer im Glashaus sitzt...ich sage nur FSF und nicht vorhandene Flash-Kompetenz.
                          DOPPELPLONK & Mail an die entsprechenden Stellen ist raus.
                          Gruß

                          Sascha

                          Kommentar


                            Es muß da aber doch noch einen besseren Weg geben das VS eindeutig und vollständig zu beschreiben, als seitenlange Prosa, die offenbar immer irgendwie Interpretationsspielraum für Missverständnisse läßt, und Beispiele, die ohnehin nicht alles abdecken können und teilweise gleich neue Fragen aufwerfen.

                            Oben wurde erwähnt, das der Parser/Compiler den Code in Objekte und eine Abhängigkeitsstruktur umsetzt. Ich finde, für komplexere Logiken ist es hilfreich zu wissen, wie in etwa so ein Objekt und die Abhängigkeitsstruktur aussieht und was die Laufzeitumgebung im EPC damit macht, also wie der Ablauf beim Auftreten eines Events denn ist. Das schließt auch vorhandene Queues, Buffer und deren Verwaltung ein.

                            Bis dahin habe ich aber noch eine konkrete Frage:

                            [highlight=epc]
                            a=0u08
                            b=0u08
                            c=0u08
                            d=0u08

                            a='1/2/3'u08
                            b=a+1u08
                            c=a+b+1u08
                            d=a+b+c+1u08

                            if (d>=0) then write('2/3/4'u08, d)[/highlight]
                            Kommt über '1/2/3' eine 0 passiert nichts - a ist ja schon 0.
                            Kommt über '1/2/3' eine 1 wird dann im selben Zyklus nur a=1 und b,c und d bekommen die Änderung von a erst im folgenden Zyklus mit?
                            Wenn dem so ist, ändert sich c dann zweimal einmal wegen a und dann im folgenden Zyklus wegen b und ändert sich d dann analog dazu dreimal in drei aufeinanderfolgenden Zyken?
                            Was wird dabei wann über '2/3/4' gesendet?
                            Bei "reiner" Programmierlogik sollte nur einmal 8 gesendet werden.
                            Wenn aber Änderungen der Variablen immer erst im Folgezyklus bearbeitet werden, dann würde ich 2,4 und 8 in dichter Folge erwarten - unter der Annahme, das es einen FIFO für zu sendende Botschaften gibt.
                            Oder wird dennoch nur 8 gesendet, weil während des Sendens der dann aktuelle Wert verwendet wird und der bis dahin auf jeden Fall schon 8 ist?
                            Wird dann drei mal 8 gesendet? Oder wird das zu einem Telegramm zusammengefasst? Falls ja, woher will die Ablaufsteuerung denn wissen, das ich nicht doch drei Botschaften wollte?

                            Wie gesagt, solche Fragen könnte ich mir selbst beantworten, wenn ich mehr über die internen Vorgänge im EPC wüßte...
                            Tessi

                            Kommentar


                              Ich werde da heute abend noch etwas malen und verdeutlichen (soweit es mir gelingt)
                              Aber schon mal hierzu:
                              [QUOTE=Tessi;141323]
                              [highlight=epc]
                              a=0u08
                              b=0u08
                              c=0u08
                              d=0u08

                              a='1/2/3'u08
                              b=a+1u08
                              c=a+b+1u08
                              d=a+b+c+1u08

                              if (d>=0) then write('2/3/4'u08, d)[/highlight]
                              Kommt über '1/2/3' eine 0 passiert nichts - a ist ja schon 0.
                              richtig
                              Kommt über '1/2/3' eine 1 wird dann im selben Zyklus nur a=1 und b,c und d bekommen die Änderung von a erst im folgenden Zyklus mit?
                              Nein, die werden sofort im Zyklus sich ändern, nur change() reagiert darauf erst im folgenden.
                              Was wird dabei wann über '2/3/4' gesendet?
                              gar nix, weil ja d=>0 schon zum Systemstart gültig ist.
                              Wie gesagt, solche Fragen könnte ich mir selbst beantworten, wenn ich mehr über die internen Vorgänge im EPC wüßte...
                              Es hat absolut nichts mit Geheimniskrämerei zu tun. Ich bin drüber, da wa zu malen.
                              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                              Enertex Produkte kaufen

                              Kommentar


                                Naja, die "Sprache" des EibPC ist glaube ich für jemanden der schonmal programmiert hat (nicht verwechseln mit dem parametrieren in der ETS oder dem beklicken einer SPS bitte!) - zumindest gewöhnungsbedürftig.
                                Dann gehts recht gut..

                                Aber ich finds garnicht so schlecht, jeder der <=2007 mit dem HS angefangen hat und es nun gewohnt ist 15 Minuten (in Worten -> bis heute: eine Viertelstunde!) ohne jeglichen Support/gescheite Doku vom Hersteller (Anwesende im Forum ausgenommen) sich mal überraschen zu lassen, was nach dem Neustart passiert Der liebt das bestimmt, nach 10sek ggfs. sogar einen Bug zu finden (der nicht in 2 J sondern in 2 Tagen gefixed wird..)
                                Man betrachtet das dann vielleicht auch anders

                                Makki
                                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                                -> Bitte KEINE PNs!

                                Kommentar

                                Lädt...
                                X