Ankündigung

Einklappen
Keine Ankündigung bisher.

Makros auf Wunsch ausführen

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

    #16
    Zitat von enertegus Beitrag anzeigen
    Ähm, da gibts doch das FORLOOP Makro

    ForLoop(Name,Start,CountMax,Aktion)

    Für Aktion kannst Du jede beliebige Anweisung (oder mehrere durch ; getrennt) schreiben - ok das ist neu und nur im Beta-Bereich zu finden, aber allzulange dauert das nun nicht mehr.
    Klar, ForLoop kann Anweisungen Ausführen bzw. bald kann man Makros Kommandos übergeben ... aber:
    - als Makro wird es in den Makro-Bereich geschrieben und dort ausgeführt
    - wenn ich das Makro z.B. als write()-Ersatz mehrfach verwenden will, eben den Sende-Counter erhöhen, wird mir der Parameter nicht viel bringen und es wird für jedes write(GA_xy) ein eigenes Makro zu erstellen sein ... sonst kann ich in einem Durchlauf nicht mehr als eine Nachricht verschicken.

    Also das Beispiel als pseudo C-Makro mit eibPC Kommandos könnte so aussehen:
    Code:
    [COLOR=magenta]#define[/COLOR] write_statistik( [COLOR=green]GA[/COLOR], [COLOR=royalblue]Wert[/COLOR] )   { [COLOR=magenta]write[/COLOR]( [COLOR=green]GA[/COLOR], [COLOR=royalblue]Wert[/COLOR] ); Bus_statistik_sent = Bus_statistik_sent + 1 }
    Zweck dieses Makros: Es wir im Code statt write() verwend und erhöht zusätzlich den counter.

    Dies ist ausdrücklich noch kein Vorschlag zur Umsetzung im eibPC, dies wird wohl anders aussehen?
    BR
    Marc

    Kommentar


      #17
      Zitat von saft6luck Beitrag anzeigen
      Zweck dieses Makros: Es wir im Code statt write() verwend und erhöht zusätzlich den counter.
      Also Makros wie Funktionen verwenden?
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #18
        Zitat von enertegus Beitrag anzeigen
        Also Makros wie Funktionen verwenden?
        Ja, darauf läuft es dann hinaus, auf Quasi-Inline-Funktionen. Quasi, weil Funktionen normalerweise einen eigenen Gültigkeitsbereich für lokale Variablen haben (aber das ist beim eibPC wohl eh noch nicht vorgesehen, oder? - und hier auch nicht notwendig ...).

        Kannst du dich mit dem Gedanken anfreunden?
        BR
        Marc

        Kommentar


          #19
          Mir reichen schon Makros, die dann durch den Volltext ersetzt werden.
          Damit kann man schon übersichtlich programmieren.
          Gruss Pio

          Kommentar


            #20
            Zitat von pio Beitrag anzeigen
            Mir reichen schon Makros, die dann durch den Volltext ersetzt werden.
            Damit kann man schon übersichtlich programmieren.
            Jo, sag ich doch.
            BR
            Marc

            Kommentar


              #21
              Also warum es die verschiedenen Sektionen gibt, verstehe auch ich nicht.
              Auch mir wäre es lieber, man könnte Makros so flexibel definieren und einsetzen wie in C - zumal das gar keine Funktion des Parsers/Compilers an sich ist.
              Der Parser sieht doch nur, was nach der Expansion aller Makros herauskommt, die Makros selbst als auch deren Auftreten im Code dürfte ihm doch verborgen bleiben, und damit müßte dem Parser doch eigentlich auch alles rund um die Makros egal sein.
              Ich verstehe ja noch, das das Einführen von Unterfunktionen erhebliche Änderungen am Parser/Compiler bedeuten würden. Aber das mit den Makros verschließt sich mir...

              BTW:
              In vielen C-Entwicklungspaketen ist noch heute ein Präprozessor als eigenständiges Programm enthalten. Kann man das EibStudio so konfigurieren, das es einen solchen externen Präprozessor einbindet?
              Oder auch einen eigenen Präprozessor, z.B. in Perl geschrieben...
              Oder...
              Tessi

              Kommentar


                #22
                Zitat von Tessi Beitrag anzeigen
                Oder auch einen eigenen Präprozessor, z.B. in Perl geschrieben...
                Oder...
                Das ist natürlich möglich. Du könntest eine eigene "Makrosyntax" erfinden,
                und den so erzeugten Code vorher durch dein Script in konformen EibPC-Sourcecode "erweitern".

                Ob man das vom EibStudio aus dann automatisieren könnte, müsste Enertex beantworten. Idee sinngemäss: Statt "Eibparser.exe" ein "Eibparser.bat" bzw Script starten ...
                Gruss Pio

                Kommentar


                  #23
                  Zitat von Tessi Beitrag anzeigen
                  Also warum es die verschiedenen Sektionen gibt, verstehe auch ich nicht.
                  Die Sektionen sind dazu da, dass man Projektverwaltung und Code in einer einzigen Datei speichern kann. Die Frage geht aber vielleicht in die Richtung, warumdie Makros im eigenen Bereich stehen. Das liegt an der Einfachheit in der Umsetzung. Aber ich sage ja auch nicht, dass das auf ewig so bleiben wird. Ihr wollt doch auch in der Zukunft noch mal updaten können...
                  Ich verstehe ja noch, das das Einführen von Unterfunktionen erhebliche Änderungen am Parser/Compiler bedeuten würden. Aber das mit den Makros verschließt sich mir...
                  Das Einführen (=Erkennen von Unterfunktionen) ist erst mal der gleiche Aufwand, aber unmöglich ist ja gar nix...
                  Oder auch einen eigenen Präprozessor, z.B. in Perl geschrieben...
                  Oder...
                  Da sind wir offen und das liese sich auch rel. einfach einbauen. Da müsste jemand konkreter werden und mal so einen Präprozessor bauen und an uns zum Testen schicken (natürlich in Win/Lin/Mac).
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #24
                    Zitat von enertegus Beitrag anzeigen
                    Da müsste jemand konkreter werden und mal so einen Präprozessor bauen und an uns zum Testen schicken (natürlich in Win/Lin/Mac).
                    So weit bin ich noch nicht, aber ich dachte da ja auch nur an eine Möglichkeit, den Code zwischen den entsprechenden Schritten des EibStudios noch optional von externen Programmen überarbeiten lassen zu können. Interessant wäre ein Zugriff vor allem anderen für einen C-artigen Präprozessor, und ggf. nachdem das EibStudio seinerseits alles expandiert hat (auch wenn ich an dieser Stelle derzeit wohl noch nichts einzufügen wüßte...)
                    Aber für den Anfang denke ich wird den meisten hier reichen, wenn vor dem EibStudio einfach ein freier C-Präprozessor über der Code läuft. Dessen Syntax dürfte vielen bekannt sein und bisheriger Code dürfte von ihm nicht verändert werden...
                    Sollte ich je einen eigenen schreiben (müssen) wäre wohl Perl meine erste Wahl, aber nicht unbedingt die beste generell für das EibStudio, denn dann müßten alle Nutzer auch gleich eine mehr oder weniger umfangreiche Perl-Installation auf dem PC haben - das will sicherlich nicht jeder - und ich möchte das Rad eigentlich auch nicht neu erfinden müssen.
                    Früher gab es separate Präprozessoren als einfache EXE-Datei - leider konnte ich bisher keinen mehr finden, da diese Funktionalität mittlerweile bei den meisten Entwicklungsumgebungen Bestandteil des Compilers geworden ist...
                    Aber vielleicht hat ja jemand hier noch einen freien Stand-alone Präprozessor der ins EibStudio integriert werden dürfte.
                    Tessi

                    Kommentar


                      #25
                      Zitat von Tessi Beitrag anzeigen
                      [..]
                      Aber für den Anfang denke ich wird den meisten hier reichen, wenn vor dem EibStudio einfach ein freier C-Präprozessor über der Code läuft. Dessen Syntax dürfte vielen bekannt sein und bisheriger Code dürfte von ihm nicht verändert werden...
                      [..]
                      Hm, das klingt gut! gcc mit -traditional-cpp sollte sich doch einfach integrieren lassen, oder ein gnu m4?
                      BR
                      Marc

                      Kommentar


                        #26
                        Zitat von saft6luck Beitrag anzeigen
                        Hm, das klingt gut! gcc mit -traditional-cpp sollte sich doch einfach integrieren lassen, oder ein gnu m4?
                        Ich denke, an sich kein Problem. Ich frag da mal hier nach...
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #27
                          Bevor das Thema Präprozessor und Makros das gleiche Schicksal ereilt wie die RTC möchte ich lieber mal zeitnah nachhaken:

                          Welche Antwort gab es denn auf die Nachfrage?
                          Tessi

                          Kommentar


                            #28
                            Zitat von Tessi Beitrag anzeigen
                            Welche Antwort gab es denn auf die Nachfrage?
                            Es ist auf der Liste (Prä und Postprozessor). Allerdings haben wir Feature Freeze und das wird nix mehr für das nächste Release.
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #29
                              Schade, hätte mir bei den jetzt anstehenden Entwicklungen geholfen...
                              Für wann ist denn das übernächste geplant?
                              Tessi

                              Kommentar


                                #30
                                Zitat von Tessi Beitrag anzeigen
                                Für wann ist denn das übernächste geplant?
                                November 2010.
                                Du kannst auch mit einem Makefile und dem eibparser und nconf direkt arbeiten. (eibparser -h gibt da weitere Infos). Ggf. auch hier nachfragen. Also quasi ohne EibStudio - wir machen das auch, speziell bei den Regressionstests.
                                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                                Enertex Produkte kaufen

                                Kommentar

                                Lädt...
                                X