This commit is contained in:
Stefan Bethke 2022-07-22 17:51:29 +02:00
parent fa1dfe2354
commit 1f59d9cd9a
2 changed files with 9 additions and 11 deletions

12
dmx.py
View file

@ -1,7 +1,7 @@
import colorsys import colorsys
import socket import socket
import struct import struct
import threading import sys
from threading import Thread from threading import Thread
from time import sleep, time from time import sleep, time
@ -59,7 +59,7 @@ class Steady:
return (self.r, self.g, self.b) return (self.r, self.g, self.b)
def __str__(self): def __str__(self):
return f"steady({self.r}, {self.g}, {self.b})" return f"{type(self).__name__}({self.r}, {self.g}, {self.b})"
class FadeTo(Steady): class FadeTo(Steady):
@ -74,7 +74,7 @@ class FadeTo(Steady):
return (int(self.r * h), int(self.g * h), int(self.b * h)) return (int(self.r * h), int(self.g * h), int(self.b * h))
def __str__(self): def __str__(self):
return f"fadeTo({self.r}, {self.g}, {self.b})" return f"{type(self).__name__}({self.r}, {self.g}, {self.b}, {self.t:.2f})"
class RotatingRainbow: class RotatingRainbow:
@ -94,7 +94,7 @@ class RotatingRainbow:
return rgb return rgb
def __str__(self): def __str__(self):
return "RotatingRainbow" return "{type(self).__name__}"
class Chase(Steady): class Chase(Steady):
@ -109,7 +109,7 @@ class Chase(Steady):
return (int(self.r * l), int(self.g * l), int(self.b * l)) return (int(self.r * l), int(self.g * l), int(self.b * l))
def __str__(self): def __str__(self):
return f"fadeTo({self.r}, {self.g}, {self.b})" return f"{type(self).__name__}({self.r}, {self.g}, {self.b}, {self.looptime:.2f})"
class DMX: class DMX:
@ -169,4 +169,4 @@ class DMX:
def setAnimation(self, animation): def setAnimation(self, animation):
self.animation = animation self.animation = animation
print(f"Animation: {animation}") print(f"Animation: {animation}", file=sys.stderr)

View file

@ -2,11 +2,10 @@
import argparse import argparse
import sys import sys
from time import sleep
from bottle import route, run, static_file, template, view from bottle import route, run, static_file, view
from dmx import DMX, Bar252, StairvilleLedPar56, Steady, RotatingRainbow, REDSpot18RGB, Chase from dmx import DMX, Bar252, StairvilleLedPar56, Steady, RotatingRainbow, REDSpot18RGB, Chase, FadeTo
@route('/') @route('/')
@ -20,7 +19,6 @@ def static(path):
@route('/api/state/<state>') @route('/api/state/<state>')
def update(state): def update(state):
print(f"state -> {state}")
if state == "off": if state == "off":
dmx.setAnimation(Steady(0, 0, 0)) dmx.setAnimation(Steady(0, 0, 0))
elif state == "white": elif state == "white":
@ -71,7 +69,7 @@ def main(args):
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)
dmx.update() dmx.setAnimation(FadeTo(128, 128, 128))
dmx.start() dmx.start()
run(host='0.0.0.0', port=8080, reloader=False) run(host='0.0.0.0', port=8080, reloader=False)