From 818ca9e8e4759faef984358497aae6bf6e4a4e3c Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Fri, 4 Jul 2014 17:27:38 +0300 Subject: [PATCH] fix to_bytes() --- common.py | 6 +++--- recv.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/common.py b/common.py index 61ac239..6b27148 100644 --- a/common.py +++ b/common.py @@ -27,10 +27,10 @@ def to_bits(bytes_list): mask = 1 << i yield (1 if (val & mask) else 0) - -def to_bytes(bits): +bit_weights = [1 << i for i in range(8)] +def to_byte(bits): assert len(bits) == 8 - byte = sum(b << i for i, b in enumerate(bits)) + byte = int(np.dot(bits, bit_weights)) return chr(byte) def load(fname): diff --git a/recv.py b/recv.py index 113c935..b6e2279 100644 --- a/recv.py +++ b/recv.py @@ -154,7 +154,7 @@ def main(t, x): log.info('Cannot demodulate symbols!') else: import ecc - data = iterate(data_bits, bufsize=8, advance=8, func=to_bytes) + data = iterate(data_bits, bufsize=8, advance=8, func=to_byte) data = ''.join(c for _, c in data) data = ecc.decode(data) with file('data.recv', 'wb') as f: