PEP8 fixes

This commit is contained in:
Roman Zeyde
2014-09-05 12:37:30 +03:00
parent 2e552105b2
commit c38a37c49e
4 changed files with 60 additions and 37 deletions

View File

@@ -74,8 +74,8 @@ class QAM(object):
bits_per_symbol = int(bits_per_symbol)
for i, v in enumerate(symbols):
bits = tuple(int(i & (1 << j) != 0) for j in range(bits_per_symbol))
self._enc[bits] = v
bits = [int(i & (1 << j) != 0) for j in range(bits_per_symbol)]
self._enc[tuple(bits)] = v
self._dec = {v: k for k, v in self._enc.items()}
self.symbols = symbols

View File

@@ -142,7 +142,10 @@ class Receiver(object):
order=order, lookahead=lookahead
)
log.debug('Equalization filter: [%s]', ', '.join('{:.2f}'.format(c) for c in coeffs))
log.debug(
'Equalization filter: [%s]',
', '.join('{:.2f}'.format(c) for c in coeffs)
)
equalization_filter = dsp.FIR(h=coeffs)
equalized = list(equalization_filter(signal))
equalized = equalized[prefix+lookahead:-postfix+lookahead]
@@ -201,12 +204,12 @@ class Receiver(object):
if i > 0 and i % config.baud == 0:
err = np.array([e for v in errors.values() for e in v])
correction = np.mean(np.angle(err))/(2*np.pi) if len(err) else 0
err = np.mean(np.angle(err))/(2*np.pi) if len(err) else 0
errors.clear()
duration = time.time() - self.stats['rx_start']
sampler.freq -= 0.01 * correction / config.Fc
sampler.offset -= correction
sampler.freq -= 0.01 * err / config.Fc
sampler.offset -= err
log.debug('%10.1f kB, CPU: %6.2f%%, drift: %+5.2f ppm',
self.stats['rx_bits'] / 8e3,
duration * 100.0 / (i*config.Tsym),

View File

@@ -57,6 +57,7 @@ class Writer(object):
if all(symbols == 0): # EOF marker
break
def main(args):
log.info('Running MODEM @ {:.1f} kbps'.format(modem.modem_bps / 1e3))

View File

@@ -23,6 +23,7 @@ from functools import partial
null = open('/dev/null', 'wb')
def FileType(mode, process=None):
def opener(fname):
assert 'r' in mode or 'w' in mode
@@ -30,48 +31,75 @@ def FileType(mode, process=None):
fname = '-'
if fname is None:
if 'r' in mode: return process(stdout=wave.sp.PIPE, stderr=null).stdout
if 'w' in mode: return process(stdin=wave.sp.PIPE, stderr=null).stdin
if 'r' in mode:
return process(stdout=wave.sp.PIPE, stderr=null).stdout
if 'w' in mode:
return process(stdin=wave.sp.PIPE, stderr=null).stdin
if fname == '-':
if 'r' in mode: return _stdin
if 'w' in mode: return _stdout
if 'r' in mode:
return _stdin
if 'w' in mode:
return _stdout
return open(fname, mode)
return opener
def _run(args, process):
p = process(fname=args.filename)
exitcode = 0
try:
exitcode = p.wait()
except KeyboardInterrupt:
p.kill()
exitcode = p.wait()
sys.exit(exitcode)
def main():
p = argparse.ArgumentParser()
subparsers = p.add_subparsers()
# Modulator
sender = subparsers.add_parser('send', help='modulate binary data into audio signal.')
sender.add_argument('-i', '--input', help='input file (use "-" for stdin).')
sender.add_argument('-o', '--output', help='output file (use "-" for stdout).'
sender = subparsers.add_parser(
'send', help='modulate binary data into audio signal.')
sender.add_argument(
'-i', '--input', help='input file (use "-" for stdin).')
sender.add_argument(
'-o', '--output', help='output file (use "-" for stdout).'
' if not specified, `aplay` tool will be used.')
sender.add_argument('--silence-start', type=float, default=1.0,
help='seconds of silence before transmission starts')
sender.add_argument('--silence-stop', type=float, default=1.0,
help='seconds of silence after transmission stops')
sender.add_argument(
'--silence-start', type=float, default=1.0,
help='seconds of silence before transmission starts')
sender.add_argument(
'--silence-stop', type=float, default=1.0,
help='seconds of silence after transmission stops')
sender.set_defaults(main=send.main,
sender.set_defaults(
main=send.main,
input_type=FileType('rb'),
output_type=FileType('wb', wave.play)
)
# Demodulator
receiver = subparsers.add_parser('recv', help='demodulate audio signal into binary data.')
receiver.add_argument('-i', '--input', help='input file (use "-" for stdin).'
receiver = subparsers.add_parser(
'recv', help='demodulate audio signal into binary data.')
receiver.add_argument(
'-i', '--input', help='input file (use "-" for stdin).'
' if not specified, `arecord` tool will be used.')
receiver.add_argument('-o', '--output', help='output file (use "-" for stdout).')
receiver.add_argument('--skip', type=int, default=128,
help='skip initial N samples, due to spurious spikes')
receiver.add_argument('--plot', dest='plt', action='store_true', default=False,
help='plot results using pylab module')
receiver.set_defaults(main=recv.main,
receiver.add_argument(
'-o', '--output', help='output file (use "-" for stdout).')
receiver.add_argument(
'--skip', type=int, default=128,
help='skip initial N samples, due to spurious spikes')
receiver.add_argument(
'--plot', dest='plt', action='store_true', default=False,
help='plot results using pylab module')
receiver.set_defaults(
main=recv.main,
input_type=FileType('rb', wave.record),
output_type=FileType('wb')
)
@@ -82,14 +110,14 @@ def main():
recorder.add_argument(
'filename', default='-',
help='path to the audio file to record (otherwise, use stdout)')
recorder.set_defaults(main=partial(run, process=wave.record))
recorder.set_defaults(main=partial(_run, process=wave.record))
# Audio playing tool
player = subparsers.add_parser('play', help='play ' + fmt)
player.add_argument(
'filename', default='-',
help='path to the audio file to play (otherwise, use stdin)')
player.set_defaults(main=partial(run, process=wave.play))
player.set_defaults(main=partial(_run, process=wave.play))
# Parsing and execution
args = p.parse_args()
@@ -104,15 +132,6 @@ def main():
log.debug('MODEM settings: %r', config.settings)
args.main(args)
def run(args, process):
p = process(fname=args.filename)
exitcode = 0
try:
exitcode = p.wait()
except KeyboardInterrupt:
p.kill()
exitcode = p.wait()
sys.exit(exitcode)
if __name__ == '__main__':
main()