xref: /libbtbb/python/utils/gen_barker_correct.py (revision e25b118a40ed6b5c2ea76bae29e388cfbc2f6e92)
1*e25b118aSDominic Spill#!/usr/bin/env python
2*e25b118aSDominic Spill
3*e25b118aSDominic Spill# Reverse the binary of thesebarker codes for the host code
4*e25b118aSDominic Spillbarkers = (0x0d, 0x72)
5*e25b118aSDominic Spilldistances = []
6*e25b118aSDominic Spillcorrections = []
7*e25b118aSDominic Spill
8*e25b118aSDominic Spilldef count_bits(x):
9*e25b118aSDominic Spill    i = 0
10*e25b118aSDominic Spill    while x:
11*e25b118aSDominic Spill        i += 1
12*e25b118aSDominic Spill        x &= x - 1
13*e25b118aSDominic Spill    return i
14*e25b118aSDominic Spill
15*e25b118aSDominic Spillfor i in range(128):
16*e25b118aSDominic Spill    diffs = [(count_bits(barkers[0] ^ i), barkers[0]),
17*e25b118aSDominic Spill             (count_bits(barkers[1] ^ i), barkers[1])]
18*e25b118aSDominic Spill    diffs.sort()
19*e25b118aSDominic Spill    distances.append(diffs[0][0])
20*e25b118aSDominic Spill    corrections.append(diffs[0][1])
21*e25b118aSDominic Spill
22*e25b118aSDominic Spillprint "Barker distance:", distances
23*e25b118aSDominic Spillprint "Barker correct:", ["0x%x" % c for c in corrections]
24