Пример #1
0
	# Handle command-line options
	parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
	expert_grp = parser.add_option_group("Expert")
	cs_mac.add_options(parser, expert_grp)
	usrp_rx.add_options(parser, expert_grp)
	usrp_tx.add_options(parser, expert_grp)
	pkt_listener.add_options(parser, expert_grp)
	(options, args) = parser.parse_args()

	# Create MAC and connect to USRP
	tb = gr.top_block()
	mac = cs_mac(options)
	tb.connect(usrp_rx(options), mac, usrp_tx(options))

	# Spawn thread to listen for packets
	pkt_thread = pkt_listener(options, mac)
	pkt_thread.start()

	# Let everything run
	tb.start()
	try:
		raw_input()
	except KeyboardInterrupt:
		pass

	# Cleanup
	tb.stop()
	mac.stop()
	pkt_thread.stop()

	# Wait for completion
Пример #2
0
		mac = cs_mac(mac_options, True)

		# Construct block for adding all incoming signals. Block
		# is directly connected to node receiver
		input_add = gr.add_cc()
		tb.connect(input_add, mac)

		# Construct noise generator and add to input signals
		noise_voltage = mac_options.noise_amplitude
		if config.has_option(s, "noise-amplitude"):
			noise_voltage = config.getint(s, "noise-amplitude")
		noise_src = gr.noise_source_c(gr.GR_GAUSSIAN, noise_voltage, mac_options.noise_seed)
		tb.connect(noise_src, (input_add, 0))

		# Add packet receiver thread
		mac_receiver = pkt_listener(mac_options, mac)
		mac_receiver.start()

		# Add node information to dictionary
		nodes[name] = (mac, input_add, mac_receiver)
		inputidx[name] = 1

	# Construct channels between the nodes (we assume fully-connected)
	# NOTE: We allow self-loops (which capture node self-interference)
	for n_src in nodes.keys():
		(src_mac, src_input, dummy) = nodes[n_src]
		for n_dst in nodes.keys():
			(dst_mac, dst_input, dummy) = nodes[n_dst]

			# Use global options as a base
			link_options = copy.copy(options)