backing up partial progress
This commit is contained in:
parent
bcac6b570f
commit
2c7c604038
@ -8,6 +8,7 @@
|
||||
|
||||
from __future__ import print_function
|
||||
from bitarray import bitarray
|
||||
import hamming
|
||||
|
||||
# Does anybody read this stuff? There's a PEP somewhere that says I should do this.
|
||||
__author__ = 'Cortney T. Buffington, N0MJS'
|
||||
@ -49,7 +50,11 @@ def deinterleave_19696(_data):
|
||||
|
||||
# Applies BTPC error detection/correction routines (INCOMPLETE)
|
||||
def error_check_19696(_data):
|
||||
checked = bitarray(196)
|
||||
errors = False
|
||||
count = 0
|
||||
do:
|
||||
pass
|
||||
while errors && count < 5
|
||||
|
||||
# Returns useable LC data - 9 bytes info + 3 bytes RS(12,9) ECC
|
||||
def to_bytes_19696(_data):
|
||||
@ -79,7 +84,7 @@ if __name__ == '__main__':
|
||||
t0 = time()
|
||||
bin_data = to_binary_19696(data)
|
||||
deint_data = deinterleave_19696(bin_data)
|
||||
#err_corrected = dec_error_check_19696(deint_data)
|
||||
err_corrected = dec_error_check_19696(deint_data)
|
||||
ext_data = to_bytes_19696(deint_data)
|
||||
t1 = time()
|
||||
print('TIME: ', t1-t0, '\n')
|
||||
|
16
hamming.py
16
hamming.py
@ -23,7 +23,7 @@ __email__ = 'n0mjs@me.com'
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ENCODER- returns a bitarray object containing the hamming checksums
|
||||
def enc_hamming_15113(_data):
|
||||
def enc_15113(_data):
|
||||
csum = bitarray(4)
|
||||
csum[0] = _data[0] ^ _data[1] ^ _data[2] ^ _data[3] ^ _data[5] ^ _data[7] ^ _data[8]
|
||||
csum[1] = _data[1] ^ _data[2] ^ _data[3] ^ _data[4] ^ _data[6] ^ _data[8] ^ _data[9]
|
||||
@ -32,7 +32,7 @@ def enc_hamming_15113(_data):
|
||||
return csum
|
||||
|
||||
# DECODER - Returns a tuple of (decoded data, True if an error was corrected)
|
||||
def dec_hamming_15113(_data):
|
||||
def dec_15113(_data):
|
||||
chk0 = _data[0] ^ _data[1] ^ _data[2] ^ _data[3] ^ _data[5] ^ _data[7] ^ _data[8]
|
||||
chk1 = _data[1] ^ _data[2] ^ _data[3] ^ _data[4] ^ _data[6] ^ _data[8] ^ _data[9]
|
||||
chk2 = _data[2] ^ _data[3] ^ _data[4] ^ _data[5] ^ _data[7] ^ _data[9] ^ _data[10]
|
||||
@ -71,7 +71,7 @@ def dec_hamming_15113(_data):
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ENCODER - returns a bitarray object containing the hamming checksums
|
||||
def enc_hamming_1393(_data):
|
||||
def enc_1393(_data):
|
||||
csum = bitarray(4)
|
||||
csum[0] = _data[0] ^ _data[1] ^ _data[3] ^ _data[5] ^ _data[6]
|
||||
csum[1] = _data[0] ^ _data[1] ^ _data[2] ^ _data[4] ^ _data[6] ^ _data[7]
|
||||
@ -80,7 +80,7 @@ def enc_hamming_1393(_data):
|
||||
return csum
|
||||
|
||||
# DECODER - Returns a tuple of (decoded data, True if an error was corrected)
|
||||
def dec_hamming_1393(_data):
|
||||
def dec_1393(_data):
|
||||
chk0 = _data[0] ^ _data[1] ^ _data[3] ^ _data[5] ^ _data[6]
|
||||
chk1 = _data[0] ^ _data[1] ^ _data[2] ^ _data[4] ^ _data[6] ^ _data[7]
|
||||
chk2 = _data[0] ^ _data[1] ^ _data[2] ^ _data[3] ^ _data[5] ^ _data[7] ^ _data[8]
|
||||
@ -116,7 +116,7 @@ def dec_hamming_1393(_data):
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# ENCODER - returns a bitarray object containing the hamming checksums
|
||||
def enc_hamming_16114(_data):
|
||||
def enc_16114(_data):
|
||||
csum = bitarray(5)
|
||||
csum[0] = _data[0] ^ _data[1] ^ _data[2] ^ _data[3] ^ _data[5] ^ _data[7] ^ _data[8]
|
||||
csum[1] = _data[1] ^ _data[2] ^ _data[3] ^ _data[4] ^ _data[6] ^ _data[8] ^ _data[9]
|
||||
@ -126,7 +126,7 @@ def enc_hamming_16114(_data):
|
||||
return csum
|
||||
|
||||
# DECODER - Returns a tuple of (decoded data, True if an error was corrected)
|
||||
def dec_hamming_16114(_data):
|
||||
def dec_16114(_data):
|
||||
chk0 = _data[0] ^ _data[1] ^ _data[2] ^ _data[3] ^ _data[5] ^ _data[7] ^ _data[8]
|
||||
chk1 = _data[1] ^ _data[2] ^ _data[3] ^ _data[4] ^ _data[6] ^ _data[8] ^ _data[9]
|
||||
chk2 = _data[2] ^ _data[3] ^ _data[4] ^ _data[5] ^ _data[7] ^ _data[9] ^ _data[10]
|
||||
@ -179,12 +179,12 @@ if __name__ == '__main__':
|
||||
for row in rows:
|
||||
print('original data:', row[0:11], 'original parity:', row[11:15])
|
||||
|
||||
hamming_dec = dec_hamming_15113(row[0:15])
|
||||
hamming_dec = dec_15113(row[0:15])
|
||||
code = hamming_dec[0]
|
||||
error = hamming_dec[1]
|
||||
|
||||
print('\tDECODE: data: ', code[0:11], 'parity: ', code[11:15], 'error:', error)
|
||||
print('\tENCODE: calculated parity:', enc_hamming_15113(row[0:11]))
|
||||
print('\tENCODE: calculated parity:', enc_15113(row[0:11]))
|
||||
print()
|
||||
|
||||
check_15113(good_data_15113)
|
||||
|
Loading…
x
Reference in New Issue
Block a user