Да, а до оживления портов ввода-вывода на ruby я, оказывается, вчера был крайне не далеко. На сайте разработчика библиотеки нашлась красивая табличка с портами и их нумерацией. Которая в свою очередь оправдала полный разброс оных по линейке контактов..
Получилось весьма лаконично.
#!/usr/bin/ruby
MY_PIN = 4
require 'wiringpi'
print "[init]\n"
io = WiringPi::GPIO.new
io.mode(MY_PIN, OUTPUT)
10.times do
print "[+ on]\n"
io.write(MY_PIN, HIGH)
sleep(1)
print "[- off]\n"
io.write(MY_PIN, LOW)
sleep(1)
end
print "[end]\n";
И чуток доколдовав с кодом, решил запилить мигалку посищений сайта. Что может быть проще. Зато приятно сидеть за компьютером и наблюдать дружественные помигивания, значит кто-то тут даже бывает :D
#!/usr/bin/ruby
require 'wiringpi'
MY_PIN = 4
def blink(io, long)
io.write(MY_PIN, HIGH)
if long
sleep(0.5)
else
sleep(0.1)
end
io.write(MY_PIN, LOW)
sleep(0.1)
end
def getViews()
return `wc -l /var/log/nginx/access.log`.to_i
end
puts "[web blinker init]"
io = WiringPi::GPIO.new
io.mode(MY_PIN, OUTPUT)
io.write(MY_PIN, LOW)
lcwas = getViews()
while true
lc = getViews()
if lc > lcwas
dif = lc - lcwas
print dif
dif.times do
blink(io, dif < 10)
end
end
lcwas = lc
print '.'
sleep(1)
end