BlinkenApplet: Difference between revisions
No edit summary |
No edit summary |
||
Line 140: | Line 140: | ||
<br> | <br> | ||
<br> | <br> | ||
-- ManuelFloether & GuidoPannenbecker - 07 Sep 2006 | -- [[User:ManuelFloether|Manuel Flöther]] & [[User:GuidoPannenbecker|Guido Pannenbecker]] - 07 Sep 2006 | ||
[[Category:Projekte]] | [[Category:Projekte]] |
Revision as of 14:39, 5 September 2007
Das BlinkenApplet ist ein universeller Blinken-Player, der unterschiedlichste Daten-Formate anzeigen kann und plattformübergreifend funktioniert. Das Projekt unterliegt der GPL.
Um die Verfügbarkeit und leichte Installation auf vielen Plattformen zu gewährleisten, setzt das BlinkenApplet auf Java. Die Anwendung kann als Application aus der Console heraus gestartet werden, aber genau so gut auch als Applet eingebunden werden. Es ist geplant, auch eine Version zu erstellen, die auf MIDP2.0-fähigen Handys laufen kann.
Download
Aktuellen Quellcode und ein fertiges .jar-File gibt es bei Sourceforge.
Der erste historische Quellcode (unfertig!): [:Image:Blinkenapplet-01.zip|BlinkenApplet.zip]] [6 KB]
Kontakt
Wer Fragen, Anregungen oder Probleme hat oder u.U. Mithelfen möchte, der zögert bitte nicht GuidoPannenbecker eine eMail zu schreiben!
Aktueller Status
Alle vier Datei-Formate und UDP-Streams mit dem Protokoll [BlinkenlightsProtocol|BLP] werden bereits unterstüzt. Beliebige, auch undokumentierte, Framegrößen mit bis zu 3 Channels werden mit Vektorgrafiken (Elipsen) dargestellt. Erweitere Netzwerk-Protokolle und das einlesen eines Config-Files (das auch eine simple Playliste zur Verfügung stellen würde) fehlen noch.
Dokumentation
Für den schnellen und leichten Einstieg hier eine Schritt-für-Schritt Anleitung, wie das <nop>BlinkenApplet als Application auf einem Windows-Rechner gestartet werden kann:
- Um das BlinkenApplet zu nutzen muss zunächst sichergestellt sein, das Java auf Ihrem Rechner installiert ist.
- Dann laden Sie die aktuelle Version vom <nop>BlinkenApplet.jar bei Sourceforge auf Ihren Rechner.
- Speichern Sie diese Datei z.B unter
C:\blinken\
. - Speichern Sie einige BlinkenMovies ebenfalls in diesem Verzeichnis.
- Öffnen Sie eine DOS-Box indem Sie auf "Start" und dann auf "Ausführen" klicken und in dem dann erscheinendem Dialog
command.exe
eintippen. - Wechsel Sie mit
cd c:\blinken\
in das Verzeichnis - Geben Sie
java -jar BlinkenApplet.jar -f movie.blm
ein. Nun sollte ein kurzes Intro und dann die von Ihnen gewählte <nop>BlinkenMovie-Datei (im Beispiel: movie.blm) abgespielt werden.
Bei Problemen zögert Sie bitte nicht, GuidoPannenbecker eine eMail zu schreiben!
Kommandozeilen-Parameter
Die aktuell verfügbaren Kommandozeilen-Parameter für den Betrieb als Application kann man mit "--help" herausfinden.
$ java -jar BlinkenApplet.jar --help
$ java blinkenapplet/BlinkenApplet --help
Gültige Aufrufe könnten z.B. so aussehen:
$ java -jar BlinkenApplet.jar -f movie.blm
$ java -jar BlinkenApplet.jar --udp --lamp-on 250,250,0 \
--lamp-off 100,100,200 &
Im UDP-Betrieb eignet sich BlinkenSend hervorragend, um dem BlinkenApplet Daten zuzuspielen. Hier eine Variante für einen Aufruf in der Bash, die im Unendlich-Loop alle *.blm-Dateien aus einem Verzeichnis immer dreimal nacheinander abspielt. Es geht aber auch einfacher wie die zweite Variante zeigt.
$ for ((;;)); do for i in ~/path/to/movies/*.blm; \
do ~/path/to/BlinkenSend -i $i -l 3; done; done;
$ ./BlinkenSend -i movie.blm
Applet-Parameter
Folgende Parameter können beim Betrieb als Applet bereits benutzt werden:
debugLevel | <0-5> |
showDemo1 | off> |
showDemo2 | off> |
file_names | <files> |
url_file_names | <url> |
delayFaktor | <double> (0.1 = 10x faster, 10 = 10x slower) |
loop_files | off> |
portUDP | <1-65536> |
LampOnColor | <0-255>,<0-255>,<0-255> |
LampOffColor | <0-255>,<0-255>,<0-255> |
bgColor | <0-255>,<0-255>,<0-255> |
Beispiel
Hier liegt das Applet online für Demonstrationszwecke. Die Datei BlinkenApplet.jar liegt in diesem Beispiel im gleichen Verzeichnis wie die HTML-Datei, die folgenden Code im Body enthält:
<applet codebase = "." code=blinkenapplet.BlinkenApplet.class archive="BlinkenApplet.jar" width="150" height="110" >
<param name="showDemo1" value="no">
<param name="showDemo2" value="no">
<param name="loop_files" value="ON">
<param name="bgColor" value="60,60,80">
<param name="LampOffColor" value="0,0,50">
<param name="LampOnColor" value="0,50,255">
<param name="url_file_names" value="http://www.sd-gp.de/movies/blubb.blm">
</applet>
Projekt-Beschreibung
Der "BlinkenScreen" kann sehr universelle Formate anzeigen, auch beliebige undokumentierte Framegrößen. Das BlinkenApplet kann in der aktuellen Version zwei Demo-Streams abspielen, um unterschiedliche Framegrößen (im Demo: 5x5) und MultiColorLEDs, deren Farbe von mehreren Channels bestimmt wird, zu demonstrieren.
Es werden ausschließlich Vektorgrafiken benutzt, um die LEDs zu zeichnen. Bitmaps werden nicht unterstützt; BlinkenSimJava ist ein Player, der die Movies auf Bitmap-Hauswände projizieren kann.
Unterstützte Protokolle
In der nächsten Entwicklungsstufe soll auch das EBLP unterstützt werden. Später soll auch das MCUF mit mehreren Channels implementiert werden. Dazu sind bereits jetzt mehrere Channels in den Grunddatentypen vorgesehen. Es ist nicht geplant, die ISDN-Protokolle (BIP, EBIP) zu unterstützten, zum SBTP gibt es noch keine Pläne. In späten Ausbauformen soll das BlinkenApplet u.U. Streams, die gerade abgespielt werden, per UDP an Clienten weitergeben können. So würde sogar eine simple Proxy-Funktion ermöglicht. |
Unterstützte Dateiformate
Alle 4 Dateiformate (blm, bmm, bml und bbm) können vom BlinkenApplet gelesen werden. Das BlinkenApplet soll kein Dateityp-Konverter werden. Dazu gibt es bereits hervorragende Software (siehe DateiFormate). Wenn das BlinkenApplet irgendwann einmal Dateien schreiben kann (z.B. von einer Aufzeichnung eines UDP-Streams), dann scheint bml das passende Universal-Format dafür zu sein. Voraussichtlich wird nur dieser Datei-Typ aus dem BlinkenApplet exportiert werden können. |
Playlist, GUI, Komandline-Parameter
Zunächst soll das BlinkenApplet eine möglichst wenig komplexe Application sein. Eine Playlist, die während der Laufzeit des Programms beeinflusst werden kann, ist nicht geplant. Allerdings ist bereits eine simple Loop-Funktion eingebaut, die auch mehrere Movies hintereinander in den Loop aufnehmen kann. Weiter ist geplant, eine Config-Datei lesen zu können, die eine Liste von abzuspielenden Streams enthalten kann.
In der aktuellen Version gibt es keine GUI, nur das Ausgabe-Fenster; es ist nicht geplant, das zu ändern. Es werden einige Kommandozeilen-Parameter und Applet-Parameter ausgewertet, so kann man z.B. eine bestimmte Datei abspielen oder auf einem bestimmten Port auf einen UDP-Stream warten.
Behandlung von mehreren Channels im Stream
Wenn ein Datenstream mehrere Channels enthält, so werden die ersten drei Channels, soweit vorhanden, für die Farbkanäle Rot, Grün und Blau benutzt und alle 3 Channels so pro Pixel in einer einzigen "MultiColor-LED" angezeigt. Weiter Channels werden ignoriert.
Andere Java-Blinken-Projekte
Blimp
Das BlinkenApplet nutzt eine Basis-Klasse <nop>BlinkenFrame, die weitestgehend mit der vom Blinken-Editor Blimp von 1stein Main.StefanSchuermans übereinstimmt; Außerdem wurden die <nop>FileIO-Funktionen aus der BlinkenMovie-Klasse übernommen. Anders als Blimp wird das BlinkenApplet Swing nicht benutzen, sondern nur AWT ohne Swing, um Portierbarkeit auf MIDP2.0-Handys zu ermöglichen und ggf. auch die Installation des Applets auf einigen PCs zu erleichtern.
Blimp liegt in einer voll lauffähigen und gut dokumentierten Version inklusive Quellcode vor.
BlinkenSimJava
Ein weiterer Java-Blinken-Player ist BlinkenSimJava, ebenfalls von stefan. Dieser Player nutzt Bitmaps und zeigt die Movies so auf den original Gebäuden, ist dadurch aber weniger universell in den unterstützten Stream-Formaten. BlinkenSimJava liegt als pre-alpha-release incl. Quellcode vor.
MIDP-Player
Wer eine Darstellung mit Bitmaps auf dem Handy möchte, kann den MIDP-Player von headmax aus dem Forum (siehe Thread zu MIDP-Player) nutzen. Es liegt ein fertiges .jar File zum Abspielen auf einem Handy und Quellcode vor.
BlinkenLib
Kein Java-Projekt, aber nützliche Ergänzung zum BlinkenApplet, ist BlinkenLib, ebenfalls von stefan. Vorallem das in der BlinkenLib enthaltene Tool BlinkenSend ist sehr nützlich beim Betrieb vom BlinkenApplet: Mit ihm kann man beliebige UDP-Streams an das BlinkenApplet senden.
ScreenShots
Beispiel: 5x5 Pixel, bis zu 256 Graustufen mit roter LED
MediaWiki Extension
Das BlinkenApplet kann nun mit der MediaWiki Extension in allen MediaWikis eingebunden werden.
-- Manuel Flöther & Guido Pannenbecker - 07 Sep 2006