Difference between revisions of "U23 2005/Scripteditor"
(→Releases: Neue Version) |
(→Releases) |
||
Line 38: | Line 38: | ||
== Releases == | == Releases == | ||
− | * '''Stable''': [http://files.blase16.de/src/fnordlichtScripteditor_0.1.jar fnordlichtScripteditor 0.1] | + | * '''Stable''': [http://files.blase16.de/src/fnordlichtScripteditor_0.1.jar fnordlichtScripteditor 0.1] (2005-12-02) |
− | * Aktueller Snapshot von Diozaka: [http://diozaka | + | * Aktueller Snapshot von Diozaka: [http://diozaka.org/downloads/fse-20051214.tar.gz Version 2005-12-14] |
== GUI == | == GUI == |
Revision as of 17:25, 14 December 2005
Contents
Beschreibung
Ein Editor, mit dem man sich ganz einfach Scripts für das Fnordlicht zusammenklicken kann. Dabei kann man für jeden Farbkanal getrennt so genannte Frames einfügen. In einem Frame wird gespeichert, wie lange eine bestimmte Helligkeit gehalten werden soll, ob es einen Fade zu dieser Helligkeit geben soll und wie lange dieser Fade dauern soll. Diese drei Farbkanäle kann man dann in einem XML-Dateiformat abspeichern, damit man sie auch später noch bearbeiten kann.
Aus dem Programm heraus können dann die Assembler-Makros generiert werden, die (mit der modifizierten Makefile) ganz einfach in die Fnordlicht-Firmware einkompiliert werden können.
Noch nicht implementierte Funktionen
- Durchsichtige Blöcke (bzw. in der Farbe des Hintergrundes), wenn Brightness = 0
- Zeitleise (in sec)
Interfaces
Zu finden im Quellcode.
Quellcode
Hier kommt der Quellcode von den einzelnen Modulen hin.
ACHTUNG: Jeder kann hier im Wiki die Links verändern, also guckt euch am besten den Code nochmal an, bevor ihr ihn ausführt oder überprüft ob die Signatur stimmt.
- Simulator.java (Signatur folgt)
- SimWindow.java (Signatur folgt)
- CMDEditor.java (Text-Interface) -- mene
- XMLParser.java
- XMLHandler.java Wird für die Komunikation mit SAX gebraucht.
- just4testing.java Nur zum testen ;-)
Releases
- Stable: fnordlichtScripteditor 0.1 (2005-12-02)
- Aktueller Snapshot von Diozaka: Version 2005-12-14
GUI
http://files.blase16.de/GUI.jpg
Koordination
- Klasse GUI übergibt die Daten bei jedem Klick auf Add an die Klasse Linker
- Klasse Linker erstellt für die Daten ein einzelnes Objekt von der Klasse Frame und schiebt es in ein Array (für jede Farbe getrennt).
Menü:
- GUI ruft über Save die Methode parseToXML der Klasse Linker auf - diese wiederum den XMLParser
- GUI ruft über Open die Methode loadFrame der Klasse Linker auf - diese dann die Methoden parseFromXML und getFrameMemory
- GUI ruft über Export die Methode parseToMacro der Klasse Linker auf - diese den MacroParser.
Dateiformat, in XML
Hier unser Dateiformat für die Scripts.
Elemente
- <fnordlicht>
- Attribute: (keine)
- Erläuterung: Ist das Wurzelement.
- <channel>
- Attribute: color
- color: Gibt den Farbkanal an, kann entweder red, green oder blue sein.
- Erläuterung: Muss (Kann nur?) insgesamt dreimal vorkommen, enthält die einzelnen Frames für einen Farbkanal.
- <frame />
- Attribute: fade, duration, brightness
- fade: Die Länge des Fades (muss kleiner oder gleich duration sein, 0 bedeuted kein Fade, Angabe in Sekunden).
- duration: Die Gesamtdauer des Frames (in Sekunden).
- brightness: Die Helligkeit der Farbe (0-255).
- Erläuterung: Repräsentiert eine Farb-Aktion.
--Blase16 & Diozaka
DTD
Das hier müsste die passende DTD zur Beschreibung sein:
<!ELEMENT fnordlicht (channel+)> <!ELEMENT channel (frame+)> <!ATTLIST channel color (red|green|blue)+ #REQUIRED> <!ELEMENT frame EMPTY> <!ATTLIST frame fade CDATA #REQUIRED duration CDATA #REQUIRED brightness CDATA #REQUIRED>
Beispiel
<?xml version="1.0" ?> <fnordlicht> <channel color="red"> <frame fade="20" duration="20" brightness="255" /> <frame fade="20" duration="20" brightness="0" /> </channel> <channel color="green"> <frame fade="5" duration="10" brightness="255" /> <frame fade="10" duration="10" brightness="0" /> <frame fade="5" duration="10" brightness="255" /> <frame fade="10" duration="10" brightness="0" /> </channel> <channel color="blue"> <frame fade="0" duration="40" brightness="128"/> </channel> </fnordlicht>
Makefile
Diese drei Zeilen zum Makefile hinzufügen:
script-%: sed -i '$$D' fnordlicht.asm echo ".include \"$@\"" | sed -e 's/script-//' >> fnordlicht.asm
Hierdurch wird die letzte Zeile in fnordlicht.asm (das static script) gelöscht und das Script eingefügt, das hinter script- angegeben wird.
Known Bugs
Keine. :)