viri-leds-dmx-sacn/lights/cameo_pixbar_600pro.py

61 lines
1.5 KiB
Python

from colorsys import hsv_to_rgb
from .common import BaseDMXLight
class CameoPixbar600Pro(BaseDMXLight):
name = "Cameo Pixbar 600 Pro (78-Channel Mode)"
def _dump(self):
return self.address, [
self.intensity,
0, # strobe
*[
self.red,
self.green,
self.blue,
self.white,
0, # amber
0, # uv
]
* 12,
0, # macro
0, # colour correction
0, # auto mode
0, # auto mode speed
]
def rainbow(self, idx, angle, number_of_lights, intensity, brightness):
degrees_per_light = 360 / number_of_lights
my_degrees_dec = (angle + (idx * degrees_per_light)) % 360
degrees_per_pixel = degrees_per_light / 12
dmx_values = [
brightness,
0, # strobe
]
for pixel in range(12):
r, g, b = hsv_to_rgb(
(my_degrees_dec + (pixel * degrees_per_pixel)) / 360,
1,
intensity / 100,
)
dmx_values += [
int(r * 255),
int(g * 255),
int(b * 255),
0,
0,
0,
]
dmx_values += [
0, # macro
0, # colour correction
0, # auto mode
0, # auto mode speed
]
return self.address, dmx_values