PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Expression 2 Tür



NeoBerlin
13.07.2009, 14:37
Ich schildere mal mein Problem:

Also ich habe eine Tür die einen Input hat der heißt "open", so "open Value 1" ist auf "open Value 0" ist zu.

Jetzt kommt mein Problem ich möchte gerne das sich diese Tür sobald sie geöffnet wurde nach 10 Sekunden wieder automatisch schließt.
Ich denke es geht am besten mit Wire Expression 2, allerdings kenne ich mich sogut wie garnicht damit aus. Wenn es eine leichtere Lösung ohne Wire Expression gibt würde ich die natürlich auch nehmen.

Mfg Neo

Pij
13.07.2009, 14:40
Ich hatte ein mehr oder weniger ähnliches Problem letztens, aber der Lösungsversuch wird hier vermutlich nicht helfen.
Da es bei Exp2 (noch?) keine "pause()" Funktion o.Ä. gibt wird das schwer.
Du könntest es mit "interval(1000)" und einer Variable, die bei jedem Durchlauf um 1 erhöht wird versuchen.
Interval(1000) bedeutet, dass das Script alle 1000 Milisekunden ausgeführt wird.



interval(1000)
Zaehler++
if(Zaehler>=10){
Open = 0
Zaehler = 0
}

Irgendwie so in der Art könnte es funtkionieren.
Allerdings weiß ich nicht 100% über diese "interval" Funktion bescheid, so weiß ich z.B. nicht welchen Teil des Skriptes sie ausführt, also wo es anfängt und wo es aufhört. Könnte aber auch daran liegen, dass ich mir im allgemeinen bei Expression2 da nicht so sicher bin :P

Bedenke auch, dass Variablen mit einem großen Buchstaben anfangen müssen.

NeoBerlin
13.07.2009, 14:43
Ich teste es mal gleich aber schonmal danke für die schnelle antwort
Doppelpost:
also bei mir komm bei "Zaehler++" ein error
Doppelpost:
bzw mir fehlen noch inputs/outputs^^

WeltEnSTurm
13.07.2009, 15:31
Probiers mit dem Gate "Delay".
Input Delay -> 10
Input Clk -> Button mit dem du die Tür öffnest
Wenn du jetzt den Button drückst, gibt das Delay nach 10 Sekunden bei "Out" kurz 1 aus.

NeoBerlin
13.07.2009, 15:50
Mh... also der delay läuft an, aber setzt den Tür Button nicht auf 0, sondern restartet bei 10 einfach wieder bei 0 und läuft immer weiter solange der Tür Button "Value 1" hat.

Bzw. wenn der der Tür Button soll nicht auf 1 sein (weil dann die tür offen ist) sondern auf 0 umschalten damit sie wieder zu geht
Doppelpost:
Danke für alle Antworten, ein Freund hat mir geholfen damit auch andere was davon haben hier ist der Code für Wire Expression 2:


@name Autoclose
@inputs Button Button1
@outputs Door
@persist Timer A
@trigger all

interval(1000)

if(Button)
{
A=1
Door=1
}

if(Button1)
{
A=1
Door=1
}

if(A)
{
Timer++
}

if(Timer==10)
{
Door=0
Timer=0
Button=0
Button1=0
}


Die Tür also der Open befehl mit "Door" verlinken.
Dann je nachdem wie man möchte mit 1 oder 2 Button (Keypad, Inputs und das alles geht auch) verlinken. Es macht keinen Unterschied ob Button1 oder nur Button haben beide den gleichen Effekt.

Danke an Wizard der mir geholfen hat und natürlich an alle die mir hier versucht haben zu helfen!

MfG Neo!