Add Entec RGBW

This commit is contained in:
Stefan Bethke 2024-12-23 10:40:23 -05:00
parent 517c7df66a
commit ef3c8d9a2c
2 changed files with 16 additions and 5 deletions

15
dmx.py
View file

@ -21,9 +21,13 @@ class RGB:
def rgb(self, color): def rgb(self, color):
(r, g, b) = color (r, g, b) = color
self.dmx.set(self.slot + self.offset + 0, ledlog(r)) try:
self.dmx.set(self.slot + self.offset + 1, ledlog(g)) self.dmx.set(self.slot + self.offset + 0, ledlog(r))
self.dmx.set(self.slot + self.offset + 2, ledlog(b)) self.dmx.set(self.slot + self.offset + 1, ledlog(g))
self.dmx.set(self.slot + self.offset + 2, ledlog(b))
except Exception as e:
print(f'slot={self.slot}, offset={self.offset}')
raise(e)
class Bar252(RGB): class Bar252(RGB):
@ -57,6 +61,11 @@ class ZhennbyPar(RGB):
dmx.set(self.slot + 6, 0) dmx.set(self.slot + 6, 0)
class Entec6RGBW(RGB):
def __init__(self, dmx, slot=1):
super(Entec6RGBW, self).__init__(dmx, slot)
class DMX: class DMX:
def __init__(self, host, port=0x1936, universe=1, maxchan=512): def __init__(self, host, port=0x1936, universe=1, maxchan=512):
self._host = host self._host = host

View file

@ -7,7 +7,7 @@ from typing import Tuple
from bottle import post, request, route, run, static_file, view from bottle import post, request, route, run, static_file, view
from animation import Off from animation import Off
from dmx import DMX, Bar252, StairvilleLedPar56, REDSpot18RGB, ZhennbyPar from dmx import DMX, Bar252, StairvilleLedPar56, REDSpot18RGB, ZhennbyPar, Entec6RGBW
room = '' room = ''
@ -56,7 +56,7 @@ def main(args):
args = parser.parse_args(args) args = parser.parse_args(args)
print(f"Starting DMX via Art-Net to {args.artnet}", file=sys.stderr) print(f"Starting DMX via Art-Net to {args.artnet}", file=sys.stderr)
dmx = DMX(args.artnet, maxchan=128, universe=args.universe) dmx = DMX(args.artnet, maxchan=512, universe=args.universe)
if args.room == "shop": if args.room == "shop":
dmx._rgbs = [ dmx._rgbs = [
@ -83,6 +83,8 @@ def main(args):
ZhennbyPar(dmx, 15), ZhennbyPar(dmx, 15),
ZhennbyPar(dmx, 22), ZhennbyPar(dmx, 22),
] ]
elif args.room == "defrag":
dmx._rgbs = [Entec6RGBW(dmx, 300 + i*4) for i in range(19)]
else: else:
print(f"Unknown room {args.room}", file=sys.stderr) print(f"Unknown room {args.room}", file=sys.stderr)
sys.exit(64) sys.exit(64)