Ankündigung

Einklappen
Keine Ankündigung bisher.

Elevation und Azimuth

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

    Elevation und Azimuth

    Ich will gerne die errechnete Elevation und den Azimuth darstellen, um dann die Ladenanlage punktgenau zu steuern.
    Versuche das mit dem Code:

    Code:
    if (change(azimuth()) or change(elevation())) then {
        Astro_Helpstrin   = $Elevation $ + stringformat(elevation(),0,3,2,2) + $ Winkel:$ + stringformat(azimuth(),0,3,2,2);  
        pdisplay(Astro,Astro_Helpstrin,WEATHERCOLORED,DISPLAY,GREY,Astro_P);
    } endif;​
    Allerdings kommt nichts raus. Any Ideas?

    Weiterhin habe ich versucht, aus den Beschattungsscripts schlau zu werden.
    Im Script steht:
    Code:
    if Freigabe and (elevation()>2f32) and  !(azimuth()>175f32 and azimuth()<360f32) then write(GARollo,AUS) endif
    Das hat aber zur Folge, dass mit jeder Neuberechnung ( alle 5 Minuten ) der Befehl wiederholt wird.
    Wenn also jemand manuell eingreift und den Laden verändert wird der immer wieder angetriggert.
    Im Kern ist das ähnlich einer Funktion cTime(), müsste aber ähnlich hTime() sein, damit ein Manueller Eingriff nicht verloren geht.

    Auch hier die Frage an die Schwarmintelligenz...
    Wie setzte ich das ohne "Sperre" um, das halte ich für Aufwändig
    never fummel a running system...

    #2
    Zitat von TRex Beitrag anzeigen
    Allerdings kommt nichts raus. Any Ideas?
    Nein, nicht wirklich. Nur zwei Anregungen:
    Um einen Startwert anzuzeigen nutze ich an ähnlichen Stellen öfter mal: or after(systemstart(),1000u64)
    Hast du mal versucht, im Debugger die Variable Astro_Helpstrin auszulesen?

    Kommentar


      #3
      Zitat von TRex Beitrag anzeigen
      Das hat aber zur Folge, dass mit jeder Neuberechnung ( alle 5 Minuten ) der Befehl wiederholt wird.
      Hm, eigentlich nicht. Nach meinem Verständnis wird das nur ausgeführt, wenn sich (mindestens) 1 der Bedingungen ändert.

      Kommentar


        #4
        sorry, war im Urlaub
        nun ja, Azimuth() und Elevation() wird gemäß Handbuch alle 5 Minuten ausgewertet. Da kommt dann ja immer ein neuer wert raus, kannst auch auslesen. Liegt an der Erdrotation ;-)
        Habs aber mittlerweile gelöst, da war der Befehl Stringformat fehlerhaft.
        Muss heissen
        if (change(aAWinkel) or change(aElevation)) then {
        Astro_Helpstrin = $Temp:$ + stringformat("Temperatur Dach-0/1/10",4,1,0,0) + $ °C<br>Elevation:$ + stringformat(aElevation,4,4,2,2) + $&deg;<br>Winkel:$ + stringformat(aAWinkel,4,4,2,2) + $&deg;$;
        if ("Niederschlag-0/1/45") then Weather_ICONSTATE = STATE6 else Weather_ICONSTATE = INACTIVE endif;
        pdisplay(Astro,Astro_Helpstrin,WEATHERCOLORED,Weat her_ICONSTATE,GREY,Astro_P);
        } endif;​
        never fummel a running system...

        Kommentar


          #5
          Zitat von TRex Beitrag anzeigen
          nun ja, Azimuth() und Elevation() wird gemäß Handbuch alle 5 Minuten ausgewertet. Da kommt dann ja immer ein neuer wert raus, kannst auch auslesen. Liegt an der Erdrotation ;-)
          Na klar, die Winkel ändern sich ständig.
          Aber das Ergebnis von
          Code:
          elevation() > 2f32
          ändert sich nur 2 mal am Tag.
          Liegt auch an der Erdrotation - die springt nicht hin und her.

          Kommentar


            #6
            Bei allem Respekt, aber da hast nicht Recht.
            aus der IF-Schleife kommt ja ein True oder False.

            Nach jeder Aktualisierung des Azimuth oder der Elevation wird der ">" Befehl verglichen.
            Damit ist jede Aktualisierung, die "> als XX" ergibt dann eben True oder False.

            Deine Ausführung würde bei einem "=" stimmen, aber dann ist das Risiko, dass es gar nicht trifft, denn
            da kommen ja immer irgendwelche Nachkommastellen mir raus.
            Ebenso, wenn das Ergebnis der Berechnung "zwischengespeichert" wird, aber das ist ja nicht der FAll.
            never fummel a running system...

            Kommentar


              #7
              Bei allem Respekt: er hat Recht

              das (äußerste) IF ist mehr so ein ON *g*

              Kommentar

              Lädt...
              X