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.
Format
Seuls les sauts de ligne Unix sont autorisés. |
---|
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
Activation
Sortie
Régler la valeur de l'adresse, <nr>, entre 1 et 99 et définir le type de port sur LEDScript.
Fonction Voiture
Régler la valeur de l'adresse de la LED supérieur à 100, et <nr> est l'adresse - 100.
Exemples
# 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
Augmenter le numéro de LED (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
Augmenter/Diminuer la luminosité (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
Analyseur LEDScript WIO
L'analyseur WIO est très simple, et lit le fichier ligne par ligne.
Après la lecture d'une ligne, le premier caractère est vérifié comme indiqué dans le paragraphe Instructions.
Si un nombre est attendu, la fonction atoi() C est utilisée avec le pointeur de ligne + 1. Un caractère non numérique peut suivre le nombre.
En raison de la nature simple de cet analyseur, il est aussi autorisé d'ajouter du texte pour rendre le LEDScript plus lisible:
i80 // brightness 80 of 255 p20 // pause 20 * 10ms end
Mais la longueur de ligne totale, incluant le saut de ligne, ne doit pas excéder la limite de 64 octets.