diff options
Diffstat (limited to 'hex33board/i2c.py')
| -rw-r--r-- | hex33board/i2c.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/hex33board/i2c.py b/hex33board/i2c.py index 8370b41..955d86a 100644 --- a/hex33board/i2c.py +++ b/hex33board/i2c.py @@ -19,10 +19,11 @@ def i2c_decode(msg): def u16tob(v): - return bytes([ v >> 8, v & 0xff ]) + return bytes([v >> 8, v & 0xFF]) + def btou16(b): - return b[0] << 8 | b[1] + return b[0] << 8 | b[1] class I2CModule: @@ -51,7 +52,7 @@ class I2CModule: elif msg[0] == ord(b"C") or msg[0] == ord(b"S"): total_len = btou16(msg[1:]) assert not self.chunked - self.chunked = (total_len, bytes()) # TODO: preallocate full buffer + self.chunked = (total_len, bytes()) # TODO: preallocate full buffer elif msg[0] == ord(b"c") or msg[0] == ord(b"s"): assert self.chunked @@ -61,7 +62,9 @@ class I2CModule: if total_len == len(data): self.chunked = None - self.keyboard.settings.loadstring(data.decode(), restore=False) # msg[0] == ord(b"c") + self.keyboard.settings.loadstring( + data.decode(), restore=False + ) # msg[0] == ord(b"c") elif total_len < len(data): raise ValueError("chunked message longer than size in header") else: @@ -84,7 +87,9 @@ class I2CLeader(I2CModule): self.i2c.try_lock() self.devices = self.i2c.scan() - config = self.keyboard.settings.storestring(only=['rgb', 'layout', 'scale']).encode() + config = self.keyboard.settings.storestring( + only=["rgb", "layout", "scale"] + ).encode() self.broadcast_chunked("C", config) def broadcast(self, prefix: buffer, data: buffer, except_addr=None): @@ -110,7 +115,7 @@ class I2CLeader(I2CModule): # lower case: data buffers prefix = prefix.lower().encode() for i in range(0, total_len, CHUNK_SIZE): - self.broadcast(prefix, data[i:i+CHUNK_SIZE]) + self.broadcast(prefix, data[i : i + CHUNK_SIZE]) def tick(self): msg = bytearray(2) |
