Stap 5: Een meer uitgewerkte LUA voorbeeld: GPIO0 blinker met reset signaal op GPIO2
We zullen schrijven wat code die GPIO0 en GPIO2, stelt u een TCP-server maakt en draait GPIO0 op en af "n" aantal keren volgens de waarde verzonden via TCP, na voltooiing van de reeks blijkt GPIO2 en uitschakelen zodat het kan worden gebruikt als een reset-signaal. Hier gaat het:
--Open het bestand voor schrijven
File.Open("init.lua","w")
--Open het bestand voor schrijven
File.WriteLine ([[print ("GPIO0 blinker en GPIO2 reset")]])
--Open GPIO0 en 2 voor uitvoer
File.WriteLine ([[gpio.mode (8, gpio. UITVOER)]])
File.WriteLine ([[gpio.mode (9, gpio. UITVOER)]])
--Wachten een beetje zodat de voltooiing
File.WriteLine([[TMR.delay(10)]])
--Cyclus GPIO2 zodat het gebruikt als reset signaal worden kan
Ile.WriteLine ([[gpio.write (8, gpio. HOGE)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (8, gpio. LAAG)]])
--Maken van TCP server
File.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
--Luisteren op poort 9999 en callback functie 'c'
File.WriteLine([[SV:Listen(9999,function(c)]])
--Wachten op lading 'pl' wordt ontvangen
File.WriteLine ([[c: op ("ontvangen", function (c, pl)]])
--Check voor geldig nummer ontvangen (moet tussen 1 en 16 in dit voorbeeld)
File.WriteLine ([[als tonumber(pl) ~ = nihil dan]])
File.WriteLine ([[if tonumber(pl) > = 1 en tonumber(pl) < = 16 then]])
File.WriteLine([[print(tonumber(PL))]])
File.WriteLine([[TMR.delay(10)]])
--Stuur een andere reset gebeurtenis op GPIO2
File.WriteLine ([[gpio.write (8, gpio. HOGE)]])
File.WriteLine ([[gpio.write (8, gpio. LAAG)]])
--Lus volgens het aantal ontvangen
File.WriteLine ([[voor graaf =1,tonumber(pl) do]])
File.WriteLine ([[print(count)]])
File.WriteLine([[TMR.delay(10)]])
--Blink GPIO0 file.writeline ([[gpio.write (9, gpio. LAAG)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (9, gpio. HOGE)]])
File.WriteLine ([[c:send("Sequence finished")]])
File.WriteLine([[end]])
Ile.WriteLine([[end]])
File.WriteLine([[end]])
File.WriteLine ([[c:send("Action completed")]])
File.WriteLine([[end)]])
File.WriteLine([[end)]])
File.Close()
Laat het bestand verzenden in de module. U ziet de uitvoer weergegeven in de afbeelding.