Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - "Inline"-Berechnung zuweisen

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

    - √ - "Inline"-Berechnung zuweisen

    keine Ahnung wie ich das Thema besser formulieren kann, ich erklär's einmal:

    ich möchte das Ergebnis einer Berechung (binäre Auswertung) als Wert (true/False) auf eine GA schreiben
    Code:
    ...
    write('1/3/4'b01,('1/3/5'u08==2 and '1/3/6'b01))
    ....
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    #2
    Und Deine Frage lautet?

    Kommentar


      #3
      wie das geht...

      So wie oben geht's nicht - zumindest habe ich gestern eine Zeit in allen möglichen Varianten herumgespielt (allerdings mit importieretn GA's) und es "funzte" nicht....

      Deswegen: geht das überhaupt? im Handbuch hab' ich auch nix gefunden
      EPIX
      ...und möge der Saft mit euch sein...
      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

      Kommentar


        #4
        weiß jetzt nicht ob das richtig ist, bzw. ob ichs richtig verstehe..
        aber ich hätte folgendes probiert:

        [highlight=epc]

        if ('1/3/5'u08==2 and '1/3/6'b01) then write ('1/3/4'b01, 1b01) else write ('1/3/4'b01, 0b01) endif

        [/highlight]

        Gruß Martin
        Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

        Kommentar


          #5
          Zitat von EPIX Beitrag anzeigen
          So wie oben geht's nicht - zumindest habe ich gestern eine Zeit in allen möglichen Varianten herumgespielt (allerdings mit importieretn GA's) und es "funzte" nicht....
          Prinzipiell sollte es gehen.

          Wenn es nicht geht, kannst du die Fehlermeldung posten (Gott bewahre!) oder Schrittweise z.B. über temporäre Variablen den Wert berechnen. Wenn das dann läuft würde ich es so lassen oder du kannst die Variablen wieder durch den entsprechenden Code substituieren:
          [highlight=epc]
          A = '1/3/5'u08;
          B = '1/3/6'b01;
          C = (A==2u08);
          D = (C and B);
          write('1/3/4'b01, D);
          [/highlight]
          BR
          Marc

          Kommentar


            #6
            @brick & @saft6luck: gute Idee, dank' euch beiden....
            EPIX
            ...und möge der Saft mit euch sein...
            Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

            Kommentar


              #7
              Zitat von saft6luck Beitrag anzeigen
              [highlight=epc]
              A = '1/3/5'u08;
              B = '1/3/6'b01;
              C = (A==2u08);
              D = (C and B);
              write('1/3/4'b01, D);
              [/highlight]
              Das geht nicht! write muss per if-Abfrage "getriggert" (invalidiert) werden,
              etwa so
              [highlight=epc]
              A = '1/3/5'u08;
              B = '1/3/6'b01;
              C = (A==2u08);
              D = (C and B);
              if change(D) then write('1/3/4'b01, D) endif
              [/highlight]
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                write muss per if-Abfrage "getriggert" (invalidiert) werden,
                Ja, was muss, das muss.
                BR
                Marc

                Kommentar


                  #9
                  hmm ich hab eher das Thema, dass ich auch mit event() ansteuern möchte/soll....

                  da fehlt mir noch die Idee, weill "event" und "else" nicht miteinander "können"...
                  EPIX
                  ...und möge der Saft mit euch sein...
                  Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                  Kommentar


                    #10
                    Zitat von EPIX Beitrag anzeigen
                    hmm ich hab eher das Thema, dass ich auch mit event() ansteuern möchte/soll....

                    da fehlt mir noch die Idee, weill "event" und "else" nicht miteinander "können"...
                    Ich glaube ich verstehe nur Bahnhof. Vielleicht kannst Du EPIX etwas in die epische Breite gehen?

                    Meinst Du sowas vielleicht? Wenn ein event auf '1/3/6'b01 eintritt dann schreibe was auf '1/3/4'b01 abhängig davon, wie die Prüfung abläuft?

                    [highlight=epc]
                    if event( '1/3/6'b01 ) then write('1/3/4'b01,('1/3/5'u08==2 and '1/3/6'b01)) endif
                    [/highlight]

                    Gruß,
                    Bernd

                    Kommentar


                      #11
                      Meinst Du sowas vielleicht? Wenn ein event auf '1/3/6'b01 eintritt dann schreibe was auf '1/3/4'b01 abhängig davon, wie die Prüfung abläuft?
                      genau Bernd, das Thema ist nur, dass du beim event kein "else" verwendet "darfst"

                      Konkret schau's dann so aus (wenn du den Code irgendwo schon einmal gesehen hast - dann hast du recht (ich probier abzukupfern) )
                      Code:
                      if (event(RTRStatusGA) or InitWebserver)) then {
                      		write(HeizenGA,(RTRStatusGA > 31 and RTRStatusGA < 64))
                      		} endif
                      bringt dann:
                      Code:
                      Gültig bis Position: {0} STOP--> if (event("David.RTH Status-3/1/50") or InitWebserver)) then {		write("David.Heizanforderung-2/3/34",("David.RTH Status-3/1/50" > 31 and "David.RTH Status-3/1/50" < 64))		} endif
                      EPIX
                      ...und möge der Saft mit euch sein...
                      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                      Kommentar


                        #12
                        ... und wenn Du mal die überflüssige Klammer in der if-Abfrage hinter InitWebserver entfernst...?

                        Kommentar


                          #13
                          Code:
                          if (event(RTRStatusGA) or InitWebserver)) then write(HeizenGA,(RTRStatusGA > 31 and RTRStatusGA < 64)) endif
                          Gültig bis Position: {0} STOP--> if (event("David.RTH Status-3/1/50") or InitWebserver)) then write("David.Heizanforderung-2/3/34",("David.RTH Status-3/1/50" > 31 and "David.RTH Status-3/1/50" < 64)) endif
                          dann schaut's auch net anders aus....
                          EPIX
                          ...und möge der Saft mit euch sein...
                          Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                          Kommentar


                            #14
                            sorry, nochmal: ... und wenn Du mal die überflüssige Klammer in der if-Abfrage hinter InitWebserver entfernst...?

                            if (event(RTRStatusGA) or InitWebserver)) then write(HeizenGA,(RTRStatusGA > 31 and RTRStatusGA < 64)) endif

                            zwei Klammern aufmachen und drei wieder zu ...

                            Gruß,
                            Bernd

                            Kommentar


                              #15
                              sorry, nochmal: ... und wenn Du mal die überflüssige Klammer in der if-Abfrage hinter InitWebserver entfernst...?
                              dann funktionierts

                              sorry - Betriebsblind selbst nach den klaren HInweis vom Compiler hab ich den Fehler net gesehen...

                              Wie heisst's so schön: das Problem sitzt meist VOR der Tastatur

                              DANKE!
                              EPIX
                              ...und möge der Saft mit euch sein...
                              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                              Kommentar

                              Lädt...
                              X