mirror of
https://github.com/romanz/amodem.git
synced 2026-04-01 00:36:50 +08:00
rename module ecc->framing
This commit is contained in:
@@ -15,7 +15,7 @@ from . import sampling
|
||||
from . import train
|
||||
from . import common
|
||||
from . import config
|
||||
from . import ecc
|
||||
from . import framing
|
||||
from . import equalizer
|
||||
|
||||
modem = dsp.MODEM(config)
|
||||
@@ -220,7 +220,7 @@ class Receiver(object):
|
||||
self.bits = itertools.chain.from_iterable(data_bits)
|
||||
|
||||
def decode(self, output):
|
||||
chunks = ecc.decode(_blocks(self.bits))
|
||||
chunks = framing.decode(_blocks(self.bits))
|
||||
self.size = 0
|
||||
for chunk in chunks:
|
||||
output.write(chunk)
|
||||
@@ -260,7 +260,7 @@ class Receiver(object):
|
||||
def _blocks(bits):
|
||||
while True:
|
||||
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:
|
||||
break
|
||||
yield bytearray(block.tobytes())
|
||||
|
||||
@@ -12,7 +12,7 @@ from . import common
|
||||
from . import config
|
||||
from . import dsp
|
||||
from . import stream
|
||||
from . import ecc
|
||||
from . import framing
|
||||
from . import equalizer
|
||||
|
||||
modem = dsp.MODEM(config)
|
||||
@@ -73,7 +73,7 @@ def main(args):
|
||||
|
||||
reader = stream.Reader(args.input, bufsize=(64 << 10), eof=True)
|
||||
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))
|
||||
|
||||
data_size = writer.offset - training_size
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from amodem import ecc
|
||||
from amodem import framing
|
||||
import random
|
||||
import itertools
|
||||
import reedsolo
|
||||
@@ -11,22 +11,22 @@ def concat(chunks):
|
||||
def test_random():
|
||||
r = random.Random(0)
|
||||
x = bytearray(r.randrange(0, 256) for i in range(64 * 1024))
|
||||
y = ecc.encode(x)
|
||||
x_ = concat(ecc.decode(y))
|
||||
y = framing.encode(x)
|
||||
x_ = concat(framing.decode(y))
|
||||
assert x_ == x
|
||||
|
||||
|
||||
def test_errors():
|
||||
data = bytearray(range(244))
|
||||
blocks = list(ecc.encode(data))
|
||||
blocks = list(framing.encode(data))
|
||||
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
|
||||
|
||||
i = ecc.DEFAULT_NSYM // 2
|
||||
i = framing.DEFAULT_NSYM // 2
|
||||
try:
|
||||
blocks[0][i] = blocks[0][i] ^ 0xFF
|
||||
concat(ecc.decode(blocks))
|
||||
concat(framing.decode(blocks))
|
||||
assert False
|
||||
except reedsolo.ReedSolomonError as e:
|
||||
assert e.args == ('Too many errors to correct',)
|
||||
Reference in New Issue
Block a user