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.
Requirements
WIO version 295+.
Rocrail version 2.1.1042+.
Format
The text format has some restrictions:
- A blank line will stop the LEDScript parser the same as with 'end'.
- Comment lines are prefixed with the '#' sign, and are restricted to 64 characters incl. linefeed.
- Only linefeeds are allowed without extra carriage return. (Unix format)
- Max. 32 sequences are allowed.
File naming
The filename must be formatted like this:
<freetext><nr>.led
The number, <nr> ranges from 01
to 99
.
Example:
disco04.led
Zero, *00.led, cannot be addressed.
Instructions
Header
The header just contains one line:
s <iterations> | The max. number iterations is 255, and zero will cause an endless loop. |
o <report> | Report end of script in case set to 1. (Default 1, set to 0 for disable reporting.) |
LED Definition
l <nr> | Starting LED address, and triggers a new record |
c <count> | Number of LEDs starting from l address |
C <count> | random LED from range l address to C |
+ or - <count> | to increase step by step (instead of c or C) *1 |
r <red> | RGB red value |
g <green> | RGB green value |
b <blue> | RGB blue value |
i <brightness> | LED brightness |
< or > <brightness> | to decrease/increase LED brightness step by step (instead of i or I) (Ver 380+) |
p <pause> | Pause in units of 10ms |
R <red> | RGB red randomised with the given max. value or range* (musn't be 0) |
G <green> | RGB green randomised with the given max. value or range* (musn't be 0) |
B <blue> | RGB blue randomised with the given max. value or range* (musn't be 0) |
I <brightness> | LED brightness randomised with the given max. value |
P <pause> | Randomised pause in units of 10ms with the given max. value |
a | Randomise this definition, RGB, brightness and pause values with the given max. values |
The rgbip values can be left out, and in this case the last parsed values are used.
*range: A 16bit RGB value range. Example: Range from 150 to 220. Value = 220+(150*256)=38620 (Ver 374+)
*1: for increase until the next l command. With + the LEDs stays on, with - not. See example below (Ver 377+)
LED Reset
If t
> 0 this is used at the end of the script to reset LEDs.
d <nr> | Starting LED address |
t <count> | Number of LEDs starting from d address |
LED OFF
At a LED(output) off command, the following fields are used to reset LEDs, if the LEDs are still on after the script has finished.
D <nr> | Starting LED address |
T <count> | Number of LEDs starting from D address |
Footer
e | End of the LEDScript. |
Upload
Uploading LEDScript files can be done with a WEB Browser as explained here:
Upload by WEB Browser
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.