def __init__(self, rx_gain=15, rate=1e6, samp_per_sym=4, args="", freq=915e6, ampl=0.7, tx_gain=15, number_of_slots=10, lead_limit=0.025, initial_slot=15, link_speed=15, slot_interval=0.010, guard_interval=15): gr.hier_block2.__init__( self, "TDMA_HIER", gr.io_signaturev(2, 2, [gr.sizeof_char*1, gr.sizeof_char*1]), gr.io_signaturev(2, 2, [gr.sizeof_char*1, gr.sizeof_char*1]), ) ################################################## # Parameters ################################################## self.rx_gain = rx_gain self.rate = rate self.samp_per_sym = samp_per_sym self.args = args self.freq = freq self.ampl = ampl self.tx_gain = tx_gain self.number_of_slots = number_of_slots self.lead_limit = lead_limit self.initial_slot = initial_slot self.link_speed = link_speed self.slot_interval = slot_interval self.guard_interval = guard_interval ################################################## # Variables ################################################## self.samp_rate = samp_rate = rate ################################################## # Blocks ################################################## self.usrp_source = uhd.usrp_source( device_addr=args, stream_args=uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.usrp_source.set_time_source("external", 0) self.usrp_source.set_time_unknown_pps(uhd.time_spec()) self.usrp_source.set_samp_rate(samp_rate) self.usrp_source.set_center_freq(freq, 0) self.usrp_source.set_gain(rx_gain, 0) self.usrp_source.set_antenna("TX/RX", 0) self.usrp_sink = uhd.usrp_sink( device_addr=args, stream_args=uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.usrp_sink.set_time_source("external", 0) self.usrp_sink.set_time_unknown_pps(uhd.time_spec()) self.usrp_sink.set_samp_rate(samp_rate) self.usrp_sink.set_center_freq(freq, 0) self.usrp_sink.set_gain(tx_gain, 0) self.usrp_sink.set_antenna("TX/RX", 0) self.tdma_engine = precog.tdma_engine(initial_slot,slot_interval,guard_interval,number_of_slots,lead_limit,link_speed) self.gr_multiply_const_vxx_0 = gr.multiply_const_vcc((ampl, )) self.gmsk_mod = digital.gmsk_mod( samples_per_symbol=samp_per_sym, bt=0.35, verbose=False, log=False, ) self.gmsk_demod = digital.gmsk_demod( samples_per_symbol=samp_per_sym, gain_mu=0.175, mu=0.5, omega_relative_limit=0.005, freq_error=0.0, verbose=False, log=False, ) self.extras_pmt_rpc_0 = gr_extras.pmt_rpc(obj=self, result_msg=False) self.extras_packet_framer_0 = gr_extras.packet_framer( samples_per_symbol=1, bits_per_symbol=1, access_code="", ) self.extras_packet_deframer_0 = gr_extras.packet_deframer( access_code="", threshold=-1, ) self.burst_gate_0 = precog.burst_gate() ################################################## # Connections ################################################## self.connect((self.usrp_source, 0), (self.tdma_engine, 0)) self.connect((self.tdma_engine, 0), (self.extras_packet_framer_0, 0)) self.connect((self.usrp_source, 0), (self.gmsk_demod, 0)) self.connect((self.gmsk_demod, 0), (self.extras_packet_deframer_0, 0)) self.connect((self.extras_packet_framer_0, 0), (self.gmsk_mod, 0)) self.connect((self, 1), (self.tdma_engine, 1)) self.connect((self, 0), (self.tdma_engine, 3)) self.connect((self.extras_packet_deframer_0, 0), (self, 1)) self.connect((self.gmsk_mod, 0), (self.gr_multiply_const_vxx_0, 0)) self.connect((self.gr_multiply_const_vxx_0, 0), (self.burst_gate_0, 0)) self.connect((self.burst_gate_0, 0), (self.usrp_sink, 0)) self.connect((self.extras_packet_deframer_0, 0), (self.tdma_engine, 2)) self.connect((self, 0), (self.extras_pmt_rpc_0, 0)) self.connect((self.tdma_engine, 1), (self, 0))
def setup_burst_gates(self): print 'setup_burst_gates' self.bstgts = [] for i in range(self.n_devices): self.bstgts.append(precog.burst_gate())
def __init__(self, rx_gain=15, rate=1e6, samp_per_sym=4, args="", freq=915e6, ampl=0.7, tx_gain=15, number_of_slots=10, lead_limit=0.025, initial_slot=15, link_speed=15, slot_interval=0.010, guard_interval=15): gr.hier_block2.__init__( self, "TDMA_HIER", gr.io_signaturev(2, 2, [gr.sizeof_char * 1, gr.sizeof_char * 1]), gr.io_signaturev(2, 2, [gr.sizeof_char * 1, gr.sizeof_char * 1]), ) ################################################## # Parameters ################################################## self.rx_gain = rx_gain self.rate = rate self.samp_per_sym = samp_per_sym self.args = args self.freq = freq self.ampl = ampl self.tx_gain = tx_gain self.number_of_slots = number_of_slots self.lead_limit = lead_limit self.initial_slot = initial_slot self.link_speed = link_speed self.slot_interval = slot_interval self.guard_interval = guard_interval ################################################## # Variables ################################################## self.samp_rate = samp_rate = rate ################################################## # Blocks ################################################## self.usrp_source = uhd.usrp_source( device_addr=args, stream_args=uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.usrp_source.set_time_source("external", 0) self.usrp_source.set_time_unknown_pps(uhd.time_spec()) self.usrp_source.set_samp_rate(samp_rate) self.usrp_source.set_center_freq(freq, 0) self.usrp_source.set_gain(rx_gain, 0) self.usrp_source.set_antenna("TX/RX", 0) self.usrp_sink = uhd.usrp_sink( device_addr=args, stream_args=uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.usrp_sink.set_time_source("external", 0) self.usrp_sink.set_time_unknown_pps(uhd.time_spec()) self.usrp_sink.set_samp_rate(samp_rate) self.usrp_sink.set_center_freq(freq, 0) self.usrp_sink.set_gain(tx_gain, 0) self.usrp_sink.set_antenna("TX/RX", 0) self.tdma_engine = precog.tdma_engine(initial_slot, slot_interval, guard_interval, number_of_slots, lead_limit, link_speed) self.gr_multiply_const_vxx_0 = gr.multiply_const_vcc((ampl, )) self.gmsk_mod = digital.gmsk_mod( samples_per_symbol=samp_per_sym, bt=0.35, verbose=False, log=False, ) self.gmsk_demod = digital.gmsk_demod( samples_per_symbol=samp_per_sym, gain_mu=0.175, mu=0.5, omega_relative_limit=0.005, freq_error=0.0, verbose=False, log=False, ) self.extras_pmt_rpc_0 = gr_extras.pmt_rpc(obj=self, result_msg=False) self.extras_packet_framer_0 = gr_extras.packet_framer( samples_per_symbol=1, bits_per_symbol=1, access_code="", ) self.extras_packet_deframer_0 = gr_extras.packet_deframer( access_code="", threshold=-1, ) self.burst_gate_0 = precog.burst_gate() ################################################## # Connections ################################################## self.connect((self.usrp_source, 0), (self.tdma_engine, 0)) self.connect((self.tdma_engine, 0), (self.extras_packet_framer_0, 0)) self.connect((self.usrp_source, 0), (self.gmsk_demod, 0)) self.connect((self.gmsk_demod, 0), (self.extras_packet_deframer_0, 0)) self.connect((self.extras_packet_framer_0, 0), (self.gmsk_mod, 0)) self.connect((self, 1), (self.tdma_engine, 1)) self.connect((self, 0), (self.tdma_engine, 3)) self.connect((self.extras_packet_deframer_0, 0), (self, 1)) self.connect((self.gmsk_mod, 0), (self.gr_multiply_const_vxx_0, 0)) self.connect((self.gr_multiply_const_vxx_0, 0), (self.burst_gate_0, 0)) self.connect((self.burst_gate_0, 0), (self.usrp_sink, 0)) self.connect((self.extras_packet_deframer_0, 0), (self.tdma_engine, 2)) self.connect((self, 0), (self.extras_pmt_rpc_0, 0)) self.connect((self.tdma_engine, 1), (self, 0))