TIMER


Lehetőség van egyszerre 10 egymástól független időzítő futtatására. TIMER[0] - TIMER[9] Az időzítők különböző állapota különböző parancsokat futtathat automatikusan. Idő millisecundum, másodperc, perc formában adható meg, akár több napos intervallumban.

TIMER[0](time1)
TIMER[0](time1,repeat)
TIMER[0](time1,time2)
TIMER[0](time1,time2,repeat)

TIMER[0]CS:STD@START;LED(ON)
Time1 indításakor STDOUT-ra küldi START sztringet, bekapcsolja a ledet.
TIMER[0]CE1:STD@END;LED(OFF)
Time1 végén STDOUT-ra küldi END sztringet, kikapcsolja a ledet.
TIMER[0]CE2:STD@WAIT END
Time2 végén STDOUT-ra küldi WAIT END sztringet.
TIMER[0]CF:STD@FINISH
Ciklus végén STDOUT-ra küldi FINISH sztringet.

TIMER[0](500)
500 ms időre bekapcsolja a ledet.
TIMER[0](2s)
2 másodperc időre bekapcsolja a ledet.
TIMER[0](1m)
1 perc időre bekapcsolja a ledet.

TIMER[0](1m)@
1 perc időre bekapcsolja a ledet, STDOUT-on látható a hátralevő/eltelt idő.
TIMER[0]OR
Hátralevő időt mutatja. Default
TIMER[0]OE
Eltelelt időt mutatja.

STR[0]=5s
TIMER[0](STR[0])@
STR[0] értékével indítja az időzítőt.
NUM[0]=8
TIMER[0](NUM[0]s)@
NUM[0] értékével indítja az időzítőt.

TIMER[1]CS:NUM[0]@=RND(100)
TIMER[1](1s,x)
STDOUT-ra küld véletlenszámot másodpercenként.
TIMER[2]CS:LED(ON)|
TIMER[2]CE1:LED(OFF)|

TIMER[2](100,300,x)
LED 100ms/300ms villog.
TIMER[2](100,300,3x)
LED 100ms/300ms 3x villan.

TIMER[0]CC1:STR[0]@=Time1 %TIMER[0]T
Ha time1 értéke változik, végrehajtja a parancsot.
TIMER[0]CC2:STR[0]@=Time2 %TIMER[0]T
Ha time2 értéke változik, végrehajtja a parancsot.

TIMER[0]@
Visszaszámolás nézhető STDOUT-on.
TIMER[0]T@
Timer értékét küldi STDOUT-ra.
TIMER[0]S@
Timer állapotát mutatja STDOUT-on.
0: inaktív
1: aktív (time1)
2: ismétlés előtt várakozik (time2)

TIMER[0]E
Számoló leállítása.
TIMER[0]EC
Számoló leállítása, CE1, CE2, CF parancsok végrehajtása.

TIMER[0]RS
Törli a beállításokat (CS, CE1, CE2, CF, M).



Példák

Óránként egy percre behúz egy relét.
TIMER[0]CS:GPIO[D2]L|
TIMER[0]CE1:GPIO[D2]H|
TIMER[0](60m,1s,x)@
<html> <body> <H1>TIMER 1hour, 1min</H1><br> <H2 id="time"></H2> <H2 id="state"></H2> <script type="text/javascript" src="tools.js"></script> <script> startWS(0); function onMessage(msg) { var wsin = msg.split(","); document.getElementById("time").innerHTML = wsin[0]; if (wsin[1] == 1) {document.getElementById("state").innerHTML = "OFF";} if (wsin[1] == 2) {document.getElementById("state").innerHTML = "ON";} } </script> </body> </html>
Szemafor
GPIO[D]L|
GPIO[D0]CH:STD@RED;STRIP[0](0)FF0000|
GPIO[D0]CL:STRIP[0](0)000000|
GPIO[D1]CH:STD@YELLOW;STRIP[0](1)FFFF00|
GPIO[D1]CL:STRIP[0](1)000000|
GPIO[D2]CH:STD@GREEN;STRIP[0](2)00FF00|
GPIO[D2]CL:STRIP[0](2)000000|
GPIO[D6]CH:STRIP[0](8)FF0000|
GPIO[D6]CL:STRIP[0](8)000000|
GPIO[D7]CH:STRIP[0](9)00FF00|
GPIO[D7]CL:STRIP[0](9)000000

TIMER[0]CS:GPIO[D0]H;GPIO[D6]L;GPIO[D7]H|
TIMER[0]CE1:TIMER[1](NUM[1]s);TIMER[4](500,500,NUM[1]x)|
TIMER[1]CS:GPIO[D1]H|
TIMER[1]CE1:GPIO[D1]L;GPIO[D0]L;TIMER[2](NUM[2]s)|
TIMER[2]CS:GPIO[D2]H;GPIO[D6]H|
TIMER[2]CE1:GPIO[D2]L;TIMER[3](NUM[1]s)|
TIMER[3]CS:GPIO[D1]H|
TIMER[3]CE1:GPIO[D1]L;TIMER[0](NUM[0]s)|
TIMER[4]CS:GPIO[D7]H;STD@BLINK1|
TIMER[4]CE1:GPIO[D7]L;STD@BLINK2
<!DOCTYPE HTML> <html> <head> <style> body { background-color: #000; color: #4f0; } div { border: 10px solid #333; } label { width: 8em; height: 8em; font-weight: bold; border: 6px solid #333; border-radius: 50%; cursor: pointer; display: block; } input[type="number"] { text-align: center; width: 6em; } input[type="checkbox"] { display: none; } #cr:checked ~ [for=cr] { background-color: red; } #cy:checked ~ [for=cy] { background-color: orange; } #cg:checked ~ [for=cg] { background-color: green; } #pr:checked ~ [for=pr] { background-color: red; } #pg:checked ~ [for=pg] { background-color: green; } </style> </head> <body> <center> <br><br> <H1>Semafor</H1> <span id="wsdata"></span><br> <br> <div style="display:inline-block;margin-right:1em;"> <input type="checkbox" id="cr" /> <input type="checkbox" id="cy" /> <input type="checkbox" id="cg" /> <label for="cr">D0</label> <label for="cy">D1</label> <label for="cg">D2</label> </div> <div style="display:inline-block;"> <input type="number" id="rt" placeholder="RED"><a>sec</a><br> <input type="number" id="yt" placeholder="YELLOW"><a>sec</a><br> <input type="number" id="gt" placeholder="GREEN"><a>sec</a><br> <br> <button type="button" onclick="set();">Set</button> </div> <div style="display:inline-block;margin-left:1em;"> <input type="checkbox" id="pr" /> <input type="checkbox" id="pg" /> <label for="pr">D6</label> <label for="pg">D7</label> </div> </center> <script type="text/javascript" src="tools.js"></script> <script> startWS(0); function onOpen() { websocket.send( "NUM[0]=9" ); //Red time websocket.send( "NUM[1]=4" ); //Yellow time websocket.send( "NUM[2]=9" ); //Green time websocket.send( "TIMER[0](NUM[0]s)" ); } function onExit() { websocket.send("TIMER[0]E|TIMER[1]E|TIMER[2]E|TIMER[3]E|TIMER[4]E"); } function onMessage(msg) { document.getElementById('wsdata').innerHTML = msg; if (msg === "RED") { document.getElementById("cr").checked = true; document.getElementById("cy").checked = false; document.getElementById("pr").checked = false; document.getElementById("pg").checked = true; } if (msg === "YELLOW") { document.getElementById("cy").checked = true; document.getElementById("cg").checked = false; document.getElementById("pg").checked = false; } if (msg === "GREEN") { document.getElementById("cr").checked = false; document.getElementById("cy").checked = false; document.getElementById("cg").checked = true; document.getElementById("pr").checked = true; document.getElementById("pg").checked = false; } if (msg === "BLINK1") { document.getElementById("pg").checked = true; } if (msg === "BLINK2") { document.getElementById("pg").checked = false; } } function set() { if (document.getElementById("rt").value > 0) { websocket.send( "NUM[0]=" + document.getElementById("rt").value) }; if (document.getElementById("yt").value > 0) { websocket.send( "NUM[1]=" + document.getElementById("yt").value) }; if (document.getElementById("gt").value > 0) { websocket.send( "NUM[2]=" + document.getElementById("gt").value) }; } </script> </body> </html>