diff options
author | Tom Rondeau | 2012-04-19 16:29:39 -0400 |
---|---|---|
committer | Tom Rondeau | 2012-04-23 19:56:14 -0400 |
commit | 362d45bb829a9b190586cca79717cc175f4d06d2 (patch) | |
tree | 15001c96271defad12908e24958aabd158d5159a /gr-digital/python/qa_scrambler.py | |
parent | 6d1419febab128d82bad00abaf0935624f8aa6cb (diff) | |
download | gnuradio-362d45bb829a9b190586cca79717cc175f4d06d2.tar.gz gnuradio-362d45bb829a9b190586cca79717cc175f4d06d2.tar.bz2 gnuradio-362d45bb829a9b190586cca79717cc175f4d06d2.zip |
digital: copying over rest of blocks from gnuradio-core to gr-digital.
Includes moving GRC and QA code; new ones where missing.
Have not removed blocks from gnuradio-core for compatibility.
Diffstat (limited to 'gr-digital/python/qa_scrambler.py')
-rwxr-xr-x | gr-digital/python/qa_scrambler.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/gr-digital/python/qa_scrambler.py b/gr-digital/python/qa_scrambler.py new file mode 100755 index 000000000..f5bd61242 --- /dev/null +++ b/gr-digital/python/qa_scrambler.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# +# Copyright 2008,2010,2012 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from gnuradio import gr, gr_unittest +import digital_swig as digital + +class test_scrambler(gr_unittest.TestCase): + + def setUp (self): + self.tb = gr.top_block() + + def tearDown(self): + self.tb = None + + def test_scrambler_descrambler(self): + src_data = (1,)*1000 + src = gr.vector_source_b(src_data, False) + scrambler = digital.scrambler_bb(0x8a, 0x7F, 7) # CCSDS 7-bit scrambler + descrambler = digital.descrambler_bb(0x8a, 0x7F, 7) + dst = gr.vector_sink_b() + self.tb.connect(src, scrambler, descrambler, dst) + self.tb.run() + self.assertEqual(tuple(src_data[:-8]), dst.data()[8:]) # skip garbage during synchronization + + def test_additive_scrambler(self): + src_data = (1,)*1000 + src = gr.vector_source_b(src_data, False) + scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7) + descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7) + dst = gr.vector_sink_b() + self.tb.connect(src, scrambler, descrambler, dst) + self.tb.run() + self.assertEqual(src_data, dst.data()) + + def test_additive_scrambler_reset(self): + src_data = (1,)*1000 + src = gr.vector_source_b(src_data, False) + scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100) + descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100) + dst = gr.vector_sink_b() + self.tb.connect(src, scrambler, descrambler, dst) + self.tb.run() + self.assertEqual(src_data, dst.data()) + +if __name__ == '__main__': + gr_unittest.run(test_scrambler, "test_scrambler.xml") |