backing up partial progress

This commit is contained in:
Cort Buffington 2016-09-25 08:12:22 -05:00
parent bcac6b570f
commit 2c7c604038
2 changed files with 15 additions and 10 deletions

View File

@ -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')

View File

@ -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)