Ankündigung

Einklappen
Keine Ankündigung bisher.

BUG? Gruppenadressen als Variablen

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

    BUG? Gruppenadressen als Variablen

    Hi Michael,

    Ich habe ein Problem:
    Code:
    GA_Dimmer = "Kind Süd Hauptlicht-1/3/50"
    GA_Dimmwert = "Kind Süd Hauptlicht-1/5/50"
    
    Dimmer = Convert(GA_Dimmwert,1u08)
    
    DimmZeit = 30u64 * 60u64
    Dimmschritt = Convert(Dimmer,1u64) / DimmZeit
    
    if ("Schlafenszeit Kinder-8/5/0"==EIN) then \\
        write("Kind Süd Hauptlicht-1/3/50",Dimmer); \\
        write(GA_Dimmer, Dimmer) \\
    endif
    In der if-schleife wird die erste write Anweisung akzeptiert, die zweite erzeugt einen Compilerfehler. Eigentlich hatte ich gedacht, ich könnte die GA als Variable verwenden.
    Denkfehler meinerseits oder Bug?

    Gruß,
    Bernd


    #2
    Denkfehler/Feature: Ja
    Bug: Nein

    Beim Schreiben (write) darf für das 1. Argument nur eine GA direkt angegeben werden.

    Hintergrund:
    Man will auf die GA Schreiben, nicht auf eine Zahl.

    Also etwa in der Syntax (geht aber derzeit nicht)
    wäre zu machen
    Code:
    GA_Dimmwert = [COLOR=Magenta]gadress[/COLOR]("Kind Süd Hauptlicht-1/5/50")
    write(GA_Dimmer, Dimmer)
    dann wäre aber auch gültig:
    Code:
    GA_Dimmwert = "Kind Süd Hauptlicht-1/5/50"
    write(GA_Dimmer, Dimmer)
    Was dann aber nicht auf 1/5/50 schreibt sondern auf die Adresse, welche in 1/1/50 gespeichert ist (muss dann vom Typ u16 sein).

    Ich habe das im Compiler verboten, damit der Anfänger nicht zu leicht fehlgeführt wird/Probleme hat.

    Wenn ich so nachdenke, wäre natürlich auch (gibts in realitas derzeit auch nicht):
    Code:
      GA_Dimmwert = [COLOR=Magenta]gadress[/COLOR]("Kind Süd Hauptlicht-1/5/50")
     [COLOR=Magenta][B]gawrite[/B][/COLOR](GA_Dimmer, Dimmer)
    eine Möglichkeit, Deinen Wunsch zu realisieren...
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Hi Michael,

      ich denke, Du hast es schon auf den Punkt gebracht. Ich habe an die Makroentwicklung gedacht, wo an sich ja alles erst expandiert wird und darum solche Schwierigkeiten nicht auftauchen.
      Wäre vielleicht schön, so etwas in Zukunft zu haben. Wie sehen andere das?

      Gruß,
      Bernd

      Kommentar


        #4
        Zitat von bmx Beitrag anzeigen
        ich denke, Du hast es schon auf den Punkt gebracht. Ich habe an die Makroentwicklung gedacht, wo an sich ja alles erst expandiert wird und darum solche Schwierigkeiten nicht auftauchen.
        So waren meine Gedanken.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Für Makros mit Sicheheit sinnvoll!
          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

          Kommentar


            #6
            So im Stile #define , aber nicht indirekte addressierung ....
            Gruss Pio

            Kommentar


              #7
              Zitat von pio Beitrag anzeigen
              So im Stile #define
              das ist ja gerade was die Makros machen.
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                das ist ja gerade was die Makros machen.
                Ja, aber so umständlich ......

                Was ist aktuell der einfachste Weg, um das hier zu coden:

                #define "GA Fensterkontakthastenichgesehn - 255/255/254" AchtungEinbrecher
                Gruss Pio

                Kommentar


                  #9
                  Zitat von pio Beitrag anzeigen
                  Was ist aktuell der einfachste Weg, um das hier zu coden:
                  #define "GA Fensterkontakthastenichgesehn - 255/255/254" <AchtungEinbrecher
                  Was die Auswertung von GAs betrifft, kann man mit Variablen arbeiten:

                  ga="GA Fensterkontakthastenichgesehn - 255/255/254"
                  if ga==EIN then ... endif

                  Sobald die GA sich ändert, tut das die Variable auch automatisch. Daher braucht man hier keinen #define.
                  Nur eben write mag als 1. Argument keine Variablen, so dass man gezwungen ist, direkt GAs zu verwenden. Abhilfe wäre hier nur mit indirekter Adressierung, was aber dezeit nicht implementiert ist (s.o. im Thread).
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar

                  Lädt...
                  X