From 4189c0c988daa939be0e8ec979ce0ae0563c4b7d Mon Sep 17 00:00:00 2001 From: "jakob.stendahl" Date: Mon, 12 Dec 2022 14:13:40 +0100 Subject: Create docs from python code --- .../docs/Scripting/Examples/strandtest/index.html | 737 -------- public/docs/Scripting/NeoBehaviour/index.html | 1851 ++++++++++++++++++++ public/docs/Scripting/Strip/index.html | 1207 +++++++++++++ public/docs/Scripting/SupportLib/index.html | 1067 +++++------ 4 files changed, 3543 insertions(+), 1319 deletions(-) delete mode 100644 public/docs/Scripting/Examples/strandtest/index.html create mode 100644 public/docs/Scripting/NeoBehaviour/index.html create mode 100644 public/docs/Scripting/Strip/index.html (limited to 'public/docs/Scripting') diff --git a/public/docs/Scripting/Examples/strandtest/index.html b/public/docs/Scripting/Examples/strandtest/index.html deleted file mode 100644 index 5a3a0a3..0000000 --- a/public/docs/Scripting/Examples/strandtest/index.html +++ /dev/null @@ -1,737 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Strandtest - Luxcena Neo Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content - - - -
- -
- -
- - - - -
-
- - -
-
-
- -
-
-
- - -
-
-
- - -
-
-
- - -
-
- - - -

Strandtest

-
-

This script just does some fancy patterns to show of the neopixels' capabilities. -Runs in an endless loop, take a look at the code to see what it does more -precisely.

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
import LuxcenaNeo as neo  # Can be imported as LuxcenaNeo as well. but anything else and it will fail...
-import time
-
-def colorWipe(color, wait_ms=50):
-    """Wipe color across display a pixel at a time."""
-    for i in range(neo.strip.numPixels()):
-        neo.strip.setPixelColor(i, color)
-        neo.strip.show()
-        time.sleep(wait_ms/1000.0)
-
-def theaterChase(color, wait_ms=50, iterations=10):
-    """Movie theater light style chaser animation."""
-    for j in range(iterations):
-        for q in range(3):
-            for i in range(0, neo.strip.numPixels(), 3):
-                neo.strip.setPixelColor(i+q, color)
-            neo.strip.show()
-            time.sleep(wait_ms/1000.0)
-            for i in range(0, neo.strip.numPixels(), 3):
-                neo.strip.setPixelColor(i+q, 0)
-
-def wheel(pos):
-    """Generate rainbow colors across 0-255 positions."""
-    if pos < 85:
-        return neo.Color(pos * 3, 255 - pos * 3, 0)
-    elif pos < 170:
-        pos -= 85
-        return neo.Color(255 - pos * 3, 0, pos * 3)
-    else:
-        pos -= 170
-        return neo.Color(0, pos * 3, 255 - pos * 3)
-
-def rainbow(wait_ms=20, iterations=1):
-    """Draw rainbow that fades across all pixels at once."""
-    for j in range(256*iterations):
-        for i in range(neo.strip.numPixels()):
-            neo.strip.setPixelColor(i, wheel((i+j) & 255))
-        neo.strip.show()
-        time.sleep(wait_ms/1000.0)
-
-def rainbowCycle(wait_ms=20, iterations=5):
-    """Draw rainbow that uniformly distributes itself across all pixels."""
-    for j in range(256*iterations):
-        for i in range(strip.numPixels()):
-            neo,strip.setPixelColor(i, wheel(((i * 256 / neo.strip.numPixels()) + j) & 255))
-        neo.strip.show()
-        time.sleep(wait_ms/1000.0)
-
-def theaterChaseRainbow(wait_ms=50):
-    """Rainbow movie theater light style chaser animation."""
-    for j in range(256):
-        for q in range(3):
-            for i in range(0, neo.strip.numPixels(), 3):
-                neo.strip.setPixelColor(i+q, wheel((i+j) % 255))
-            neo.strip.show()
-            time.sleep(wait_ms/1000.0)
-            for i in range(0, neo.strip.numPixels(), 3):
-                neo.strip.setPixelColor(i+q, 0)
-
-
-class Main(neo.NeoBehaviour):
-
-    def onStart(self):
-        # Change the brightness of the strip
-        neo.strip.setBrightness(100)
-
-        # Do an endless loop with some default neopixel test patterns
-        while True:
-            colorWipe(neo.Color(255, 0, 0))  # Red wipe
-            colorWipe(neo.Color(0, 255, 0))  # Blue wipe
-            colorWipe(neo.Color(0, 0, 255))  # Green wipe
-
-            theaterChase(neo.Color(127, 127, 127))  # White theater chase
-            theaterChase(neo.Color(127,   0,   0))  # Red theater chase
-            theaterChase(neo.Color(  0,   0, 127))  # Blue theater chase
-
-            rainbow()
-            rainbowCycle()
-            theaterChaseRainbow()
-
-
- - - - - - - - - -
-
-
-
- - - - -
- - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/docs/Scripting/NeoBehaviour/index.html b/public/docs/Scripting/NeoBehaviour/index.html new file mode 100644 index 0000000..7d049d8 --- /dev/null +++ b/public/docs/Scripting/NeoBehaviour/index.html @@ -0,0 +1,1851 @@ + + + + + + + + + + + + + + + + Main interface - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Documentation for NeoBehaviour

+ + +
+ + + +

+ luxcena_neo.neo_behaviour.NeoBehaviour + + +

+ + +
+ + +

This is the base-class "main" should inherit from!

+ +
+ All methods are blocking +

This means that you could potentially loose a "tick"

+

For example, if "eachSecond" is taking up the thread, and the clock goes from 11:58 to 12:02, "eachHour", will not be called.

+
+
+ Do NOT override init in your implementation, this will break some features. +

For this purpose you should instead use the on_start method!

+

Important: An instance of the Strip class will be available in your module as strip without any setup on your part.

+ + + + + +
+ + + + + + + + + +
+ + + +

+declare_variables() + +

+ + +
+ +

This should be overridden, and ALL variables should be declared here. +When this method is called, variables can be declared using self.declare().

+ +
+ +
+ +
+ + + +

+each_day() + +

+ + +
+ +

This method is called every day at noon, given that the thread is open

+ +
+ +
+ +
+ + + +

+each_hour() + +

+ + +
+ +

This method is called every whole hour (on the clock), given that the thread is open

+ +
+ +
+ +
+ + + +

+each_minute() + +

+ + +
+ +

This method is called every mintue (on the clock), given that the thread is open

+ +
+ +
+ +
+ + + +

+each_second() + +

+ + +
+ +

This method is called every second (on the clock), given that the thread is open

+ +
+ +
+ +
+ + + +

+each_tick() + +

+ + +
+ +

This method will be run every tick, that means every time the program has time

+ +
+ +
+ +
+ + + +

+on_start() + +

+ + +
+ +

This method will be run right after init

+ +
+ +
+ + + +
+ +
+ +

An example of the usage of the class

+
from luxcena_neo import NeoBehaviour
+
+class Main(NeoBehaviour):
+    def on_start(self):
+        strip.setPixelColor(0, "#fafafa")
+
+
+ + +
+ + + +

+ luxcena_neo.neo_behaviour.Variable + + +

+ + +
+ + +

The base class for any variable, this should probably not be used directly.

+ + + + + +
+ + + + + + + +
+ + + +

+value + + + property + writable + + +

+ + +
+ +

This is likely the property you should use to get the current value of the variable.

+
+ +
+ + + +
+ + + +

+__init__(name, default, var_type, on_change=None) + +

+ + +
+ +

The base constructor for any variable. All these parameters should likely be passed on by + the subclass inheriting this one.

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
name +

A string which is the name of the variable, keep in mind that this is case sensitive.

+ required +
default +

This will be set as the default value of the variable the first time the script is started.

+ required +
var_type + VariableType +

This is the enum number of the variable type, this is just a number which is used to + communicate with the frontend which value picker to show.

+ required +
on_change +

Optional callable, which will be called with the new value every time the variable is + updated (both programatically and via user input).

+ None +
+ +
+ +
+ + + +
+ +
+ +

+ + +
+ + + +

+ luxcena_neo.neo_behaviour.ColorVariable + + +

+ + +
+

+ Bases: Variable

+ + +

This is a variable storing a color value.

+ +
+ Right now, this only properly supports setting the value as a hex string. +

This will hopefully change in the future, but it is likely that the main +operation will remain as hex strings.

+
+ + + + +
+ + + + + + + + + +
+ + + +

+__init__(name, *color, **kwargs) + +

+ + +
+ +

Constructor for a color variable

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
name + str +

Will be passed on to the parent class (Variable).

+ required +
*color +

The next positional parameters will be used as the default color. + Right now, it will just pick the first one, and interpret it as a hex color.

+ () +
**kwargs +

Keyword arguments will be passed to the parent class (Variable).

+ {} +
+ +
+ +
+ + + +
+ +
+ +

+ + +
+ + + +

+ luxcena_neo.neo_behaviour.IntegerVariable + + +

+ + +
+

+ Bases: Variable

+ + +

A variable for storing a integer value (whole number).

+ + + + + +
+ + + + + + + + + +
+ + + +

+__init__(name, default=0, min_val=0, max_val=255, **kwargs) + +

+ + +
+ +

Constructor for a integer variable

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
name + str +

Will be passed on to the parent class (Variable).

+ required +
default + int +

A number which will be set as the default if the mode has never been run before.

+ 0 +
min_val + int +

The lowest value this variable can have (inclusive).

+ 0 +
max_val + int +

The highest value this variable can have (inclusive).

+ 255 +
**kwargs +

Keyword arguments will be passed to the parent class (Variable).

+ {} +
+ +
+ +
+ + + +
+ +
+ +

+ + +
+ + + +

+ luxcena_neo.neo_behaviour.FloatVariable + + +

+ + +
+

+ Bases: Variable

+ + +

A variable for storing a float value (decimal number).

+ + + + + +
+ + + + + + + + + +
+ + + +

+__init__(name, default=0.0, min_val=0.0, max_val=255.0, step=0.5, **kwargs) + +

+ + +
+ +

Constructor for a float variable

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
name + str +

Will be passed on to the parent class (Variable).

+ required +
default + float +

A number which will be set as the default if the mode has never been run before.

+ 0.0 +
min_val + float +

The lowest value this variable can have (inclusive).

+ 0.0 +
max_val + float +

The highest value this variable can have (inclusive).

+ 255.0 +
step + float +

This does not affect the python code, it only affects the value picker which will be shown in the frontend.

+ 0.5 +
**kwargs +

Keyword arguments will be passed to the parent class (Variable).

+ {} +
+ +
+ +
+ + + +
+ +
+ +

+ + +
+ + + +

+ luxcena_neo.neo_behaviour.BooleanVariable + + +

+ + +
+

+ Bases: Variable

+ + +

A variable for storing a boolean value (on/off).

+ + + + + +
+ + + + + + + + + +
+ + + +

+__init__(name, default, **kwargs) + +

+ + +
+ +

Constructor for a boolean variable

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
name + str +

Will be passed on to the parent class (Variable).

+ required +
default + bool +

A boolean which will be set as the default if the mode has never been run before.

+ required +
**kwargs +

Keyword arguments will be passed to the parent class (Variable).

+ {} +
+ +
+ +
+ + + +
+ +
+ +

+ + +
+ + + +

+ luxcena_neo.neo_behaviour.Trigger + + +

+ + +
+

+ Bases: Variable

+ + +

A trigger which can execute some function.

+

Although technically a variable, this is not intended as one. +It is intended to be used with a on_change function, such that +this action is performed when this trigger is activated.

+

It will show up as a button in the frontend, and can also be triggered by +setting the value (What you set it as will be ignored, so e.g. None.

+ + + + + +
+ + + + + + + + + +
+ + + +

+__init__(name, **kwargs) + +

+ + +
+ +

Constructor for the Trigger +It is important to set the on_change callable (see the Variable class). If you don't +this class is completely useless.

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
name + str +

The name of the trigger variable (mostly useful if you wanted to trigger it in the code).

+ required +
**kwargs +

Keyword arguments will be passed to the parent class (Variable).

+ {} +
+ +
+ +
+ + + +
+ +
+ +
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Scripting/Strip/index.html b/public/docs/Scripting/Strip/index.html new file mode 100644 index 0000000..d17627c --- /dev/null +++ b/public/docs/Scripting/Strip/index.html @@ -0,0 +1,1207 @@ + + + + + + + + + + + + + + + + Strip - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Documentation for strip

+ + +
+ + + +

+ luxcena_neo.strip.Strip + + +

+ + +
+ + +

Class representing a led-strip,

+

If you are using the NeoBehaviour runtime, an pre-configured instance of this will +be setup in your module with the name strip.

+ +

Attributes:

+ + + + + + + + + + + + + + + +
NameTypeDescription
SEGMENTS + list[int] +

A list of the configured segments.

+ + + + + +
+ + + + + + + +
+ + + +

+brightness + + + writable + property + + +

+ + +
+ +

The current brightness.

+
+ +
+ +
+ + + +

+power_on + + + writable + property + + +

+ + +
+ +

Wether the power action is on or not.

+
+ +
+ + + +
+ + + +

+blank(auto_show=True) + +

+ + +
+ +

Will turn off all pixels.

+ +

Parameters:

+ + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
auto_show + bool +

If set to true, strip.show() is called. Disable this if needed for some quicker animations.

+ True +
+ +
+ +
+ +
+ + + +

+get_pixel_color(n) + +

+ + +
+ +

Get the 24-bit RGB color value for the LED at position n.

+ +
+ +
+ +
+ + + +

+get_pixels() + +

+ + +
+ +

Return an object which allows access to the LED display data as if +it were a sequence of 24-bit RGB values.

+ +
+ +
+ +
+ + + +

+num_pixels() + +

+ + +
+ +

Return the number of pixels in the display.

+ +
+ +
+ +
+ + + +

+set_pixel_color(n, *color) + +

+ + +
+ +

Set the color of the LED at position N.

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
n + int +

The pixel to set.

+ required +
*color +

This will be interpreted as a color.

+ () +
+ +
+ +
+ +
+ + + +

+set_pixel_color_XY(x, y, *color) + +

+ + +
+ +

Set the color of a LED at position (x, y) in the matrix you have configured to a color.

+

Note: This will only print a warning message if you try to set pixels outside the matrix.

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
x + int +

The x position.

+ required +
y + int +

The y position.

+ required +
*color +

This will be interpreted as a color.

+ () +
+ +
+ +
+ +
+ + + +

+set_segment_color(segment, *color) + +

+ + +
+ +

Set a whole segment to the provided color.

+ +

Parameters:

+ + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
segment + int +

The segment to set.

+ required +
*color +

This will be interpreted as a color.

+ () +
+ +
+ +
+ +
+ + + +

+set_strip_color(*color) + +

+ + +
+ +

Set all pixels in the strip to a color

+ +

Parameters:

+ + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
*color +

This will be interpreted as a color.

+ () +
+ +
+ +
+ +
+ + + +

+show() + +

+ + +
+ +

Update the display with the data from the LED buffer, you can think of it as a flush method.

+ +
+ +
+ + + +
+ +
+ +

+

A note on colors

+

Most methods which need colors takes a *color parameter. This is because it interprets multiple types of colors. The example below illustrates this, each of the lines has the exact same effect on the led strip. +

set_pixel_color(0, "#fafafa")
+set_pixel_color(0, 16448250)
+set_pixel_color(0, 250, 250, 250)
+set_pixel_color(0, (250, 250, 250))
+

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Scripting/SupportLib/index.html b/public/docs/Scripting/SupportLib/index.html index 870452f..fc81557 100644 --- a/public/docs/Scripting/SupportLib/index.html +++ b/public/docs/Scripting/SupportLib/index.html @@ -1,38 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -40,126 +17,127 @@ - + + + + + + - - - - - + + + + + - + + + + - - - - - - - - - - - - Skip to content - -
- - - - - - -
-
- -
-
- - + +
+
-

Support Library

+ + + +

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")
+
+The 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)
+
+The name of the parameter doesn't matter. For the example above, +in an ideal world, this would print 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

+

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. -
1
-2
-3
LuxcenaNeo.strip
-or
-neo.strip
-
-

-

Strip.show()

+set up by the software itself.

+

strip.show()

Display all the changes made to the LEDs, on the actual LEDs.

-

Strip.setPixelColor(n, color)

+

strip.set_pixel_color(n, *color)

Set LED at position n to the provided 24-bit color value (in RGB order).

-

Strip.setPixelColorXY(x, y, color)

+

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.setPixelColorRGB(n, red, green, blue, white = 0)

-

Set LED at position n 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.setPixelColorXYRGB(x, y, red, green, blue, white = 0)

-

Set LED at position (x, y) in the defined matrix 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.setSegmentColorRGB(segment, red, green, blue, white = 0)

+

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.setBrightness(brightness)

-

Scale each LED in the buffer by the provided brightness. A brightness -of 0 is the darkest and 255 is the brightest.

-

Strip.getBrightness():

-

Get the brightness value for each LED in the buffer. A brightness -of 0 is the darkest and 255 is the brightest.

-

Strip.getPixels():

+

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.numPixels():

+

strip.num_pixels():

Return the number of pixels in the display.

-

Strip.getPixelColor(n)

+

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))
+


-

Color(red, green, blue, white = 0)

-

Convert the provided red, green, blue color to a 24-bit color value. -Each color component should be a value 0-255 where 0 is the lowest intensity -and 255 is the highest intensity.

-

hexColor(value)

-

Convert the provided hexadecimal color to a 24-bit color value.

- - - - - - +

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.

- -
-
+ + + + +
+
+ +
+ - -
+
+
+
- - - + + + + @@ -857,5 +759,6 @@ and 255 is the highest intensity.

+ \ No newline at end of file -- cgit v1.2.3