color() = color_name() | color_value()
A color as either a shorthand name or a specific RGB value.
color_name() = off | black | blue | green | aqua | red | magenta | yellow | white
A color name. off and black are shorthands for turning off the LED.
color_value() = {0 | 1, 0 | 1, 0 | 1}
A color value, specifying the individual R, G and B components as 1's or 0's where 1 means on and 0 means off.
pattern() = [{time(), color() | fun(() -> color())}]
A list of intervals and colors to show during those intervals.
position() = 1 | 2
The position of the LED on the GRiSP board, either 1 or 2.
time() = pos_integer() | infinity
A time interval for a color in milliseconds. Must be 1 or above, or
alternatively infinity.
| color/2 | Set the color of an LED. |
| flash/3 | Flash an LED in an on/off pattern with the specified color. |
| off/1 | Turn of an LED. |
| pattern/2 | Animate an LED with a pattern of colors and intervals. |
| read/1 |
color(Pos::position(), Color::color()) -> ok
Set the color of an LED.
1> grisp_led:color(1, red).
ok
2> grisp_led:color(2, {0, 1, 0}).
ok
flash(Pos::position(), Color::color(), Interval::time()) -> ok
Equivalent to grisp_led:pattern(Position, [{Time, Color}, {Time, off}]).
Flash an LED in an on/off pattern with the specified color.
1> grisp_led:flash(2, blue, 500). ok
off(Pos::position()) -> ok
Equivalent to grisp_led:color(Pos, off).
Turn of an LED.
pattern(Pos::position(), Pattern::pattern()) -> ok
Animate an LED with a pattern of colors and intervals.
1> grisp_led:pattern(1, [{300, green}, {500, yellow}, {700, red}, {infinity, off}]).
ok
2> Rainbow = [{300, {R, G, B}} || R <- [0,1], G <- [0,1], B <- [0,1], {R, G, B} =/= {0, 0, 0}].
[{300,{0,0,1}},
{300,{0,1,0}},
{300,{0,1,1}},
{300,{1,0,0}},
{300,{1,0,1}},
{300,{1,1,0}},
{300,{1,1,1}}]
3> grisp_led:pattern(2, Rainbow).
ok
The color can also be specified using functions as generators instead of explicitly stating the color :
2> Random = fun() -> {rand:uniform(2) - 1, rand:uniform(2) -1, rand:uniform(2) - 1} end.
#Fun<erl_eval.20.128620087>
3> grisp_led:pattern(1, [{100, Random}]).
As well as by composing lists of intervals and pattern functions :
4> Funs = [ fun() -> {X rem 2, rand:uniform(2) - 1 , 1} end || X <- lists:seq(1,10) ].
[#Fun<erl_eval.20.128620087>, ...
5> Intervals = lists:seq(1000,1900,100).
[1000,1100,1200,1300,1400,1500,1600,1700,1800,1900]
6> Result = lists:zip(Intervals, Funs).
[{1000,#Fun<erl_eval.20.128620087>},...
7> grisp_led:pattern(1, Result).
read(Pos) -> any()
Generated by EDoc