Wire the Pico to UART-driven preset selection, add pattern modules and presets data, remove old p2p/settings code, and update tests and LED driver. Made-with: Cursor
84 lines
1.6 KiB
Python
84 lines
1.6 KiB
Python
class Preset:
|
|
def __init__(self, data):
|
|
# Set default values for all preset attributes
|
|
self.p = "off"
|
|
self.d = 100
|
|
self.b = 127
|
|
self.c = [(255, 255, 255)]
|
|
self.a = True
|
|
self.n1 = 0
|
|
self.n2 = 0
|
|
self.n3 = 0
|
|
self.n4 = 0
|
|
self.n5 = 0
|
|
self.n6 = 0
|
|
self.n7 = 0
|
|
self.n8 = 0
|
|
|
|
# Override defaults with provided data
|
|
self.edit(data)
|
|
|
|
def edit(self, data=None):
|
|
if not data:
|
|
return False
|
|
for key, value in data.items():
|
|
setattr(self, key, value)
|
|
return True
|
|
|
|
@property
|
|
def pattern(self):
|
|
return self.p
|
|
|
|
@pattern.setter
|
|
def pattern(self, value):
|
|
self.p = value
|
|
|
|
@property
|
|
def delay(self):
|
|
return self.d
|
|
|
|
@delay.setter
|
|
def delay(self, value):
|
|
self.d = value
|
|
|
|
@property
|
|
def brightness(self):
|
|
return self.b
|
|
|
|
@brightness.setter
|
|
def brightness(self, value):
|
|
self.b = value
|
|
|
|
@property
|
|
def colors(self):
|
|
return self.c
|
|
|
|
@colors.setter
|
|
def colors(self, value):
|
|
self.c = value
|
|
|
|
@property
|
|
def auto(self):
|
|
return self.a
|
|
|
|
@auto.setter
|
|
def auto(self, value):
|
|
self.a = value
|
|
|
|
def to_dict(self):
|
|
return {
|
|
"p": self.p,
|
|
"d": self.d,
|
|
"b": self.b,
|
|
"c": self.c,
|
|
"a": self.a,
|
|
"n1": self.n1,
|
|
"n2": self.n2,
|
|
"n3": self.n3,
|
|
"n4": self.n4,
|
|
"n5": self.n5,
|
|
"n6": self.n6,
|
|
"n7": self.n7,
|
|
"n8": self.n8,
|
|
}
|