ruby gem of the week 2007/27

17 08 2007

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

Advertisements

Aktionen

Information

One response

17 08 2007
ruby gem of the week « thopre

[…] 2007/27Blinkenlights […]

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s




%d Bloggern gefällt das: