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)
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)
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))