diff --git a/bptc19696.py b/bptc19696.py index 151fc7b..2c68b42 100755 --- a/bptc19696.py +++ b/bptc19696.py @@ -9,13 +9,11 @@ from __future__ import print_function from bitstring import BitArray -from binascii import b2a_hex as h -from time import time # Does anybody read this stuff? There's a PEP somewhere that says I should do this. __author__ = 'Cortney T. Buffington, N0MJS' __copyright__ = 'Copyright (c) 2016 Cortney T. Buffington, N0MJS and the K0USY Group' -__credits__ = 'Colin Durbridge, G4EML, Steve Zingman, N4IRS; Mike Zingman, N4IRR; Jonathan Naylor, G4KLX; Hans Barthen, DL5DI; Torsten Shultze, DG1HT' +__credits__ = 'Jonathan Naylor, G4KLX; Ian Wraith' __license__ = 'Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported' __maintainer__ = 'Cort Buffington, N0MJS' __email__ = 'n0mjs@me.com' @@ -35,49 +33,43 @@ def deint_196(_data): def extract_196(_data): databits = BitArray() databits.append(_data[4:12]) - databits.append(_data[19:30]) - databits.append(_data[34:45]) - databits.append(_data[49:60]) - databits.append(_data[64:75]) - databits.append(_data[79:90]) - databits.append(_data[94:105]) - databits.append(_data[109:120]) - databits.append(_data[124:135]) + databits.append(_data[16:27]) + databits.append(_data[31:42]) + databits.append(_data[46:57]) + databits.append(_data[61:72]) + databits.append(_data[76:87]) + databits.append(_data[91:102]) + databits.append(_data[106:117]) + databits.append(_data[121:132]) return databits.tobytes() - + if __name__ == '__main__': + from binascii import b2a_hex as h + # Validation Example data = '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20' - t0 = time() bin_data = binary_196(data) - t1 = time() deint_data = deint_196(bin_data) - t2 = time() ext_data = extract_196(deint_data) - t3 = time() - print('binary extraction time:', t1-t0) - print('deinterleave time: ', t2-t1) - print('byte extraction time: ',t3-t2,'\n') - - print('Original 33 byte data block:') + print('original 33 byte data block:') print(h(data)) print(len(data)) print() - print('Extracted binary data (distarding sync)') + print('binary data (discarding sync)') print(bin_data.len) - print(bin_data.bin) + print(bin_data) print() - print('Deinterleaved binary data') + print('deinterleaved binary data') print(deint_data.len) - print(deint_data.bin) + print(deint_data) print() - print('12 Bytes LC+RS (9,3)') - print(len(ext_data)) + print('decoded hex data') + print(len(ext_data)*8) print(h(ext_data)) \ No newline at end of file