Example #1
0
 def test_ff_skip_prefix(self):
     pad = (0, ) * 64
     src_bits = (0, 1, 1, 1, 1, 0, 0, 1, 1) + pad + (0, ) * 7
     src_data = [2.0 * x - 1.0 for x in src_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff("0011", 0, "sync")
     dst = blocks.tag_debug(gr.sizeof_float, "sync")
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.current_tags()
     self.assertEqual(len(result_data), 1)
     self.assertEqual(result_data[0].offset, 9)
Example #2
0
 def test_ff_immediate(self):
     """Test that packets at start of stream match"""
     pad = (0, ) * 64
     src_bits = (0, 0, 1, 1) + pad + (0, ) * 7
     src_data = [2.0 * x - 1.0 for x in src_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff("0011", 0, "sync")
     dst = blocks.tag_debug(gr.sizeof_float, "sync")
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.current_tags()
     self.assertEqual(len(result_data), 1)
     self.assertEqual(result_data[0].offset, 4)
 def test_003(self):
     pad = (0,) * 64
     src_bits = (1, 0, 1, 1, 1, 1, 0, 1, 1) + pad + (0,) * 7
     src_data = [2.0*x - 1.0 for x in src_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff("1011", 0, "sync")
     dst = blocks.tag_debug(gr.sizeof_float, "sync")
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.current_tags()
     self.assertEqual(len(result_data), 2)
     self.assertEqual(result_data[0].offset, 4)
     self.assertEqual(result_data[1].offset, 9)
Example #4
0
 def test_004(self):
     code = tuple(string_to_1_0_list(default_access_code))
     access_code = to_1_0_string(code)
     pad = (0, ) * 64
     #print code
     #print access_code
     src_bits = code + (1, 0, 1, 1) + pad
     src_data = [2.0 * x - 1.0 for x in src_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff(access_code, 0, "sync")
     dst = blocks.tag_debug(gr.sizeof_float, "sync")
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.current_tags()
     self.assertEqual(len(result_data), 1)
     self.assertEqual(result_data[0].offset, len(code))
 def test_004(self):
     code = tuple(string_to_1_0_list(default_access_code))
     access_code = to_1_0_string(code)
     pad = (0,) * 64
     #print code
     #print access_code
     src_bits = code + (1, 0, 1, 1) + pad
     src_data = [2.0*x - 1.0 for x in src_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff(access_code, 0, "sync")
     dst = blocks.tag_debug(gr.sizeof_float, "sync")
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.current_tags()
     self.assertEqual(len(result_data), 1)
     self.assertEqual(result_data[0].offset, len(code))
 def test_004(self):
     code = list(string_to_1_0_list(default_access_code))
     access_code = to_1_0_string(code)
     pad = [0, ] * 64
     # print code
     # print access_code
     src_bits = code + [1, 0, 1, 1] + pad
     src_data = [2.0 * x - 1.0 for x in src_bits]
     expected_result_bits = code + [1, 0, 1, 1] + pad
     expected_result = [2.0 * x - 1.0 for x in expected_result_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff(access_code, 0, "test")
     dst = blocks.vector_sink_f()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertFloatTuplesAlmostEqual(expected_result, result_data, 5)
 def test_004(self):
     code = tuple(string_to_1_0_list(default_access_code))
     access_code = to_1_0_string(code)
     pad = (0,) * 64
     #print code
     #print access_code
     src_bits = code + (1, 0, 1, 1) + pad
     src_data = [2.0*x - 1.0 for x in src_bits]
     expected_result_bits = code + (1, 0, 1, 1) + pad
     expected_result = [2.0*x - 1.0 for x in expected_result_bits]
     src = blocks.vector_source_f(src_data)
     op = digital.correlate_access_code_tag_ff(access_code, 0, "test")
     dst = blocks.vector_sink_f()
     self.tb.connect(src, op, dst)
     self.tb.run()
     result_data = dst.data()
     self.assertFloatTuplesAlmostEqual(expected_result, result_data, 5)
    def __init__(self, packlen=0,
                 sync='00011010110011111111110000011101', threshold=4):
        gr.hier_block2.__init__(
            self,
            'Sync and create PDU soft',
            gr.io_signature(1, 1, gr.sizeof_float*1),
            gr.io_signature(0, 0, 0),
        )
        self.message_port_register_hier_out('out')

        ##################################################
        # Parameters
        ##################################################
        self.packlen = packlen
        self.sync = sync
        self.threshold = threshold

        ##################################################
        # Blocks
        ##################################################
        self.satellites_fixedlen_tagger_0_0_0 = (
            satellites.fixedlen_tagger('syncword', 'packet_len',
                                       packlen, numpy.float32))
        self.digital_correlate_access_code_tag_bb_0_0_0 = (
            digital.correlate_access_code_tag_ff(sync, threshold, 'syncword'))
        self.blocks_tagged_stream_to_pdu_0_0_0 = (
            tagged_stream_to_pdu(float_t, 'packet_len'))

        ##################################################
        # Connections
        ##################################################
        self.msg_connect(
            (self.blocks_tagged_stream_to_pdu_0_0_0, 'pdus'), (self, 'out'))
        self.connect(
            (self.digital_correlate_access_code_tag_bb_0_0_0, 0),
            (self.satellites_fixedlen_tagger_0_0_0, 0))
        self.connect(
            (self, 0),
            (self.digital_correlate_access_code_tag_bb_0_0_0, 0))
        self.connect(
            (self.satellites_fixedlen_tagger_0_0_0, 0),
            (self.blocks_tagged_stream_to_pdu_0_0_0, 0))