uwwvb: Improve checking of marks & zeros.

Signed-off-by: Jeff Epler <jepler@gmail.com>
This commit is contained in:
Jeff Epler 2025-08-27 11:45:11 -05:00
parent 54d0b4f0f2
commit 9f26e319da

View file

@ -99,10 +99,17 @@ def decode_wwvb(
"""Convert a received minute of wwvb symbols to a WWVBMinute. Returns None if any error is detected.""" """Convert a received minute of wwvb symbols to a WWVBMinute. Returns None if any error is detected."""
if not t: if not t:
return None return None
if not all(t[i] == MARK for i in always_mark): for i in range(len(t)):
is_mark: bool = t[i] == MARK
is_zero: bool = t[i] == ZERO
expect_mark = i in always_mark or i == 60
expect_zero = i in always_zero
if expect_mark != is_mark:
return None return None
if not all(t[i] == ZERO for i in always_zero): if expect_zero and not is_zero:
return None return None
# Checking redundant DUT1 sign bits # Checking redundant DUT1 sign bits
if t[36] == t[37]: if t[36] == t[37]:
return None return None