Remove buffer:write() as ws2812.write() handles buffers (#1408)
This commit is contained in:
parent
854ad7c80f
commit
8866297c6d
|
@ -396,17 +396,6 @@ static int ws2812_buffer_size(lua_State* L) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ws2812_buffer_write(lua_State* L) {
|
|
||||||
ws2812_buffer * buffer = (ws2812_buffer*)lua_touserdata(L, 1);
|
|
||||||
|
|
||||||
luaL_argcheck(L, buffer && buffer->canary == CANARY_VALUE, 1, "ws2812.buffer expected");
|
|
||||||
|
|
||||||
// Send the buffer
|
|
||||||
ws2812_write_data(buffer->values, buffer->colorsPerLed*buffer->size, 0, 0);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const LUA_REG_TYPE ws2812_buffer_map[] =
|
static const LUA_REG_TYPE ws2812_buffer_map[] =
|
||||||
{
|
{
|
||||||
{ LSTRKEY( "fade" ), LFUNCVAL( ws2812_buffer_fade )},
|
{ LSTRKEY( "fade" ), LFUNCVAL( ws2812_buffer_fade )},
|
||||||
|
@ -415,7 +404,6 @@ static const LUA_REG_TYPE ws2812_buffer_map[] =
|
||||||
{ LSTRKEY( "set" ), LFUNCVAL( ws2812_buffer_set )},
|
{ LSTRKEY( "set" ), LFUNCVAL( ws2812_buffer_set )},
|
||||||
{ LSTRKEY( "size" ), LFUNCVAL( ws2812_buffer_size )},
|
{ LSTRKEY( "size" ), LFUNCVAL( ws2812_buffer_size )},
|
||||||
{ LSTRKEY( "shift" ), LFUNCVAL( ws2812_buffer_shift )},
|
{ LSTRKEY( "shift" ), LFUNCVAL( ws2812_buffer_shift )},
|
||||||
{ LSTRKEY( "write" ), LFUNCVAL( ws2812_buffer_write )},
|
|
||||||
{ LSTRKEY( "__index" ), LROVAL( ws2812_buffer_map )},
|
{ LSTRKEY( "__index" ), LROVAL( ws2812_buffer_map )},
|
||||||
{ LNILKEY, LNILVAL}
|
{ LNILKEY, LNILVAL}
|
||||||
};
|
};
|
||||||
|
|
|
@ -77,11 +77,11 @@ For this purpose, the ws2812 library offers a read/write buffer.
|
||||||
Led chaser with a RGBW strip
|
Led chaser with a RGBW strip
|
||||||
```lua
|
```lua
|
||||||
ws2812.init()
|
ws2812.init()
|
||||||
local i, b = 0, ws2812.newBuffer(300, 4); b:fill(0, 0, 0, 0); tmr.alarm(0, 50, 1, function()
|
local i, buffer = 0, ws2812.newBuffer(300, 4); buffer:fill(0, 0, 0, 0); tmr.alarm(0, 50, 1, function()
|
||||||
i=i+1
|
i=i+1
|
||||||
b:fade(2)
|
buffer:fade(2)
|
||||||
b:set(i%b:size()+1, 0, 0, 0, 255)
|
buffer:set(i%buffer:size()+1, 0, 0, 0, 255)
|
||||||
ws2812.write(b)
|
ws2812.write(buffer)
|
||||||
end)
|
end)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -112,8 +112,11 @@ Return the value at the given position
|
||||||
|
|
||||||
#### Example
|
#### Example
|
||||||
```lua
|
```lua
|
||||||
buffer:get(2) -- return the color of the second led
|
buffer = ws2812.newBuffer(32, 4)
|
||||||
|
print(buffer:get(1))
|
||||||
|
0 0 0 0
|
||||||
```
|
```
|
||||||
|
|
||||||
## ws2812.buffer:set()
|
## ws2812.buffer:set()
|
||||||
Set the value at the given position
|
Set the value at the given position
|
||||||
|
|
||||||
|
@ -122,21 +125,29 @@ Set the value at the given position
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
- `index` position in the buffer (1 for the first led)
|
- `index` position in the buffer (1 for the first led)
|
||||||
- `color` bytes of the color
|
- `color` payload of the color
|
||||||
|
|
||||||
|
Payload could be:
|
||||||
|
- `number, number, ...` you should pass as many arguments as `bytesPerLed`
|
||||||
|
- `table` should contains `bytesPerLed` numbers
|
||||||
|
- `string` should contains `bytesPerLed` bytes
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
`nil`
|
`nil`
|
||||||
|
|
||||||
#### Example
|
#### Example
|
||||||
```lua
|
```lua
|
||||||
|
buffer = ws2812.newBuffer(32, 3)
|
||||||
buffer:set(1, 255, 0, 0) -- set the first led green for a RGB strip
|
buffer:set(1, 255, 0, 0) -- set the first led green for a RGB strip
|
||||||
```
|
```
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
buffer:set(1, {255, 0, 0}) -- set the first led green for a RGB strip
|
buffer = ws2812.newBuffer(32, 4)
|
||||||
|
buffer:set(1, {0, 0, 0, 255}) -- set the first led white for a RGBW strip
|
||||||
```
|
```
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
|
buffer = ws2812.newBuffer(32, 3)
|
||||||
buffer:set(1, string.char(255, 0, 0)) -- set the first led green for a RGB strip
|
buffer:set(1, string.char(255, 0, 0)) -- set the first led green for a RGB strip
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -160,7 +171,7 @@ The number of given bytes must match the number of bytesPerLed of the buffer
|
||||||
`buffer:fill(color)`
|
`buffer:fill(color)`
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
- `color` bytes of the color
|
- `color` bytes of the color, you should pass as many arguments as `bytesPerLed`
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
`nil`
|
`nil`
|
||||||
|
@ -169,6 +180,7 @@ The number of given bytes must match the number of bytesPerLed of the buffer
|
||||||
```lua
|
```lua
|
||||||
buffer:fill(0, 0, 0) -- fill the buffer with black for a RGB strip
|
buffer:fill(0, 0, 0) -- fill the buffer with black for a RGB strip
|
||||||
```
|
```
|
||||||
|
|
||||||
## ws2812.buffer:fade()
|
## ws2812.buffer:fade()
|
||||||
Fade in or out. Defaults to out. Multiply or divide each byte of each led with/by the given value. Useful for a fading effect.
|
Fade in or out. Defaults to out. Multiply or divide each byte of each led with/by the given value. Useful for a fading effect.
|
||||||
|
|
||||||
|
@ -204,15 +216,3 @@ Shift the content of the buffer in positive or negative direction. This allows s
|
||||||
```lua
|
```lua
|
||||||
buffer:shift(3)
|
buffer:shift(3)
|
||||||
```
|
```
|
||||||
|
|
||||||
## ws2812.buffer:write()
|
|
||||||
Output the buffer to the led strip
|
|
||||||
|
|
||||||
#### Syntax
|
|
||||||
`buffer:write()`
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
none
|
|
||||||
|
|
||||||
#### Returns
|
|
||||||
`nil`
|
|
||||||
|
|
Loading…
Reference in New Issue