Installation:
gem install blinkenlights
Was kann man damit machen?
Blinkenlights erlaubt es, die LED (auf der Tastatur) für Scroll-Lock, Caps-Lock und Num-Lock ein- und auszuschalten.
Das könnte man nun verwenden, um z.B. neu eingegangene Mails durch Blinken anzuzeigen. Oder man könnte Webserver damit überwachen und durch hektischen Blinken anzeigen, dass ein Fehler aufgetreten ist. Der Phantasie sind hier keine Grenzen gesetzt.
Der Autor hat auch noch ein schönes Beispiel im example-Directory seines Gems beigelegt: Je nach Systembelastung (mit xload auch graphisch anzeigbar), blinken keine, eine, zwei oder drei LEDs.
Hier nun einige Beispiele mit Erläuterungen:
require ‚rubygems‘
require ‚blinkenlights‘
# BlinkenLights laeuft sowohl unter Linux als auch unter Windows
# Aufruf mit Block:
BlinkenLights.open do |bl|
bl.off
#bl.circle
bl.flash(5)
end
#hierbei wird .close automatisch nach Verlassen des Block ausgefuehrt und
#der Status zurueckgesetzt
# oder mit explizitem .close
bl = BlinkenLights.new
bl.off
bl.circle
bl.close
bl.on # schaltet alle LEDs ein
bl.off # schaltet alle LEDs aus
bl.flash(5) # schaltet alle LEDS ein und wieder aus, optional Leuchtdauer in Sekunden, falls fehlend, so schnell als moeglich
bl.digital = 6 # setzt die LEDs entsprechend der binaeren Darstellung der angegegbenen Zahl (0-7), d.h. streng genommen darf man auch beliebige Zahlen uebergeben, intern wird aber nur der Rest beim Teilen durch 8 verwendet, d.h. die letzten 3 Bit der Zahl werden angezeigt.
bl.digital # gibt analog zum Setzen mit .digital= den Status zurueck, auf den die LEDs gerade gesetzt sind
bl.left_to_right(3) # blinkt von links nach rechts, Verzoegerung angebbar
bl.right_to_left(2) # das ganze andersherum
bl.circle(1) # zuerst von links nach rechts, dann wieder zuerueck
bl.reverse_circle(1) # oder auch anderherum
bl.random(verzoegerung) # zufaelligen Wert setzen, Verzoegerung angebbar
bl.converge(verzoegerung) # blinkt von aussen nach innen, Verzoegerung angebbar
bl.diverge(verzoegerung) # blinkt von innen nach aussen
bl.scr # Status der ScrollLock Taste (bzw. der LED)
bl.scr=(true) # schaltet die Taste ein oder aus (true/false)
bl.toggle.scr # wird angeschaltet falls vorher aus, bzw. andersherum
bl.cap # die gleichen Methoden fuer die Caps-Lock LED
bl.cap=(true)
bl.toggle_cap
bl.num # und auch fuer die Num-Lock LED
bl.num=(true)
bl.toggle_num
# das gleiche wie die obigen 9 Methoden gibt es auch mit der Benennung der
# LEDS als ‚left‘, ‚middle‘ und ‚right‘
#
bl.set(0-7) # setzt den Wert der LEDs mit dieser Integer-Nummer
bl.get # ermittelt Wert der LEDs als Integer-Nummer
# diese beiden Methoden sind ziemlich low-level.
# Schoener sind die uebrigen Methoden zum Setzen, bzw. Abfragen der LEDs
bl.to_s # liefert Informationen zu einem Objekt
bl.inspect # alias zu .to_s
bl.reset # setzt auf den Status vor .new zurueck
Ausblick: siehe vorherige Artikel der Serie
Neueste Kommentare