Ankündigung

Einklappen
Keine Ankündigung bisher.

Tastenfunktion als Makro, wie adressieren?

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

    Tastenfunktion als Makro, wie adressieren?

    Hallo,

    nach meinen ersten erfolgreichen Versuchen mit dem Webserver heute habe ich versucht die Programmierung der Tasten im Webserver als Makro zu hinterlegen, da man sonst so oft dieselben Eingaben machen muß.

    :begin Taster1(name,WertGA)
    name^TastenNr=0
    if name^TastenNr==1 then \\
    if (WertGA) then write((WertGA),AUS) endif; \\
    if !(WertGA) then write((WertGA),EIN) endif \\
    endif
    if (WertGA) then \\
    webdisplay(30,$EIN$c14,LIGHT,ACTIVE,GREY) \\
    else webdisplay(30,$AUS$c14,LIGHT,INACTIVE,GREY) endif
    :end

    wenn ich aber jetzt als Name webbutton (32) eingebe, zeigt der Kompiler einen Fehler an.

    Was mache ich falsch, bzw. wie kann man die Funktion als Makro anlegen?
    Der schöne Niederrhein läßt Grüssen

    Andreas


    Alter Hof mit neuer Technik

    #2
    Ich würde es so machen:

    Code:
    :begin Taster(name,TastenNr,WertGA)
    if webbutton(TastenNr)==1 then \\
             if (WertGA) then write(WertGA,AUS)  endif; \\
             if !(WertGA) then write(WertGA,EIN) endif \\
         endif
    
    if event(WertGA) and WertGA then \\
                 webdisplay(30,$EIN$c14,LIGHT,ACTIVE,GREY) endif
    if event(WertGA) and !WertGA then \\
                else webdisplay(30,$AUS$c14,LIGHT,INACTIVE,GREY) endif
     :end
    wenn ich aber jetzt als Name webbutton (32) eingebe, zeigt der Kompiler einen Fehler an.
    Mann kann bei Makros als Argumente keine Funktionsausdrücke angeben.

    Michael
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Noch besser:

      EDIT: Code war falsch, daher weiter untenim Thread
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        Danke für die Info.

        In der zweien Version müßte die 4./5. Zeile doch vermutlich heissen:

        if webbutton(ID)==0 then \\
        if (WertGA) then write(WertGA,EIN) endif endif

        dann geht es ungefähr, nur bei einem Ausgang wird nur ein- und direkt wieder ausgeschaltet.

        die erste Version funzt richtig.

        Eine weitere Frage:

        Beim Webserver wird, wenn neu übertragen wurde, das Datums-Symbol richtig angezeigt, nach 1-2 x schalten, erscheint nicht mehr das Datum Symbol sondern das Uhr-Symbol? Wie kann das?
        Hab das original Programm von Seite 64 übertragen (mit Ergänzungen natürlich)
        Der schöne Niederrhein läßt Grüssen

        Andreas


        Alter Hof mit neuer Technik

        Kommentar


          #5
          Zitat von anlo007 Beitrag anzeigen
          ... Beim Webserver wird, wenn neu übertragen wurde, das Datums-Symbol richtig angezeigt, nach 1-2 x schalten, erscheint nicht mehr das Datum Symbol sondern das Uhr-Symbol? Wie kann das?
          Hab das original Programm von Seite 64 übertragen (mit Ergänzungen natürlich)
          Hi Andreas

          Vielleicht sind die Buttons nicht ordentlich durchnummeriert. Wenn zwei Elemente die selbe Nummer haben dann beinflussen sie sich.
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #6
            Mein Gott, was hab ich nur wieder gedacht: So muss es heissen:


            [highlight=vb]
            Code:
            :begin WebTaster(ID,WertGA)
            if webbutton(ID)==1 then \\
                     if (WertGA) then write(WertGA,EIN)  endif; \\
                     if !WertGA then write(WertGA,AUS)  endif\\
              endif
            if event(WertGA) and WertGA then \\
                         webdisplay(ID,$EIN$c14,LIGHT,ACTIVE,GREY) endif
            if event(WertGA) and !WertGA then \\
                        webdisplay(ID,$AUS$c14,LIGHT,INACTIVE,GREY) endif
            :end
            [/highlight]
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              @Michael: Da fehlt eine "(" in Zeile 4: "if (!WertGA)..."

              Wenn alle die neue Syntax-Highlight-Funktion verwenden (z.B. hier von Alfred beschrieben), dann gibt es ein bisschen Farbe und auch Zeilennummern erleichtern das Referenzieren.

              Kommentar


                #8
                @Bodo

                ich hab´s gefunden, im Beispiel in der Gebrauchsanweisung ist eine Zeile falsch


                // Webserver
                if stime(0) then webdisplay(221,settime(),CLOCK,INACTIVE,GREY) endif

                if stime(0) then webdisplay(223,setdate(),DATE,INACTIVE,GREY) endif


                da steht im Beispiel "clock" deshalb wid beim aktualisieren offensichtlich auf Uhr geschaltet.

                @enertegus

                ein und aus ist aber wieder verwechselt!

                IST:

                if webbutton(ID)==1 then \\
                if (WertGA) then write(WertGA,EIN) endif; \\
                if !WertGA)then write(WertGA,AUS) endif\\
                endif

                muß heissen:

                if webbutton(ID)==1 then \\
                if (WertGA) then write(WertGA,AUS) endif; \\
                if !(WertGA)then write(WertGA,EIN) endif\\
                endif
                Der schöne Niederrhein läßt Grüssen

                Andreas


                Alter Hof mit neuer Technik

                Kommentar


                  #9
                  Zitat von MarkusL Beitrag anzeigen
                  @Michael: Da fehlt eine "(" in Zeile 4: "if (!WertGA)..."

                  Wenn alle die neue Syntax-Highlight-Funktion verwenden (z.B. hier von Alfred beschrieben), dann gibt es ein bisschen Farbe und auch Zeilennummern erleichtern das Referenzieren.
                  gemacht. Danke für den Hinweis!
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    Zitat von enertegus Beitrag anzeigen
                    gemacht. Danke für den Hinweis!
                    Gerne...die Klammer fehlt noch und die CODE Tags könn(t)en auch weg.

                    Kommentar

                    Lädt...
                    X