Added static standby mode for performance.
This commit is contained in:
parent
0a06e733d2
commit
ec1a62e52d
@ -178,7 +178,7 @@ class Firmware:
|
|||||||
import microcontroller
|
import microcontroller
|
||||||
microcontroller.reset()
|
microcontroller.reset()
|
||||||
|
|
||||||
while self.uart.in_waiting >=3:
|
while self.uart.in_waiting >= 3:
|
||||||
self.uart_buffer.append(self.uart.read(3))
|
self.uart_buffer.append(self.uart.read(3))
|
||||||
if self.uart_buffer:
|
if self.uart_buffer:
|
||||||
update = bytearray(self.uart_buffer.pop(0))
|
update = bytearray(self.uart_buffer.pop(0))
|
||||||
@ -216,7 +216,7 @@ class Firmware:
|
|||||||
|
|
||||||
def init_uart(self, pin, timeout=20):
|
def init_uart(self, pin, timeout=20):
|
||||||
if self._master_half():
|
if self._master_half():
|
||||||
return busio.UART(tx=None, rx=pin, timeout=timeout,)
|
return busio.UART(tx=None, rx=pin, timeout=timeout)
|
||||||
else:
|
else:
|
||||||
return busio.UART(tx=pin, rx=None, timeout=timeout)
|
return busio.UART(tx=pin, rx=None, timeout=timeout)
|
||||||
|
|
||||||
@ -316,7 +316,7 @@ class Firmware:
|
|||||||
if self.pixels:
|
if self.pixels:
|
||||||
# Only check animations if pixels is initialized
|
# Only check animations if pixels is initialized
|
||||||
if self.pixels.animation_mode:
|
if self.pixels.animation_mode:
|
||||||
if self.pixels.animation_mode is not 'static_standby':
|
if self.pixels.animation_mode:
|
||||||
self.pixels = self.pixels.animate()
|
self.pixels = self.pixels.animate()
|
||||||
|
|
||||||
if self.led:
|
if self.led:
|
||||||
|
66
kmk/rgb.py
66
kmk/rgb.py
@ -153,6 +153,8 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.set_rgb(self.hsv_to_rgb(hue, sat, val), index)
|
self.set_rgb(self.hsv_to_rgb(hue, sat, val), index)
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def set_hsv_fill(self, hue, sat, val):
|
def set_hsv_fill(self, hue, sat, val):
|
||||||
"""
|
"""
|
||||||
Takes HSV values and displays it on all LEDs/Neopixels
|
Takes HSV values and displays it on all LEDs/Neopixels
|
||||||
@ -165,6 +167,7 @@ class RGB:
|
|||||||
self.set_rgb_fill(self.hsv_to_rgbw(hue, sat, val))
|
self.set_rgb_fill(self.hsv_to_rgbw(hue, sat, val))
|
||||||
else:
|
else:
|
||||||
self.set_rgb_fill(self.hsv_to_rgb(hue, sat, val))
|
self.set_rgb_fill(self.hsv_to_rgb(hue, sat, val))
|
||||||
|
return self
|
||||||
|
|
||||||
def set_rgb(self, rgb, index):
|
def set_rgb(self, rgb, index):
|
||||||
"""
|
"""
|
||||||
@ -177,6 +180,8 @@ class RGB:
|
|||||||
if not self.disable_auto_write:
|
if not self.disable_auto_write:
|
||||||
self.neopixel.show()
|
self.neopixel.show()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def set_rgb_fill(self, rgb):
|
def set_rgb_fill(self, rgb):
|
||||||
"""
|
"""
|
||||||
Takes an RGB or RGBW and displays it on all LEDs/Neopixels
|
Takes an RGB or RGBW and displays it on all LEDs/Neopixels
|
||||||
@ -187,6 +192,8 @@ class RGB:
|
|||||||
if not self.disable_auto_write:
|
if not self.disable_auto_write:
|
||||||
self.neopixel.show()
|
self.neopixel.show()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def increase_hue(self, step=None):
|
def increase_hue(self, step=None):
|
||||||
"""
|
"""
|
||||||
Increases hue by step amount rolling at 360 and returning to 0
|
Increases hue by step amount rolling at 360 and returning to 0
|
||||||
@ -197,6 +204,11 @@ class RGB:
|
|||||||
|
|
||||||
self.hue = (self.hue + step) % 360
|
self.hue = (self.hue + step) % 360
|
||||||
|
|
||||||
|
if self._check_update():
|
||||||
|
self._do_update()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def decrease_hue(self, step=None):
|
def decrease_hue(self, step=None):
|
||||||
"""
|
"""
|
||||||
Decreases hue by step amount rolling at 0 and returning to 360
|
Decreases hue by step amount rolling at 0 and returning to 360
|
||||||
@ -210,6 +222,11 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.hue = (self.hue - step) % 360
|
self.hue = (self.hue - step) % 360
|
||||||
|
|
||||||
|
if self._check_update():
|
||||||
|
self._do_update()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def increase_sat(self, step=None):
|
def increase_sat(self, step=None):
|
||||||
"""
|
"""
|
||||||
Increases saturation by step amount stopping at 100
|
Increases saturation by step amount stopping at 100
|
||||||
@ -223,6 +240,11 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.sat += step
|
self.sat += step
|
||||||
|
|
||||||
|
if self._check_update():
|
||||||
|
self._do_update()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def decrease_sat(self, step=None):
|
def decrease_sat(self, step=None):
|
||||||
"""
|
"""
|
||||||
Decreases saturation by step amount stopping at 0
|
Decreases saturation by step amount stopping at 0
|
||||||
@ -236,6 +258,11 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.sat -= step
|
self.sat -= step
|
||||||
|
|
||||||
|
if self._check_update():
|
||||||
|
self._do_update()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def increase_val(self, step=None):
|
def increase_val(self, step=None):
|
||||||
"""
|
"""
|
||||||
Increases value by step amount stopping at 100
|
Increases value by step amount stopping at 100
|
||||||
@ -249,6 +276,11 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.val += step
|
self.val += step
|
||||||
|
|
||||||
|
if self._check_update():
|
||||||
|
self._do_update()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def decrease_val(self, step=None):
|
def decrease_val(self, step=None):
|
||||||
"""
|
"""
|
||||||
Decreases value by step amount stopping at 0
|
Decreases value by step amount stopping at 0
|
||||||
@ -262,6 +294,11 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.val -= step
|
self.val -= step
|
||||||
|
|
||||||
|
if self._check_update():
|
||||||
|
self._do_update()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def increase_ani(self):
|
def increase_ani(self):
|
||||||
"""
|
"""
|
||||||
Increases animation speed by 1 amount stopping at 10
|
Increases animation speed by 1 amount stopping at 10
|
||||||
@ -282,6 +319,8 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
self.val -= 1
|
self.val -= 1
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def off(self):
|
def off(self):
|
||||||
"""
|
"""
|
||||||
Turns off all LEDs/Neopixels without changing stored values
|
Turns off all LEDs/Neopixels without changing stored values
|
||||||
@ -289,6 +328,8 @@ class RGB:
|
|||||||
if self.neopixel:
|
if self.neopixel:
|
||||||
self.set_hsv_fill(0, 0, 0)
|
self.set_hsv_fill(0, 0, 0)
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def show(self):
|
def show(self):
|
||||||
"""
|
"""
|
||||||
Turns on all LEDs/Neopixels without changing stored values
|
Turns on all LEDs/Neopixels without changing stored values
|
||||||
@ -296,13 +337,16 @@ class RGB:
|
|||||||
if self.neopixel:
|
if self.neopixel:
|
||||||
self.neopixel.show()
|
self.neopixel.show()
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def animate(self):
|
def animate(self):
|
||||||
"""
|
"""
|
||||||
Activates a "step" in the animation based on the active mode
|
Activates a "step" in the animation based on the active mode
|
||||||
:return: Returns the new state in animation
|
:return: Returns the new state in animation
|
||||||
"""
|
"""
|
||||||
if self.effect_init:
|
if self.effect_init:
|
||||||
self.init_effect()
|
self._init_effect()
|
||||||
|
|
||||||
if self.enabled:
|
if self.enabled:
|
||||||
if self.animation_mode == 'breathing':
|
if self.animation_mode == 'breathing':
|
||||||
return self.effect_breathing()
|
return self.effect_breathing()
|
||||||
@ -314,12 +358,14 @@ class RGB:
|
|||||||
return self.effect_static()
|
return self.effect_static()
|
||||||
elif self.animation_mode == 'knight':
|
elif self.animation_mode == 'knight':
|
||||||
return self.effect_knight()
|
return self.effect_knight()
|
||||||
|
elif self.animation_mode == 'static_standby':
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
self.off()
|
self.off()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def animation_step(self):
|
def _animation_step(self):
|
||||||
interval = self.time_ms() - self.time
|
interval = self.time_ms() - self.time
|
||||||
if interval >= max(self.intervals):
|
if interval >= max(self.intervals):
|
||||||
self.time = self.time_ms()
|
self.time = self.time_ms()
|
||||||
@ -329,13 +375,23 @@ class RGB:
|
|||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def init_effect(self):
|
def _init_effect(self):
|
||||||
self.pos = 0
|
self.pos = 0
|
||||||
self.reverse_animation = False
|
self.reverse_animation = False
|
||||||
self.effect_init = False
|
self.effect_init = False
|
||||||
|
return self
|
||||||
|
|
||||||
|
def _check_update(self):
|
||||||
|
if self.animation_mode == 'static_standby':
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _do_update(self):
|
||||||
|
if self.animation_mode == 'static_standby':
|
||||||
|
self.animation_mode = 'static'
|
||||||
|
|
||||||
def effect_static(self):
|
def effect_static(self):
|
||||||
self.set_hsv_fill(self.hue, self.sat, self.val)
|
self.set_hsv_fill(self.hue, self.sat, self.val)
|
||||||
|
self.animation_mode = 'static_standby'
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def effect_breathing(self):
|
def effect_breathing(self):
|
||||||
@ -349,14 +405,14 @@ class RGB:
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
def effect_breathing_rainbow(self):
|
def effect_breathing_rainbow(self):
|
||||||
if self.animation_step():
|
if self._animation_step():
|
||||||
self.increase_hue(self.animation_speed)
|
self.increase_hue(self.animation_speed)
|
||||||
self.effect_breathing()
|
self.effect_breathing()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def effect_rainbow(self):
|
def effect_rainbow(self):
|
||||||
if self.animation_step():
|
if self._animation_step():
|
||||||
self.increase_hue(self.animation_speed)
|
self.increase_hue(self.animation_speed)
|
||||||
self.set_hsv_fill(self.hue, self.sat, self.val)
|
self.set_hsv_fill(self.hue, self.sat, self.val)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user