Support Library
The script/mode file has to contain a Main
class, which is inherited from NeoBehaviour
like this:
from luxcena_neo import NeoBehaviour
class Main(NeoBehaviour):
def on_start(self):
strip.setPixelColor(0, "#fafafa")
strip
will be available anywhere in your script whe it is started using neo_runtime
.
class
NeoBehaviour
This is the class your Main
should inherit from.
This has some special methods that you can override.
NOTE: Do not override __init__
unless you know
what you are doing! This contains code that
is crucial for neo_runtime
.
def declare_variables(self
)
When the runtime executes this, the method self.declare(Variable)
is available. This is where
you can add variables that show up in the UI.
Take a look at the Variable
class further down on this site.
def on_start(self
)
This is run once at the start of the program. This is a logical place to initialize variables where you need to remember state, but you don't want to put the variable in the UI.
def each_tick(self):
This will run as often as possible. If nothing else happens, it will run every one millisecond.
def each_second(self):
This will run at most once a second, it might be longer if some other function is doing some work that takes a long time (more that a second).
def each_minute(self):
This will run at most once a minute, it might be longer if some other function is doing some work that takes a long time (more that a minute).
def each_hour(self):
This will run at most once a hour, it might be longer if some other function is doing some work that takes a long time (more that a hour).
def each_day(self):
This will run at most once a day, it might be longer if some other function is doing some work that takes a long time (more that a day).
deltatime
For each of the each_
methods, you can add a second argument to the
definition. If you do, that will be the time in seconds since last time
the function ran.
def each_tick(self, dt):
print(dt)
def each_minute(self, deltatime):
print(dt)
0.1
every millisecond, and 60
every minute. Because the world isnt ideal, the deltatime is likely
going to be slightly longer than the ideal.
class
Strip
This is the object you are refeering to when you want to do things with LED's. You shouldn't have to do instantiate your own new strip-object as you can use the one set up by the software itself.
strip.show()
Display all the changes made to the LEDs, on the actual LEDs.
strip.set_pixel_color(n
, *color
)
Set LED at position n to the provided 24-bit color value (in RGB order).
strip.set_pixel_color_XY(x
, y
, *color
)
Set LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order).
strip.set_segment_color(segment
, *color
)
Set a whole segment to the provided red, green and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity).
strip.get_pixels():
Return an object which allows access to the LED display data as if it were a sequence of 24-bit RGB values.
strip.num_pixels():
Return the number of pixels in the display.
strip.get_pixel_color(n
)
Get the 24-bit RGB color value for the LED at position n.
`*color``
All functions that take in this, will automatically parse the value provided.
If parameter is only a str, it will be treated as a hex value. e.g. set_pixel_color(0, "#fafafa")
If parameter is a tuple, the first three items in that tuple will be treated as a rgb value. e.g. set_pixel_color(0, (255, 238, 10))
If parameter is a int, it will be treated as a 24-bit color value. e.g. set_pixel_color(0, 2812873)
If there are 3 parameters, these will be treated as a rgb value. e.g. set_pixel_color(0, 255, 238, 10)
This means that all of these have the same effect:
set_pixel_color(0, "#fafafa")
set_pixel_color(0, 16448250)
set_pixel_color(0, 250, 250, 250)
set_pixel_color(0, (250, 250, 250))
These are in utils
, can be imported with from luxcena_neo import utils
.
utils.hex_to_rgb(value
)
Convert provided hex color to a tuple with rgb colors. (r, g, b).
utils.rgb_to_hex(rgb
)
Converts rgb colors in tuple to hex string.
utils.rgb_from_twentyfour_bit(color
)
Takes a 24bit color value and returns a rgb tuple.
utils.rgb_from_twentyfour_bit(color
)
Takes a 24bit color value and returns a hex string.