Difference between revisions of "U23 2005/Scripteditor"

From C4 Wiki
Jump to: navigation, search
(Gliederung + Arbeitsschritte)
(Releases: Das Zeug was bei mir lag war so was von veraltet! --Blase16 aka kalkin-)
 
(107 intermediate revisions by 41 users not shown)
Line 1: Line 1:
 
== Beschreibung ==
 
== Beschreibung ==
  
(kommt noch)
+
Ein Editor, mit dem man sich ganz einfach Scripts für das Fnordlicht zusammenklicken kann. Dabei kann man für jeden
 +
Farbkanal (RGB) 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.
 +
Die drei Farbkanäle kann man dann in einem XML-Dateiformat abspeichern, damit man sie auch später noch bearbeiten kann.
  
== Funktionen ==
+
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.
  
* Die Scriptdateien per Parameter beim Kompilieren nachladen ca. so make install-fnordlicht meinTollesScript.inc
+
== Noch nicht implementierte Funktionen ==
* Speichern der Script-Entwuerfe in einem eigenen Dateiformat (z.B. .fs = fnordlicht Script)
 
* ...
 
  
== Arbeitsschritte ==
+
* Durchsichtige Blöcke (bzw. in der Farbe des Hintergrundes), wenn Brightness = 0
 +
* Zeitleise (in sec)
  
* Doku zu den [[Firmware Makros]] die fuer die Scripts benoetigt werden. Machen: diozaka, manuke. (fertig)
+
 
* GUI entwerfen. (fertig, siehe unten)
+
== Interfaces ==
* GUI schreiben.
+
''Zu finden im Quellcode.''
* Dateiformat für Script-Entwuerfe (*.fs) definieren.
+
 
* Parser schreiben: Script-Entwurf -> Assembler-Macros
+
 
* Makefile anpassen. (siehe oben)
+
== Quellcode ==
 +
Hier kommt der Quellcode von den einzelnen Modulen hin.
 +
 
 +
'''ACHTUNG:''' VERALTET
 +
 
 +
* [http://manuke.gmxhome.de/scripteditor/Simulator.java Simulator.java] (Signatur folgt)
 +
* [http://manuke.gmxhome.de/scripteditor/SimWindow.java SimWindow.java] (Signatur folgt)
 +
 
 +
* [http://www.mene.biz/CMDEditor.java CMDEditor.java] (Text-Interface) -- mene
 +
 
 +
* [http://files.gultsch.de/scripteditor/XMLParser.java XMLParser.java]
 +
* [http://files.gultsch.de/scripteditor/XMLHandler.java XMLHandler.java] Wird für die Komunikation mit SAX gebraucht.
 +
* [http://files.gultsch.de/scripteditor/just4testing.java just4testing.java] Nur zum testen ;-)
 +
 
 +
== Releases ==
 +
 
 +
* <strike>'''Stable''': [http://files.blase16.de/src/fnordlichtScripteditor_0.1.jar fnordlichtScripteditor 0.1] (2005-12-02)</strike>
 +
* '''Stable''' von Diozaka: [http://diozaka.org/downloads/fse-20061223.tar.gz Version 2006-12-23] ([http://diozaka.org/modules/fnordlicht.html Changelog])
  
 
== GUI ==
 
== GUI ==
Unser erster Entwurf für den Simple-Mode
+
http://diozaka.org/images/fse.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:
 +
 
 +
<pre>
 +
<!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>
 +
</pre>
 +
 
 +
=== 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. :)
 +
 
  
Die GUI als HTML-Tabelle...
+
[[Category:U23 2005]]
: Hab ich mal rausgenommen, direkt als Bilddatei ist besser. --Diozaka
 

Latest revision as of 22:05, 23 July 2007

Beschreibung

Ein Editor, mit dem man sich ganz einfach Scripts für das Fnordlicht zusammenklicken kann. Dabei kann man für jeden Farbkanal (RGB) 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. Die 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: VERALTET

Releases

GUI

http://diozaka.org/images/fse.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. :)