rename module ecc->framing

This commit is contained in:
Roman Zeyde
2014-08-31 09:11:30 +03:00
parent c283b6dd88
commit 28d16865e5
4 changed files with 12 additions and 12 deletions

View File

@@ -15,7 +15,7 @@ from . import sampling
from . import train from . import train
from . import common from . import common
from . import config from . import config
from . import ecc from . import framing
from . import equalizer from . import equalizer
modem = dsp.MODEM(config) modem = dsp.MODEM(config)
@@ -220,7 +220,7 @@ class Receiver(object):
self.bits = itertools.chain.from_iterable(data_bits) self.bits = itertools.chain.from_iterable(data_bits)
def decode(self, output): def decode(self, output):
chunks = ecc.decode(_blocks(self.bits)) chunks = framing.decode(_blocks(self.bits))
self.size = 0 self.size = 0
for chunk in chunks: for chunk in chunks:
output.write(chunk) output.write(chunk)
@@ -260,7 +260,7 @@ class Receiver(object):
def _blocks(bits): def _blocks(bits):
while True: while True:
block = bitarray.bitarray(endian='little') block = bitarray.bitarray(endian='little')
block.extend(itertools.islice(bits, 8 * ecc.BLOCK_SIZE)) block.extend(itertools.islice(bits, 8 * framing.BLOCK_SIZE))
if not block: if not block:
break break
yield bytearray(block.tobytes()) yield bytearray(block.tobytes())

View File

@@ -12,7 +12,7 @@ from . import common
from . import config from . import config
from . import dsp from . import dsp
from . import stream from . import stream
from . import ecc from . import framing
from . import equalizer from . import equalizer
modem = dsp.MODEM(config) modem = dsp.MODEM(config)
@@ -73,7 +73,7 @@ def main(args):
reader = stream.Reader(args.input, bufsize=(64 << 10), eof=True) reader = stream.Reader(args.input, bufsize=(64 << 10), eof=True)
data = itertools.chain.from_iterable(reader) data = itertools.chain.from_iterable(reader)
encoded = itertools.chain.from_iterable(ecc.encode(data)) encoded = itertools.chain.from_iterable(framing.encode(data))
writer.modulate(bits=common.to_bits(encoded)) writer.modulate(bits=common.to_bits(encoded))
data_size = writer.offset - training_size data_size = writer.offset - training_size

View File

@@ -1,4 +1,4 @@
from amodem import ecc from amodem import framing
import random import random
import itertools import itertools
import reedsolo import reedsolo
@@ -11,22 +11,22 @@ def concat(chunks):
def test_random(): def test_random():
r = random.Random(0) r = random.Random(0)
x = bytearray(r.randrange(0, 256) for i in range(64 * 1024)) x = bytearray(r.randrange(0, 256) for i in range(64 * 1024))
y = ecc.encode(x) y = framing.encode(x)
x_ = concat(ecc.decode(y)) x_ = concat(framing.decode(y))
assert x_ == x assert x_ == x
def test_errors(): def test_errors():
data = bytearray(range(244)) data = bytearray(range(244))
blocks = list(ecc.encode(data)) blocks = list(framing.encode(data))
assert len(blocks) == 2 assert len(blocks) == 2
for i in range(ecc.DEFAULT_NSYM // 2): for i in range(framing.DEFAULT_NSYM // 2):
blocks[0][i] = blocks[0][i] ^ 0xFF blocks[0][i] = blocks[0][i] ^ 0xFF
i = ecc.DEFAULT_NSYM // 2 i = framing.DEFAULT_NSYM // 2
try: try:
blocks[0][i] = blocks[0][i] ^ 0xFF blocks[0][i] = blocks[0][i] ^ 0xFF
concat(ecc.decode(blocks)) concat(framing.decode(blocks))
assert False assert False
except reedsolo.ReedSolomonError as e: except reedsolo.ReedSolomonError as e:
assert e.args == ('Too many errors to correct',) assert e.args == ('Too many errors to correct',)