BlinkenApplet: Difference between revisions

From BlinkenArea Wiki
Jump to: navigation, search
No edit summary
No edit summary
Line 141: Line 141:
<br>
<br>
-- ManuelFloether & GuidoPannenbecker - 07 Sep 2006
-- ManuelFloether & GuidoPannenbecker - 07 Sep 2006
[[Category:Projekte]]

Revision as of 08:13, 3 September 2007

zurück zur Übersicht

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.

BlinkenApplet05-12-16.png

Download

Aktuellen Quellcode und ein fertiges .jar-File gibt es bei Sourceforge.

Der erste historische Quellcode (unfertig!): 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:

  1. Um das BlinkenApplet zu nutzen muss zunächst sichergestellt sein, das Java auf Ihrem Rechner installiert ist.
  2. Dann laden Sie die aktuelle Version vom <nop>BlinkenApplet.jar bei Sourceforge auf Ihren Rechner.
  3. Speichern Sie diese Datei z.B unter C:\blinken\.
  4. Speichern Sie einige BlinkenMovies ebenfalls in diesem Verzeichnis.
  5. Öffnen Sie eine DOS-Box indem Sie auf "Start" und dann auf "Ausführen" klicken und in dem dann erscheinendem Dialog command.exe eintippen.
  6. Wechsel Sie mit cd c:\blinken\ in das Verzeichnis
  7. 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

http://www.sd-gp.de/?page_id=BlinkenApplet

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

http://www.sd-gp.de/?page_id=BlinkenApplet

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

BlinkenApplet 256grey.png 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.





-- ManuelFloether & GuidoPannenbecker - 07 Sep 2006