Porównaj commity

...

16 Commity

Autor SHA1 Wiadomość Data
Tom Mount f72f1d2616
Merge 1f1f51d57c into 45ead11f96 2024-04-08 17:47:51 +02:00
Damien George 45ead11f96 ssl: Use "from tls import *" to be compatible with axtls.
axtls doesn't define all the CERT_xxx constants, nor the MBEDTLS_VERSION
constant.

This change means that `tls.SSLContext` is imported into the module, but
that's subsequently overridden by the class definition in this module.

Signed-off-by: Damien George <damien@micropython.org>
2024-03-28 17:44:37 +11:00
Tom Mount 1f1f51d57c drivers/led/neopixel: Fix test formatting.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-06 12:32:54 -04:00
Tom Mount 6ca933b9f2 drivers/led/neopixel: Fix formatting.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-06 12:27:28 -04:00
Tom Mount 9b5be62585 drivers/led/neopixel: Add tests for new features.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-06 11:52:27 -04:00
Tom Mount 9e80530a74 drivers/led/neopixel: Refactor brightness() for speed.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-06 11:26:39 -04:00
Tom Mount 866fd2f74a drivers/led/neopixel: code size tweaks
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-06 10:14:27 -04:00
Tom Mount 0014eac906 drivers/led/neopixel: Continue lint fixes.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-04 10:40:43 -04:00
Tom Mount f683608542 drivers/led/neopixel: Fix lint issue.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-04 10:31:18 -04:00
Tom Mount 6f3ebea466 drivers/led/neopixel: Optimize for speed on non-FP builds.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-10-04 09:58:53 -04:00
Tom Mount 92967e0618 drivers/led/neopixel: Also clamp constructor brightness
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-09-29 09:43:58 -04:00
Tom Mount 47c5dbc4d5 drivers/led/neopixel: Clamp brightness between 0.0 and 1.0.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-09-29 09:41:22 -04:00
Tom Mount 69f6d61881 drivers/led/neopixel: Add set_brightness method
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-09-29 09:03:43 -04:00
Tom Mount 8105f2db3a drivers/led/neopixel: Increment version number
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-09-29 08:51:37 -04:00
Tom Mount 94e3dab79a drivers/led/neopixel: Calculate the new values once.
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-09-29 08:46:39 -04:00
Tom Mount 2d9486c95a drivers/led/neopixel: Add brightness to class init
Signed-off-by: Tom Mount <tmountjr@gmail.com>
2023-09-28 17:02:06 -04:00
5 zmienionych plików z 48 dodań i 11 usunięć

Wyświetl plik

@ -1,3 +1,3 @@
metadata(description="WS2812/NeoPixel driver.", version="0.1.0")
metadata(description="WS2812/NeoPixel driver.", version="0.2.0")
module("neopixel.py", opt=3)

Wyświetl plik

@ -8,10 +8,11 @@ class NeoPixel:
# G R B W
ORDER = (1, 0, 2, 3)
def __init__(self, pin, n, bpp=3, timing=1):
def __init__(self, pin, n, bpp=3, timing=1, brightness=None):
self.pin = pin
self.n = n
self.bpp = bpp
self.b = None if brightness is None else min(max(brightness, 0), 1)
self.buf = bytearray(n * bpp)
self.pin.init(pin.OUT)
# Timing arg can either be 1 for 800kHz or 0 for 400kHz,
@ -22,11 +23,17 @@ class NeoPixel:
else timing
)
def _b(self, v):
if self.b is not None:
return tuple(round(c * self.b) for c in v)
return v
def __len__(self):
return self.n
def __setitem__(self, i, v):
offset = i * self.bpp
v = self._b(v)
for i in range(self.bpp):
self.buf[offset + self.ORDER[i]] = v[i]
@ -35,6 +42,7 @@ class NeoPixel:
return tuple(self.buf[offset + self.ORDER[i]] for i in range(self.bpp))
def fill(self, v):
v = self._b(v)
b = self.buf
l = len(self.buf)
bpp = self.bpp
@ -45,6 +53,13 @@ class NeoPixel:
b[j] = c
j += bpp
def brightness(self, b=None):
if b is None:
return self.b
self.b = min(max(b, 0), 1)
for i in range(self.n * self.bpp):
self.buf[i] = round(self.buf[i] * self.b)
def write(self):
# BITSTREAM_TYPE_HIGH_LOW = 0
bitstream(self.pin, 0, self.timing, self.buf)

Wyświetl plik

@ -0,0 +1,29 @@
import machine
import neopixel
def neopixel_test():
np = neopixel.NeoPixel(machine.Pin(1), 3)
print("Fill with a color.")
np.fill((255, 128, 64))
print("Verify the bytes to be written")
expected = bytearray([255, 128, 64, 255, 128, 64, 255, 128, 64])
actual = np.buf
passed = "passed" if expected == actual else "failed"
print(f"Initial fill: {passed}.")
print()
print("Change brightness of all pixels.")
np.brightness(0.5)
expected = bytearray([127, 64, 32, 127, 64, 32, 127, 64, 32])
actual = np.buf
passed = "passed" if expected == actual else "failed"
print(f"Brightness change: {passed}.")
print()
print("Get current brightness.")
expected = 0.5
actual = np.brightness()
passed = "passed" if expected == actual else "failed"
print(f"Brightness get: {passed}.")
print()

Wyświetl plik

@ -1,3 +1,3 @@
metadata(version="0.2.0")
metadata(version="0.2.1")
module("ssl.py", opt=3)

Wyświetl plik

@ -1,12 +1,5 @@
import tls
from tls import (
CERT_NONE,
CERT_OPTIONAL,
CERT_REQUIRED,
MBEDTLS_VERSION,
PROTOCOL_TLS_CLIENT,
PROTOCOL_TLS_SERVER,
)
from tls import *
class SSLContext: