#!/usr/bin/env python2 # -*- coding: utf-8 -*- ################################################## # GNU Radio Python Flow Graph # Title: Flight Recorder # Generated: Fri Sep 8 08:36:09 2017 ################################################## from gnuradio import blocks from gnuradio import eng_notation from gnuradio import gr from gnuradio import uhd from gnuradio.eng_option import eng_option from gnuradio.filter import firdes from optparse import OptionParser import time class flight_recorder(gr.top_block): def __init__(self, frequency=890e06, gain=76, output_file='test.txt', sample_rate=56e06): gr.top_block.__init__(self, "Flight Recorder") ################################################## # Parameters ################################################## self.frequency = frequency self.gain = gain self.output_file = output_file self.sample_rate = sample_rate ################################################## # Blocks ################################################## self.uhd_usrp_source_0 = uhd.usrp_source( ",".join(("", "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_source_0.set_samp_rate(sample_rate) self.uhd_usrp_source_0.set_center_freq(frequency, 0) self.uhd_usrp_source_0.set_gain(gain, 0) self.uhd_usrp_source_0.set_antenna('RX2', 0) self.uhd_usrp_source_0.set_bandwidth(sample_rate, 0) self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_gr_complex*1, output_file, False) self.blocks_file_sink_0.set_unbuffered(False) ################################################## # Connections ################################################## self.connect((self.uhd_usrp_source_0, 0), (self.blocks_file_sink_0, 0)) def get_frequency(self): return self.frequency def set_frequency(self, frequency): self.frequency = frequency self.uhd_usrp_source_0.set_center_freq(self.frequency, 0) def get_gain(self): return self.gain def set_gain(self, gain): self.gain = gain self.uhd_usrp_source_0.set_gain(self.gain, 0) def get_output_file(self): return self.output_file def set_output_file(self, output_file): self.output_file = output_file self.blocks_file_sink_0.open(self.output_file) def get_sample_rate(self): return self.sample_rate def set_sample_rate(self, sample_rate): self.sample_rate = sample_rate self.uhd_usrp_source_0.set_samp_rate(self.sample_rate) self.uhd_usrp_source_0.set_bandwidth(self.sample_rate, 0) def argument_parser(): parser = OptionParser(usage="%prog: [options]", option_class=eng_option) parser.add_option( "", "--frequency", dest="frequency", type="eng_float", default=eng_notation.num_to_str(890e06), help="Set frequency [default=%default]") parser.add_option( "", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(76), help="Set gain [default=%default]") parser.add_option( "", "--output-file", dest="output_file", type="string", default='test.txt', help="Set output_file [default=%default]") parser.add_option( "", "--sample-rate", dest="sample_rate", type="eng_float", default=eng_notation.num_to_str(56e06), help="Set sample_rate [default=%default]") return parser def main(top_block_cls=flight_recorder, options=None): if options is None: options, _ = argument_parser().parse_args() tb = top_block_cls(frequency=options.frequency, gain=options.gain, output_file=options.output_file, sample_rate=options.sample_rate) tb.start() try: raw_input('Press Enter to quit: ') except EOFError: pass tb.stop() tb.wait() if __name__ == '__main__': main()