This is an old revision of the document!
Table of Contents
LEDScript
Introduction
LEDScript fonctionne dans le contexte WIO, et peut être activé par les commandes Rocrail.
C'est un simple fichier ASCII, qui peut être téléchargé dans le WIO.
Les LEDs de couleur cibles doivent être supportées par la bibliothèque FastLED.
Conditions
WIO version 295+.
Rocrail version 2.1.1042+.
Format
Le format texte possède quelques restrictions:
- Une ligne vierge arrêtera l'analyseur LEDScript, identique à celui avec 'end'.
- Les lignes de commentaires sont préfixés avec le signe '#', et sont restreint à 64 caractères incluant le saut de ligne.
- Seuls les sauts de lignes sont autorisés sans retour de chariot supplémentaire. (Format Unix)
- 32 séquences maximales sont autorisées.
Nommage de fichier
Le nom de fichier doit être formaté comme ceci:
<freetext><nr>.led
Le numéro, <nr> dans une plage de 01
à 99
.
Exemple:
disco04.led
Zero, *00.led, ne peut pas être adressé.
Instructions
Entêtes
L'entête contient juste une ligne:
s <iterations> | Le nombre maximum d'itérations est de 255, et zéro causera une boucle sans fin. |
o <report> | Signaler la fin du script dans le cas de réglage à 1. (Par défaut 1, régler à 0 pour désactiver le signalement.) |
Définition LED
l <nr> | Adresse LED de départ, et déclenchement d'un nouvel enregistrement |
c <count> | Nombre de LEDs démarrant de l adresse |
C <count> | LED aléatoire de la plage d'adresse l à C |
+ or - <count> | pour augmenter pas à pas (au lieu de c ou C) *1 |
r <red> | valeur rouge RGB |
g <green> | valeur verte RGB |
b <blue> | valeur bleue RGB |
i <brightness> | luminosité LED |
< or > <brightness> | pour augmenter/diminuer la luminosité de la LED pas à pas (au lieu de i ou I) (Ver 380+) |
p <pause> | Pause par tranche de 10ms |
R <red> | RGB rouge aléatoire avec la valeur maximale donnée ou plage* (ne doit pas être 0) |
G <green> | RGB vert aléatoire avec la valeur maximale donnée ou plage* (ne doit pas être 0) |
B <blue> | RGB bleu aléatoire avec la valeur maximale donnée ou plage* (ne doit pas être 0) |
I <brightness> | luminosité de la LED aléatoire avec la valeur maximale donnée |
P <pause> | pause aléatoire par tranche de 10ms avec la valeur maximale donnée |
a | rend aléatoire cette définition, les valeurs RGB, luminosité et pause avec les valeurs maximales données |
Les valeurs rgbip peut être laissé de côté, et dans ce cas les dernières valeurs analysées sont utilisées.
*plage: Une plage de valeur 16bit RGB. Exemple: Plage de 150 à 220. Valeur = 220+(150*256)=38620 (Ver 374+)
*1: pour augmenter jusqu'à la prochaine commande l. Avec + les LEDs restent allumées, avec - non. Voir l'exemple ci-dessous (Ver 377+)
Réinitialisation LED
Si t
> 0 cela est utilisé à la fin du script pour réinitialiser les LEDs.
d <nr> | Adresse de LED de départ |
t <count> | Nombre de LEDs démarrant à l'adresse d |
LED OFF
Lors d'une commande d'arrêt de la LED (sortie), les champs suivants sont utilisé pour réinitialiser les LEDs, si les LEDs restent allumées après que le script soit fini.
D <nr> | Adresse de LED de départ |
T <count> | Nombre de LEDs démarrant à l'adresse D |
Bas de page
e | Fin du LEDScript. |
Téléchargement
Le téléchargement des fichiers LEDScript peut être fait avec un navigateur WEB comme expliqué ici:
Téléchargement par le Navigateur WEB
Activating
Output
Set the address value greater then 100, and <nr> is address - 100.
Car Function
Set the LED address value greater then 100, and <nr> is address - 100.
Examples
# start 0=endless loop, 1...255=iterations s2 # led 0 to 5 l0 c6 r255 g0 b0 i50 p1000 # led 0 to 2 l0 c3 r255 g255 b0 i50 p1000 # end e
# Disco # start 0=endless loop, 1...255=iterations s0 # led 0 to 19 l0 c20 # random a r255 g100 b100 i80 p20 e
Increase LED nr. (V377+):
# warning lights s0 //Script declared endless l0 -6 //starting increase with LEDs off after p r255 g115 b0 i150 p10 //end increase l0 c6 r255 g115 b0 i150 p5 l0 c6 i0 p100 l0 +6 //starting increase with LEDs staying on after p r255 g115 b0 i150 p10 //end increase l0 c6 i0 p100 #LED-reset, all LED off d0 t6 e
increase/decrease brightness (V380+):
#brightinc s0 l0 +1 r255 g80 b0 >150 //increase brightness l1 +1 r255 g80 b0 <150 //decrease brightness p3 #LED-reset, LED ausschalten. d0 t2 e
WIO LEDScript Parser
The WIO parser is very simple, and reads the file line by line.
After reading a line, the first character is checked as listed in the Instructions paragraph.
If a number is expected, the C function atoi() is used with the line pointer + 1. A none numeric character should follow the number.
Because of the simple nature of this parser, it is also allowed to add some text to make the LEDScript more readable:
i80 // brightness 80 of 255 p20 // pause 20 * 10ms end
But the total line length, incl. linefeed, should not exceed the 64 byte boundary.