#################################### ### ### ### Chromoflex B0.3 ### ### "ChromoflexRC.dll" ### ### ### #################################### ##### Change-Log / Neue Befehle //"Stand-Alone" Chromflex_FadeColor(ObjectId,r,g,b,dimm,duration) Chromflex_BroadcastFadeColor(ObjectId,r,g,b,dimm,duration) //"Program" Chromflex_Programm_Length(ObjectId) : integer Chromflex_Programm_IsRunning(ObjectId) : boolean Chromflex_Programm_Add(ObjectId,function,duration) Chromflex_Programm_Clear(ObjectId) Chromflex_Programm_Start(ObjectId,repeat) Chromflex_Programm_StartBroadcast(ObjectId,repeat) Chromflex_Programm_Stop(ObjectId) ###### ###### "Stand-Alone" Funktionen: Chromflex_FadeColor(ObjectId,r,g,b,dimm,duration) Chromflex_BroadcastFadeColor(ObjectId,r,g,b,dimm,duration) /* Von Aktueller Farbe zu Übergebener Farbe überblenden. Dauer des Überblendens: duration in Millisekunden, aber nicht unter 50 ms (Chromoflex blendet ohnehin minimal über) Während des Vorgangs wird die ProgramVariable des Moduls auf "88" gesetzt, nach Ablauf des Programms steht es dann auf 18 => Farbe Wird während eines Vorgangs eine andre CF Steuer-Funktion (SetColor,SetProgram,usw....) ausgeführt, so wird der Fade abgebrochen. */ ###### ###### Programmfunktionen: /* Das Modul bietet nun Zeitgesteuerte Programmfunktionen Man kann ein eigenes Ablauf-Program zusammenstellen und dieses starten. Dabei wird allerdings nicht das Interne ROM des Empfängers programmiert sondern der Empfänger wird "LIVE" angesteuert. Die Möglichkeiten sind beim Internen Rom zu begrenzt. Das bedeutet aber das (im Höchstfall) 25 mal pro Sekunde ein Befehl über den Dongle an die Empfänger geschickt wird. Das klingt krasser als es ist :). Es wird nur ein Befehl gesendet wenn sich die Farbe auch wirklich geändert hat. Ich habe keine Störungen anderer Geräte feststellen können. */ Chromflex_Programm_Add(ObjectId,function,duration) /* Fügt dem Programm einen weiteren Punkt hinzu. duration:integer Dauer der Aktion function:string Zurzeit gibt es 3 Funktionen: "fadeTo(farbe)" // dimm: optional,default:254 //Zu Farbe Überblenden (über die dauer) "set(farbe)" // dimm: optional,default:254 //Farbe setzen (und für die dauer halten) "hold" //Aktuelle Farbe halten (für die dauer) Die Farbe (farbe) hat grundsätzlich folgendes Format: r,g,b,dimm Allerdings kann Sie auch viel mehr sein (siehe dazu unten: Farb-Definitionen) ########### Beispiel: ####################### // Vor einem neuen Programm: resetten Chromflex_Programm_Clear(11199) // Sonnen-Aufgang (über ~ 300 Sekunden, dann 10 Sekunden "halten") ChromoflexRC_Program_Add(11199,'set(255,0,0,0)',100); //Rot und Dunkel machen ChromoflexRC_Program_Add(11199,'fadeTo(255,205,70,254)',300000); //über 300 Sekunden aufblenden und Farbe auf Warmweiß ChromoflexRC_Program_Add(11199,'hold',10000); //Tageslicht 10 Sekunden halten (hier unnötig ;) // Programm starten: (nicht im Repeat Modus=> False) Chromflex_Programm_Start(11199,FALSE); Zumindest bei meinen RGB Stripes sind die Schritte bei Dunkelen Farben (rund Ums Schwarz) leider etwas grob und somit stufig. ############################################# Theoretisch können *beliebig* viele Program-Punkte aneinander gereiht werden Chromflex_Programm_Clear(ObjectId) // Program löschen Chromflex_Programm_Start(ObjectId,repeat) // Starten für die betroffenen Device // repeat=false => Das Program läuft ein mal und beendet dann den Program Modus // repeat=true => Das Program wiederholt sich Chromflex_Programm_StartBroadcast(ObjectId,repeat) // Starten für alle Devices // repeat=false => Das Program läuft ein mal und beendet dann den Program Modus // repeat=true => Das Program wiederholt sich Chromflex_Programm_Stop(ObjectId) // Das Program stoppen (wird auch durch jede andere Funktion die den Receiver ansteuert beendet (SetColor,SetProgram....) Chromflex_Programm_Length(ObjectId) : integer // Länge des Programms (in Millisekunden) Chromflex_Programm_IsRunning(ObjectId) : boolean // Läuft grade das Userprogram? // Alternativ wird auch die ProgramVariable des Moduls auf "99" gesetzt, nach Ablauf des Programms steht es dann auf 18 => Farbe ############################### ###### Farb-Definitionen: (für Program_Add) Die Farben werden in folgendem Format angegeben, fehlt ein Parameter, so wird der Default-Wert gesetzt. Farb-Format: r,g,b,dimm r:rot :Default=0 g:grün :Default=0 b:blau :Default=0 dimm:dimmer :Default=254 Die einzelnen Werte können Absolut oder auch Zufällig sein: Wert-Formate: x Zahl Absolut: x x-y Zufallszahl x bis y -y Zufallszahl 0 bis y x- Zufallszahl x bis 255 - Zufallszahl 0 bis 255 FarbPaletten: Anstelle nur einer Farbe können auch Paletten verwendet werden. Diese machen nur Sinn in sich wiederholenden Programmen! Hierbei werden die einzelnen "Farben" mit Semikolon getrennt. Man hat die Wahl ob eine Zufällige Farbe aus der Palette gewählt werden soll ODER die Farben in Reihe "abgearbeitet" werden sollen: (Zufällig) [farbe1;farbe2;farbe3] (Reihe) {farbe1;farbe2;farbe3} ##### Beispiele (alle für den "repeat-modus" gedacht): ###### ############################################################# Für alle Beispiele gilt: Vor dem Adden das alte Programm löschen, also ChromoflexRC_Program_Clear aufrufen - Nach dem Adden muss das Programm noch gestartet werden (siehe oben) // Kleine Pallette durchwandern: {} ChromoflexRC_Program_Add(11199,'set({255,0,0; 255,255,0; 0,255,0; 0,255,255; 0,0,255; 255,0,255})',5000); // Nächste Paletten Farbe 5 Sekunden halten // -geht natürlich auch als Fading -> "Regenbogen": ChromoflexRC_Program_Add(11199,'fadeTo({255,0,0; 255,255,0; 0,255,0; 0,255,255; 0,0,255; 255,0,255})',5000); // 5 Sekunden zu nächster Paletten Farbe Faden // Das entspricht im überigen exakt diesem Program - ist aber auf eine Zeile Komprimiert: ChromoflexRC_Program_Add(11199,'fadeTo(255,0,0)',5000); ChromoflexRC_Program_Add(11199,'fadeTo(255,255,0)',5000); ChromoflexRC_Program_Add(11199,'fadeTo(0,255,0)',5000); ChromoflexRC_Program_Add(11199,'fadeTo(0,255,255)',5000); ChromoflexRC_Program_Add(11199,'fadeTo(0,0,255)',5000); ChromoflexRC_Program_Add(11199,'fadeTo(255,0,255)',5000); // Gleiche Palette aber diesmal ist Reihenfolge zufällig [] - das kann man nicht durch ein alternativ Programm lösen ;) ChromoflexRC_Program_Add(11199,'set([255,0,0; 255,255,0; 0,255,0; 0,255,255; 0,0,255; 255,0,255])',5000); // 5 Sekunden zu nächster Paletten Farbe Faden ### Nun Zufällige Farbwerte // Zufall Farben r,g,b je 0 bis 255 ChromoflexRC_Program_Add(11199,'set(-,-,-)',10000); // Zufälltige Farbe 10 Sekunden halten // Zufall Farben Primär Rot (Der Rotanteil liegt bei 200 - 255) ChromoflexRC_Program_Add(11199,'set(200-,-,-)',10000); // Zufälltige Farbe 10 Sekunden halten // Zufall Farben diesmal noch definierter (rot: 100 bis 200 - grün: 10 bis 100 - blau: 200-230 ChromoflexRC_Program_Add(11199,'set(100-200,10-100,200-230)',10000); // Zufälltige Farbe 10 Sekunden halten // Natürlich kann man auch den Dimmer auf Zufall setzen (hier 100 bis 200) ChromoflexRC_Program_Add(11199,'set(255,190,230,100-200)',10000); // Man kann Zufällige Zahlen auch in Paletten verwenden (Hier ein Zufälliger RotTon gefolgt von Weiß ... usw.) ChromoflexRC_Program_Add(11199,'set({200-,-100,-70; 255,255,255})',10000); ### Hier noch einmal ein paar Beispiele // Weicher Wechsel ChromoflexRC_Program_Add(11199,'fadeTo(100-,100-,100-)',3000); // 3 Sekunden zu Zufälltiger Farbe überblenden ChromoflexRC_Program_Add(11199,'hold',10000); // Farbe 10 Sekunden halten (für Repeat Modus) // FlashChange: Ein RotTon gefolgt von einem GrünTon dann ein BlauTon, Dazwischen jeweils ein kurzes aufblitzen in Weiß ChromoflexRC_Program_Add(11199,'set({200-,-100,-100;-100,200-,-100;-100,-100,200-})',5000 ); ChromoflexRC_Program_Add(11199,'set(255,255,255)',100 ); // So etwas wie Blob: ChromoflexRC_Program_Add(11199,'fadeTo({200-,-100,-100;-100,200-,-100;-100,-100,200-})',3000 ); ChromoflexRC_Program_Add(11199,'fadeTo({200-,-100,-100;-100,200-,-100;-100,-100,200-})',3000 ); Der Kreativität sollten keine Grenzen gesetzt sein, wenn doch: also wenn Ihr ein Ablauf-Programm bauen wollt das Ihr so nicht umsetzten könnt... PN -> an HUELKE ### Beispiel für "kompliziertere" Proramme: // Gewitter: (Nicht so gut wie das "echte" -ein wenig "sanfter"*- aber es geht... ;) (* Das liegt daran das der CF leider IMMER leicht fadet wenn man die Farbe per Funk wechselt) // Auf diese Weise lässt sich sicherlich auch etwas wie das "Feuer-Program" erstellen. ChromoflexRC_Program_Add(11199,'fadeTo(-50,-50,200-,-50)',1500 ); // fade zu einem zufälligen dunkelen Blau ChromoflexRC_Program_Add(11199,'fadeTo(-50,-50,200-,-50)',1500 ); // fade zu einem (weiteren) zufälligen dunkelen Blau ChromoflexRC_Program_Add(11199,'fadeTo(-50,-50,200-,-50)',1500 ); // fade zu einem (weiteren) zufälligen dunkelen Blau (insg 4,5 Sekunden) // Das ist quasi das Hintergrund "Rauschen" // Nun muss ab und zu für einen Blitz gesorgt werden: // Dafür wird zufällig aus einer Palette aus Farben gewählt. Meistens ist es wieder nur ein weiteres zufälliges Blau. Manchmal aber auch ein reines Weiß: // Je nachdem wie oft man die Blaue Farbe da mit reinschreibt verringert sich natürlich die Wahrscheinlichkeit für den weißen Blitz... ChromoflexRC_Program_Add(11199,'set([-50,-50,200-,-50;-50,-50,200-,-50; -50,-50,200-,-50; 255,255,255,254)',100 ); // Kurzer "Flash" wahrscheinlichkeit 3:1 für weiß(=Blitz) ChromoflexRC_Program_Add(11199,'set([-50,-50,200-,-50; -50,-50,200-,-50; 255,255,255,254)',100 ); // Kurzer "Flash" wahrscheinlichkeit 2:1 für weiß(=Blitz) ChromoflexRC_Program_Add(11199,'set([-50,-50,200-,-50; -50,-50,200-,-50; 255,255,255,254)',100 ); // Kurzer "Flash" wahrscheinlichkeit 2:1 für weiß(=Blitz) ChromoflexRC_Program_Add(11199,'set([-50,-50,200-,-50;-50,-50,200-,-50; -50,-50,200-,-50; 255,255,255,254)',100 ); // Kurzer "Flash" wahrscheinlichkeit 3:1 für weiß(=Blitz) // Weil danach das Programm wiederholt wird wollen wir nicht das die letzte Farbe Weiß war: ChromoflexRC_Program_Add(11199,'set(-50,-50,200-,-50)',200 ); // Setze Dunkeles Blau (damit nicht vom Weiß eines "Blitzes" 1,5 Sek gefaded wird (repeat) Nun denn, bitte Postet doch das ein oder andere Program, welches Ihr erstellt habt. Ich bin mal gespannt auf eure Ideen. Die Nutzung geschieht auf eigene Gefahr. WARNUNG: nicht mehrere Programme die Viel "Funkbedarf" haben gleichzeitig laufen lassen. Der Dauer Test mit einem Einzelnen Programm hat problemlos funktioniert. Der Stress Test mit 4 Parallen Stressreichen Programmen hat zu einer Fehlfunktion des Dongels geführt (nach längerer Laufzeit).