From 2b473144dc7d8ac3e188deff23361a4d863f6869 Mon Sep 17 00:00:00 2001 From: Dmytro Pashchenko Date: Mon, 1 Jun 2026 15:44:03 +0200 Subject: [PATCH] Fix compress value --- server.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/server.py b/server.py index 4c84651..8a0f62f 100644 --- a/server.py +++ b/server.py @@ -157,14 +157,17 @@ def checksum62(buf): return mangle_byte((s & 0xF0) | ((s >> 8) & 0x0F)) def compress_value(v): - if v <= 1: return [v] - sv = int(v / 16.0 + 0.5); out = [] + if v <= 2032: + q = v if v in (0, 1) else int(v / 16.0 + 0.5) + return [q & 0xFF] + out = [] + x = v while True: - b = sv & 0x7F; sv >>= 7 - if sv: b |= 0x80 + b = x & 0x7F; x >>= 7 + if x: b |= 0x80 if (b & 0xFF) == 0xFF: b = 0xFE out.append(b & 0xFF) - if not sv: break + if not x: break return out def compress_pulses(pat):