Ankündigung

Einklappen
Keine Ankündigung bisher.

[mmh] argumentübergabe an scripte

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

    [mmh] argumentübergabe an scripte

    tag,


    ich habe diverse RGB leuchten.
    in hs.csv habe ich den gruppenadressen nach folgendem schema namen gegeben:

    1/1/10;LEUCHTENNAME_ROT
    1/1/11;LEUCHTENNAME_GRUEN
    1/1/12;LEUCHTENNAME_BLAU

    jetzt hätte ich gerne folgendes script:

    rgb(name, r, g, b).myh

    Code:
    <hs><setvalue=[ARG]_ROT, [ARG]></hs>
    <hs><setvalue=[ARG]_ROT, [ARG]></hs>
    <hs><setvalue=[ARG]_ROT, [ARG]></hs>
    leider funktioniert das so nicht, da die argumente ja nicht benannt sind, sondern einfach der reihe nach an die [ARG] stellen eingesetzt werden.

    ein aufruf wie:
    Code:
    <script>
      <run=rgb(name, r, g, b).myh>
      <arg=BURO_AM_FENSTER>
      <arg=255>
      <arg=255>
      <arg=0>
    </script>
    würde also nicht weit führen.

    sondern ich müsste so aufrugen:

    Code:
    <script>
      <run=rgb(name, r, name, g, name, b).myh>
      <arg=BURO_AM_FENSTER>
      <arg=255>
      <arg=BURO_AM_FENSTER>
      <arg=255>
      <arg=BURO_AM_FENSTER>
      <arg=0>
    </script>
    ... unschön. gibt es eine möglichkeit das eleganter zu machen?



    wie übergibt man eigentlich argumente an AS?

    #2
    unschön. gibt es eine möglichkeit das eleganter zu machen?
    so erstmal nicht... auch das GARG= (s.Changelog zu 1.0.96) hilft hier nicht weiter. ABER... was wäre mmh wenn es nicht für alles eine Lösung gäbe

    Vorab, warum vereinfachst Du Dir nicht das Leben und machst je Leuchte ein Script, so dass der Name als Konstante benutzt werden kann... und auch die Verwendung von Gruppenadressen finde ich in der Praxis hilfreicher, denn den Namen bzw. die Zuordnung zum KO findest Du nur noch wieder, wenn Du vorher die hs.csv durchsuchst.... aber jedem so, wie er es mag

    Für den Namen würde ich bei Deinem Aufruf eine SYSVAR verwenden. Die muss natürlich vor Aufruf des Scripts entsprechend gesetzt werden.... Wie sich das bei Dir nun in der Anwendung einbinden läßt, kann ich natürlich nicht beurteilen.

    Besser wäre es jedoch mit 2 Scripten zu arbeiten....

    Call bleibt (dieses wird aufgerufen)

    Code:
    <script>
      <run=rgb(name, r, g, b).myh>
      <arg=BURO_AM_FENSTER>
      <arg=255>
      <arg=255>
      <arg=0>
    </script>
    Script 1: (dieses Script rgb(name, r, g, b).myh wird aufgerufen)

    Code:
    <SYS>
    <SETVAR=LEUCHTE,[ARG]>
    </SYS>
    [COLOR=red]<DELAY=0.150>[/COLOR]
    <script>
      <run=rgb Name (r, g, b).myh>
      <arg=[ARG]>
      <arg=[ARG]>
      <arg=[ARG]>
    </script>

    Script 2: (ausführendes Script rgb Name (r, g, b).myh)

    Code:
    <hs><setvalue=[LEUCHTE]_ROT, [ARG]></hs>
    <hs><setvalue=[LEUCHTE]_ROT, [ARG]></hs>
    <hs><setvalue=[LEUCHTE]_ROT, [ARG]></hs>
    Das Delay nur bei einer evtl. eintretenden racecondition...

    Probier mal...

    wie übergibt man eigentlich argumente an AS?
    Zur Zeit haben wir leider noch keine Möglichkeit gefunden dies zu tun...

    LG

    Kommentar


      #3
      Zitat von meudenbach Beitrag anzeigen
      Vorab, warum vereinfachst Du Dir nicht das Leben und machst je Leuchte ein Script, so dass der Name als Konstante benutzt werden kann...
      das kann ich natürlich tun, aber ein universelles script das mir diese funktionalität auch in allen weiteren projekten bietet wäre natürlich schöner.

      Zitat von meudenbach Beitrag anzeigen
      und auch die Verwendung von Gruppenadressen finde ich in der Praxis hilfreicher, denn den Namen bzw. die Zuordnung zum KO findest Du nur noch wieder, wenn Du vorher die hs.csv durchsuchst....
      ich finde dass das ganze durch die vergabe von namen deutlich übersichtlicher wird.


      Zitat von meudenbach Beitrag anzeigen
      Für den Namen würde ich bei Deinem Aufruf eine SYSVAR verwenden. Die muss natürlich vor Aufruf des Scripts entsprechend gesetzt werden.... Wie sich das bei Dir nun in der Anwendung einbinden läßt, kann ich natürlich nicht beurteilen.
      globale variablen die von mehreren seiten beschrieben werden können möchte ich lieber vermeiden. (wird das skript gleichzeitig von mehreren usern aufgerufen gibts chaos). das mag hier sehr unwahrscheinlich sein, aber da mach ich mir lieber etwas mehr arbeit.

      Zitat von meudenbach Beitrag anzeigen
      Zur Zeit haben wir leider noch keine Möglichkeit gefunden [Applescript argumente zu übergeben]
      schau mal:
      Mac OS X Manual Page For osascript(1)

      Code:
      a.scpt:
      on run argv
         return "hello, " & item 1 of argv & "."
      end run
      
      % osascript a.scpt world
      hello, world.

      Kommentar


        #4
        ich hätte gerne gewusst, ob (und wenn ja wie weit oben) die argumentübergabe an AS bei euch auf der agenda steht.

        Kommentar


          #5
          noch gar nicht, bzw war das schon mal mein Wunsch, ist aber wieder in Vergessenheit geraten. Wir denken nochmal darüber nacht, weil das auch Sinn macht.

          LG

          Kommentar

          Lädt...
          X