Example #1
0
 def setUp (self):
     self.tb = gr.top_block ()
     self.c = phy(slow_rate=True)
     self.dqcsk_mapper = ie802_15_4.dqcsk_mapper_fc(self.c.chirp_seq, self.c.time_gap_1, self.c.time_gap_2, c.n_sub, self.c.n_subchirps)
     self.dqcsk_demapper = ie802_15_4.dqcsk_demapper_cc(self.c.chirp_seq, self.c.time_gap_1, self.c.time_gap_2, c.n_sub, self.c.n_subchirps)
     self.dqpsk_mapper = ie802_15_4.dqpsk_mapper_ff(framelen=self.c.nsym_frame, forward=True)
     self.dqpsk_demapper = ie802_15_4.dqpsk_soft_demapper_cc(framelen=self.c.nsym_frame)
     self.qpsk_mapper = ie802_15_4.qpsk_mapper_if() 
     self.qpsk_demapper = ie802_15_4.qpsk_demapper_fi() 
     self.preamble_sfd_prefixer_I = ie802_15_4.preamble_sfd_prefixer_ii(self.c.preamble, self.c.SFD, self.c.nsym_frame)
     self.preamble_sfd_removal_I = blocks.keep_m_in_n(gr.sizeof_int, self.c.nsym_frame - len(self.c.preamble) - len(self.c.SFD), self.c.nsym_frame, len(self.c.preamble)+len(self.c.SFD))
     self.preamble_sfd_prefixer_Q = ie802_15_4.preamble_sfd_prefixer_ii(self.c.preamble, self.c.SFD, self.c.nsym_frame)
     self.preamble_sfd_removal_Q = blocks.keep_m_in_n(gr.sizeof_int, self.c.nsym_frame - len(self.c.preamble) - len(self.c.SFD), self.c.nsym_frame, len(self.c.preamble)+len(self.c.SFD))
     self.interleaver_I = ie802_15_4.interleaver_ii(self.c.intlv_seq, forward=True)
     self.interleaver_Q = ie802_15_4.interleaver_ii(self.c.intlv_seq, forward=True)
     self.deinterleaver_I = ie802_15_4.interleaver_ii(self.c.intlv_seq, forward=False)
     self.deinterleaver_Q = ie802_15_4.interleaver_ii(self.c.intlv_seq, forward=False)
     self.codeword_mapper_I = ie802_15_4.codeword_mapper_bi(self.c.bits_per_symbol, self.c.codewords)
     self.codeword_mapper_Q = ie802_15_4.codeword_mapper_bi(self.c.bits_per_symbol, self.c.codewords)
     self.codeword_demapper_I = ie802_15_4.codeword_demapper_ib(self.c.bits_per_symbol, self.c.codewords)
     self.codeword_demapper_Q = ie802_15_4.codeword_demapper_ib(self.c.bits_per_symbol, self.c.codewords)
     self.demux = blocks.deinterleave(gr.sizeof_char*1,1)
     self.mux = blocks.interleave(gr.sizeof_char*1,1)
     self.zeropadding = ie802_15_4.zeropadding_b(self.c.padded_zeros)
     self.zeropadding_removal = ie802_15_4.zeropadding_removal_b(self.c.phy_packetsize_bytes*8+len(self.c.PHR), self.c.padded_zeros)
     self.phr_prefixer = ie802_15_4.phr_prefixer(self.c.PHR)
     self.phr_removal = ie802_15_4.phr_removal(self.c.PHR)
     self.fragmentation = ie802_15_4.fragmentation(self.c.phy_packetsize_bytes)
Example #2
0
    def test_004_t(self):
        # set up fg
        cfg = phy(slow_rate=True)
        data_in = range(3 * len(cfg.intlv_seq))  # some random prime number
        self.src = blocks.vector_source_i(data_in)
        self.intlv = ie802_15_4.interleaver_ii(intlv_seq=cfg.intlv_seq,
                                               forward=True)
        self.deintlv = ie802_15_4.interleaver_ii(intlv_seq=cfg.intlv_seq,
                                                 forward=False)
        self.snk = blocks.vector_sink_i(1)
        self.tb.connect(self.src, self.intlv, self.deintlv, self.snk)
        self.tb.run()

        # check data
        data_out = self.snk.data()
        self.assertFloatTuplesAlmostEqual(data_in, data_out)
Example #3
0
    def test_003_t(self):
        # set up fg
        cfg = phy(slow_rate=True)
        data_in = range(3 * len(cfg.intlv_seq))  # some random prime number
        self.src = blocks.vector_source_i(data_in)
        self.intlv = ie802_15_4.interleaver_ii(intlv_seq=cfg.intlv_seq,
                                               forward=True)
        self.snk = blocks.vector_sink_i(1)
        self.tb.connect(self.src, self.intlv, self.snk)
        self.tb.run()

        # check data
        data_out = self.snk.data()
        ref = []
        for n in range(3):
            for i in range(len(cfg.intlv_seq)):
                ref.append(data_in[n * len(cfg.intlv_seq) + cfg.intlv_seq[i]])
        self.assertFloatTuplesAlmostEqual(ref, data_out)