![]() |
XML-Scheibenwischer
Hallo!
Ich bin dabei, einen Scheibenwischer zu machen. Aber irgendwie funktioniert der nicht so richtig! Die Test Bitmap hüpft(dreht) zwar zwischen zwei Werten umher, allerdings verschiebt sich dieser Punkt noch dazu mit der Zeit! Außerdem funktioniert die Delay Funktion auch nicht so wie ich sie haben will. Die Rotation wird mit Hilfe von Delay schneller!!! Hat irgendjemand schon einen funktionierenden Scheibenwischer zusammengebracht??? (Franz???) Grüße, Harri:cool: PHP-Code:
|
Hi Harry,
Schick mir mal das ganze Zeug, inclusive panel.cfg, muss ich mir mal anschauen. Ich hab zwar schon mal probiert, einen Scheibenwischer zu machen (wenn du dir mein Panel anguckst, findest da auch ein "wiper.xml"), nur hab' ich die Prioritäten dann doch etwas anders gesetzt und weil er überhaupt nicht funkte, hab ich den Wischer mal in die Schublade gelegt. Aber wenn du so fragst: Zitat:
|
Mit fester Geschwindigkeit, variable, Intervall?
Für einen mit fester Geschwindigkeit würde ich einen Zähler nehmen, der hochtickert falls der Wischer eingeschaltet, oder der Zähler nicht Null ist. Falls ein Maximum überschritten ist, wird der Zähler wieder auf Null gesetzt. Diesen durchlaufenden Bereich mit nonlinearities in eine Hin- und Herbewegung umwandeln, fertig. Für höhere Geschwindigkeiten den Zähler stärker erhöhen. Für Intervallschaltung wird's schwieriger. Wenn es immer Intervallbetrieb ist, einfach den Bereich vergrößern und an die nonlinearity Tabelle einen Eintrag mit Nullwinkel anhängen, dann bewegt der Wischer sich nicht, trotzdem der Zähler läuft. Bei Umschaltbarkeit Intervall <-> Dauerbetrieb, muss man nochmal nachdenken, vielleicht immer zyklenweise Pause machen oder so (ein Zyklus wischen, zwei aussetzen). Arne Bartels |
Nonlinearities gehen leider nicht so einfach für rückläufige Zeiger.
Also doch etwas komplizierter ein Zweistufenwischer: <Value> (* Weiterlaufen oder Anlaufen*) (G:Var1) (G:Var2) || if{ (*Hochzaehlen*) (G:Var1) 1 + (*wenn auf Stufe 2 mehr dazu*) (G:Var2) 2 == if{ 1 + } (*Speichern*) (&gt;G:Var1) } (* begrenzen auf 0 bis 100 *) (G:Var1) 100 &gt; if{ 0 (&gt;G:Var1) } (* fuer>50 Drehsinn umkehren*) (G:Var1) 50 &gt; if{ (G:Var1) /-/ 100 + } els{ (G:Var1) } </Value> <Nonlinearity> <Item Value="0" X="17" Y="72"/> <Item Value="50" X="17" Y="24"/> </Nonlinearity> ... (*durchsteppen: 0 aus ,1 langsam,2 schnell *) <Click> (G:Var2) ++ 3 % (&gt;G:Var2) </Click> Var2 ist der Schalter, Var1 der Zähler. Man kann sich diverse G:Var1 sparen mit geschickten d Operatoren. Arne Bartels |
Hallo!
Zuerst mal Danke für Eure Hilfe :bier:
@Arne: Eigentlich genügt mir nur eine Geschwindigkeit. Mit so einer komplizierten Geschwindigkeitsverstellung mag ich mich erst gar nicht herumplagen! ---------------------------------------------------------------------- @Franz: panel.cfg bringt in dem Fall genauso wenig die .bmp. Ich habe das Gauge nämlich für Testzwecke einfach auf das normale Panel platziert. Und die .bmp ist einfach 300*300 groß, und hat 3 verschiedene Farben; damit man die Drehung besser nachvollziehen kann. Viele Grüße, Harri:cool: |
Kein Problem, nur
(*wenn auf Stufe 2 mehr dazu*) (G:Var2) 2 == if{ 1 + } rausschmeißen und bei <Click> mit '2 %' arbeiten Arne Bartels |
Hallo nochmal!
Danke für die Hilfe!
Werd's morgen einmal ausprobieren. Grüße, Harri:cool: |
Und, funktionierts schon?
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag