BlinkenApplet: Difference between revisions

From BlinkenArea Wiki
Jump to: navigation, search
No edit summary
(Link zum BLP korrigiert, User Links hinzugefügt, Lizenz ergänzt)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__NOEDITSECTION__
__NOEDITSECTION__
{{Infobox-sw-en
| Name=BlinkenApplet
| Jahr=2006
| Architektur=
| System=
| Hardware=
| Software=
| Code=
| Speicher=
| Sprache=
| Lizenz=GPL
| Kontakt=[[User:GuidoPannenbecker|Guido Pannenbecker]]
|Sonstiges=[http://sourceforge.net/projects/blinkenapplet/ Sourceforge]
}}
{{FlagUK|target=BlinkenAppletEnglish}}
''[[Projekte|zurück zur Übersicht]]''
''[[Projekte|zurück zur Übersicht]]''


<p align="justify">Das BlinkenApplet ist ein universeller Blinken-Player, der unterschiedlichste Daten-Formate anzeigen kann und plattformübergreifend funktioniert. Das Projekt unterliegt der [http://www.gnu.org/copyleft/gpl.html GPL].</p>
Das BlinkenApplet ist ein universeller Blinken-Player, der unterschiedlichste Daten-Formate anzeigen kann und plattformübergreifend funktioniert. Das Projekt unterliegt der [http://www.gnu.org/copyleft/gpl.html GPL].


<p align="justify">Um die Verfügbarkeit und leichte Installation auf vielen Plattformen zu gewährleisten, setzt das BlinkenApplet auf [http://java.sun.com/j2se/1.4.2/download.html 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.</p>
Um die Verfügbarkeit und leichte Installation auf vielen Plattformen zu gewährleisten, setzt das BlinkenApplet auf [http://java.sun.com/j2se/1.4.2/download.html 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.


[[Image:BlinkenApplet05-12-16.png|frame|right]]
[[Image:BlinkenApplet05-12-16.png|frame|right]]
=== Download  ===
=== Download  ===
<p align="justify">Aktuellen Quellcode und ein fertiges .jar-File gibt es bei [http://sourceforge.net/projects/blinkenapplet/ Sourceforge].</p>
Aktuellen Quellcode und ein fertiges .jar-File gibt es bei [http://sourceforge.net/projects/blinkenapplet/ Sourceforge].


<p align="justify">Der erste historische Quellcode (unfertig!):  
Der erste historische Quellcode (unfertig!):  
[[:Image:Blinkenapplet-01.zip|BlinkenApplet.zip]] [6 KB]</p>
[[:Image:Blinkenapplet-01.zip|BlinkenApplet.zip]] [6 KB]


=== Kontakt ===
=== Kontakt ===
<p align="justify">Wer Fragen, Anregungen oder Probleme hat oder u.U. Mithelfen möchte, der zögert bitte nicht GuidoPannenbecker eine eMail zu schreiben!</p>
Wer Fragen, Anregungen oder Probleme hat oder u.U. Mithelfen möchte, der zögert bitte nicht [[User:GuidoPannenbecker|Guido Pannenbecker]] eine eMail zu schreiben!


=== Aktueller Status ===
=== Aktueller Status ===
<p align="justify">Alle vier [[Dateiformate]] und UDP-Streams mit dem Protokoll [Blinkenlights Protocol|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.</p>
Alle vier [[Dateiformate]] 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 ===
=== 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:
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 [http://java.sun.com/j2se/1.4.2/download.html Java] auf Ihrem Rechner installiert ist.
# Um das BlinkenApplet zu nutzen muss zunächst sichergestellt sein, das [http://java.sun.com/j2se/1.4.2/download.html Java] auf Ihrem Rechner installiert ist.
# Dann laden Sie die aktuelle Version vom <nop>BlinkenApplet.jar bei [http://sourceforge.net/projects/blinkenapplet/ Sourceforge] auf Ihren Rechner.
# Dann laden Sie die aktuelle Version vom BlinkenApplet.jar bei [http://sourceforge.net/projects/blinkenapplet/ Sourceforge] auf Ihren Rechner.
# Speichern Sie diese Datei z.B unter <code>C:\blinken\</code>.
# Speichern Sie diese Datei z.B unter <code>C:\blinken\</code>.
# Speichern Sie einige [http://www.blinkenlights.de/gallery/index.de.html BlinkenMovies] ebenfalls in diesem Verzeichnis.
# Speichern Sie einige [http://www.blinkenlights.de/gallery/index.de.html 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 <code>command.exe</code> eintippen.
# Öffnen Sie eine DOS-Box indem Sie auf "Start" und dann auf "Ausführen" klicken und in dem dann erscheinendem Dialog <code>command.exe</code> eintippen.
# Wechsel Sie mit <code>cd c:\blinken\</code> in das Verzeichnis
# Wechsel Sie mit <code>cd c:\blinken\</code> in das Verzeichnis
# Geben Sie <code>java -jar BlinkenApplet.jar -f movie.blm</code> ein. Nun sollte ein kurzes Intro und dann die von Ihnen gewählte <nop>BlinkenMovie-Datei (im Beispiel: movie.blm) abgespielt werden.
# Geben Sie <code>java -jar BlinkenApplet.jar -f movie.blm</code> ein. Nun sollte ein kurzes Intro und dann die von Ihnen gewählte BlinkenMovie-Datei (im Beispiel: movie.blm) abgespielt werden.
Bei Problemen zögert Sie bitte nicht, GuidoPannenbecker eine eMail zu schreiben!
Bei Problemen zögert Sie bitte nicht, [[User:GuidoPannenbecker|Guido Pannenbecker]] eine eMail zu schreiben!
    
    
==== Kommandozeilen-Parameter ====  
==== Kommandozeilen-Parameter ====  
<p align="justify">Die aktuell verfügbaren Kommandozeilen-Parameter für den Betrieb als Application kann man mit "--help" herausfinden.</p>
Die aktuell verfügbaren Kommandozeilen-Parameter für den Betrieb als Application kann man mit "--help" herausfinden.


$ java -jar BlinkenApplet.jar --help<br>
$ java -jar BlinkenApplet.jar --help<br>
$ java blinkenapplet/BlinkenApplet --help
$ java blinkenapplet/BlinkenApplet --help


<p align="justify">Gültige Aufrufe könnten z.B. so aussehen:</p>
Gültige Aufrufe könnten z.B. so aussehen:
$ java -jar BlinkenApplet.jar -f movie.blm<br>
$ java -jar BlinkenApplet.jar -f movie.blm<br>
$ java -jar BlinkenApplet.jar --udp --lamp-on 250,250,0 \<br>
$ java -jar BlinkenApplet.jar --udp --lamp-on 250,250,0 \<br>
--lamp-off 100,100,200 &
--lamp-off 100,100,200 &


<p align="justify">Im UDP-Betrieb eignet sich [[BlinkenLib|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.</p>
Im UDP-Betrieb eignet sich [[BlinkenLib|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; \<br>
$ for ((;;)); do for i in ~/path/to/movies/*.blm; \<br>
Line 48: Line 63:


==== Applet-Parameter ====  
==== Applet-Parameter ====  
<p align="justify">Folgende Parameter können beim Betrieb als Applet bereits benutzt werden:</p>
Folgende Parameter können beim Betrieb als Applet bereits benutzt werden:


{| class="prettytable"
{| class="prettytable"
Line 75: Line 90:


==== Beispiel ====  
==== Beispiel ====  
<p align="justify">Hier liegt das [http://www.sd-gp.de/?page_id=BlinkenApplet 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:</p>
Hier liegt das [http://www.sd-gp.de/?page_id=BlinkenApplet 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" ><br>
<applet codebase = "." code=blinkenapplet.BlinkenApplet.class archive="BlinkenApplet.jar" width="150" height="110" ><br>
Line 88: Line 103:


=== Projekt-Beschreibung ===
=== Projekt-Beschreibung ===
<p align="justify">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.</p>
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.


<p align="justify">Es werden ausschließlich Vektorgrafiken benutzt, um die LEDs zu zeichnen. Bitmaps werden nicht unterstützt; [[BlinkenSimJava|BlinkenSimJava]] ist ein Player, der die Movies auf Bitmap-Hauswände projizieren kann.</p>
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 ====  
==== Unterstützte Protokolle ====  
{| border=1
{| border=0
| [[Image:Blinkenapplet-fish.jpg|left|http://www.sd-gp.de/?page_id=BlinkenApplet]]
| [[Image:Blinkenapplet-fish.jpg|left|http://www.sd-gp.de/?page_id=BlinkenApplet]]
|<p align="justify">In der nächsten Entwicklungsstufe soll auch das [[BlinkenlightsProtocol|EBLP]] unterstützt werden. Später soll auch das [[BlinkenlightsProtocol|MCUF]] mit mehreren Channels implementiert werden. Dazu sind bereits jetzt mehrere Channels in den Grunddatentypen vorgesehen.</p>
| In der nächsten Entwicklungsstufe soll auch das [[BlinkenlightsProtocol|EBLP]] unterstützt werden. Später soll auch das [[BlinkenlightsProtocol|MCUF]] mit mehreren Channels implementiert werden. Dazu sind bereits jetzt mehrere Channels in den Grunddatentypen vorgesehen.


<p align="justify">Es ist nicht geplant, die  ISDN-Protokolle (BIP, EBIP) zu unterstützten, zum [[SimpleBlinkenlightsTransferProtocol|SBTP]] gibt es noch keine Pläne.</p>
Es ist nicht geplant, die  ISDN-Protokolle (BIP, EBIP) zu unterstützten, zum [[SimpleBlinkenlightsTransferProtocol|SBTP]] gibt es noch keine Pläne.


<p align="justify">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.</p>
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 ====  
==== Unterstützte Dateiformate ====  
{| border=1
{| border=0
| [[Image:Blinkenapplet-eye-on-you.jpg|left|http://www.sd-gp.de/?page_id=BlinkenApplet]]  
| [[Image:Blinkenapplet-eye-on-you.jpg|left|http://www.sd-gp.de/?page_id=BlinkenApplet]]  
| <p align="justify">Alle 4 Dateiformate ([[Blinkenlights Movie|blm]], [[BLINKENmini Movie|bmm]], [[Blinkenlights Markup Language|bml]] und [[Binary Blinken Movie|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 [[Blinkenlights Markup Language|bml]] das passende Universal-Format dafür zu sein. Voraussichtlich wird nur dieser Datei-Typ aus dem BlinkenApplet exportiert werden können.</p>
| Alle 4 Dateiformate ([[Blinkenlights Movie|blm]], [[BLINKENmini Movie|bmm]], [[Blinkenlights Markup Language|bml]] und [[Binary Blinken Movie|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 [[Blinkenlights Markup Language|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 ====  
====  Playlist, GUI, Komandline-Parameter ====  
<p align="justify">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.</p>
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.


<p align="justify">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.</p>
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 ====  
==== Behandlung von mehreren Channels im Stream ====  
<p align="justify">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.</p>
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 ===
=== Andere Java-Blinken-Projekte ===
==== Blimp ====
==== Blimp ====
<p align="justify">Das BlinkenApplet nutzt eine Basis-Klasse <nop>BlinkenFrame, die weitestgehend mit der vom Blinken-Editor [http://1stein.blinkenarea.org/Blimp/ Blimp] von 1stein Main.StefanSchuermans übereinstimmt; Außerdem wurden die 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.</p>
Das BlinkenApplet nutzt eine Basis-Klasse <nop>BlinkenFrame, die weitestgehend mit der vom Blinken-Editor [http://1stein.blinkenarea.org/Blimp/ Blimp] von 1stein Main.StefanSchuermans übereinstimmt; Außerdem wurden die 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.
<p align="justify">[http://1stein.blinkenarea.org/Blimp/ Blimp] liegt in einer voll lauffähigen und gut dokumentierten Version inklusive Quellcode vor.</p>
[http://1stein.blinkenarea.org/Blimp/ Blimp] liegt in einer voll lauffähigen und gut dokumentierten Version inklusive Quellcode vor.


==== BlinkenSimJava ====
==== BlinkenSimJava ====
<p align="justify">Ein weiterer Java-Blinken-Player ist [http://1stein.blinkenarea.org/BlinkenSimJava/ BlinkenSimJava], ebenfalls von [[User:StefanSchuermans|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. [http://1stein.blinkenarea.org/BlinkenSimJava/ BlinkenSimJava] liegt als pre-alpha-release incl. Quellcode vor.</p>
Ein weiterer Java-Blinken-Player ist [http://1stein.blinkenarea.org/BlinkenSimJava/ BlinkenSimJava], ebenfalls von [[User:StefanSchuermans|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. [http://1stein.blinkenarea.org/BlinkenSimJava/ BlinkenSimJava] liegt als pre-alpha-release incl. Quellcode vor.


==== MIDP-Player ====
==== MIDP-Player ====
<p align="justify">Wer eine Darstellung mit Bitmaps auf dem Handy möchte, kann den MIDP-Player von [http://www.headmax.de/ headmax] aus dem Forum (siehe [https://forum.blinkenarea.org/viewtopic.php?t=40 Thread zu MIDP-Player]) nutzen. Es liegt ein fertiges .jar File zum Abspielen auf einem Handy und Quellcode vor.</p>
Wer eine Darstellung mit Bitmaps auf dem Handy möchte, kann den MIDP-Player von [http://www.headmax.de/ headmax] aus dem Forum (siehe [https://forum.blinkenarea.org/viewtopic.php?t=40 Thread zu MIDP-Player]) nutzen. Es liegt ein fertiges .jar File zum Abspielen auf einem Handy und Quellcode vor.


==== BlinkenLib ====
==== BlinkenLib ====
<p align="justify">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.</p>
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 ===
=== ScreenShots ===
Line 135: Line 150:


=== MediaWiki Extension ===
=== MediaWiki Extension ===
<p align="justify">Das BlinkenApplet kann nun mit der [http://st23.org/w/index.php/BlinkenApplet/Mediawiki_Extension MediaWiki Extension] in allen MediaWikis eingebunden werden.</p>
Das BlinkenApplet kann nun mit der [http://st23.org/w/index.php/BlinkenApplet/Mediawiki_Extension MediaWiki Extension] in allen MediaWikis eingebunden werden.
<br>
<br>
<br>
<br>
-- [[User:ManuelFloether|Manuel Flöther]] & [[User:GuidoPannenbecker|Guido Pannenbecker]] - 07 Sep 2006


[[Category:Projekte]]
[[Category:Projekte]]

Latest revision as of 21:16, 15 March 2008

back to summary
Zur deutschsprachigen Version dieser Seite
BlinkenApplet
Year 2006
Architecture
Operating System
Hardware requirements
Software requirements
Source Code Size
Memory requirements
Language
License GPL
Contact person Guido Pannenbecker
Miscellaneous Sourceforge
English Version of this Page

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 Guido Pannenbecker eine eMail zu schreiben!

Aktueller Status

Alle vier Dateiformate und UDP-Streams mit dem Protokoll 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 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 BlinkenMovie-Datei (im Beispiel: movie.blm) abgespielt werden.

Bei Problemen zögert Sie bitte nicht, Guido Pannenbecker 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 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.