def __init__(self, args): gr.top_block.__init__(self) pubsub.__init__(self) UHDApp.__init__(self, args=args, prefix="UHD-SIGGEN") self.extra_sink = None # Allocate some attributes self._src1 = None self._src2 = None self._src = None # Initialize device: self.setup_usrp( ctor=uhd.usrp_sink, args=args, ) print("[UHD-SIGGEN] UHD Signal Generator") print("[UHD-SIGGEN] UHD Version: {ver}".format( ver=uhd.get_version_string())) print("[UHD-SIGGEN] Using USRP configuration:") print(self.get_usrp_info_string(tx_or_rx="tx")) self.usrp_description = self.get_usrp_info_string(tx_or_rx="tx", compact=True) ### Set subscribers and publishers: self.publish(SAMP_RATE_KEY, lambda: self.usrp.get_samp_rate()) self.publish(DESC_KEY, lambda: self.usrp_description) self.publish(FREQ_RANGE_KEY, lambda: self.usrp.get_freq_range(self.channels[0])) self.publish(GAIN_RANGE_KEY, lambda: self.usrp.get_gain_range(self.channels[0])) self.publish(GAIN_KEY, lambda: self.usrp.get_gain(self.channels[0])) self[SAMP_RATE_KEY] = args.samp_rate self[TX_FREQ_KEY] = args.freq self[AMPLITUDE_KEY] = args.amplitude self[WAVEFORM_FREQ_KEY] = args.waveform_freq self[WAVEFORM_OFFSET_KEY] = args.offset self[WAVEFORM2_FREQ_KEY] = args.waveform2_freq self[DSP_FREQ_KEY] = 0 self[RF_FREQ_KEY] = 0 #subscribe set methods self.subscribe(SAMP_RATE_KEY, self.set_samp_rate) self.subscribe(GAIN_KEY, self.set_gain) self.subscribe(TX_FREQ_KEY, self.set_freq) self.subscribe(AMPLITUDE_KEY, self.set_amplitude) self.subscribe(WAVEFORM_FREQ_KEY, self.set_waveform_freq) self.subscribe(WAVEFORM2_FREQ_KEY, self.set_waveform2_freq) self.subscribe(TYPE_KEY, self.set_waveform) #force update on pubsub keys for key in (SAMP_RATE_KEY, GAIN_KEY, TX_FREQ_KEY, AMPLITUDE_KEY, WAVEFORM_FREQ_KEY, WAVEFORM_OFFSET_KEY, WAVEFORM2_FREQ_KEY): self[key] = self[key] self[TYPE_KEY] = args.type #set type last
def __init__(self, args): gr.top_block.__init__(self) pubsub.__init__(self) UHDApp.__init__(self, args=args, prefix="UHD-SIGGEN") self.extra_sink = None # Allocate some attributes self._src1 = None self._src2 = None self._src = None # Initialize device: self.setup_usrp( ctor=uhd.usrp_sink, args=args, ) print("[UHD-SIGGEN] UHD Signal Generator") print("[UHD-SIGGEN] UHD Version: {ver}".format(ver=uhd.get_version_string())) print("[UHD-SIGGEN] Using USRP configuration:") print(self.get_usrp_info_string(tx_or_rx="tx")) self.usrp_description = self.get_usrp_info_string(tx_or_rx="tx", compact=True) ### Set subscribers and publishers: self.publish(SAMP_RATE_KEY, lambda: self.usrp.get_samp_rate()) self.publish(DESC_KEY, lambda: self.usrp_description) self.publish(FREQ_RANGE_KEY, lambda: self.usrp.get_freq_range(self.channels[0])) self.publish(GAIN_RANGE_KEY, lambda: self.usrp.get_gain_range(self.channels[0])) self.publish(GAIN_KEY, lambda: self.usrp.get_gain(self.channels[0])) self[SAMP_RATE_KEY] = args.samp_rate self[TX_FREQ_KEY] = args.freq self[AMPLITUDE_KEY] = args.amplitude self[WAVEFORM_FREQ_KEY] = args.waveform_freq self[WAVEFORM_OFFSET_KEY] = args.offset self[WAVEFORM2_FREQ_KEY] = args.waveform2_freq self[DSP_FREQ_KEY] = 0 self[RF_FREQ_KEY] = 0 #subscribe set methods self.subscribe(SAMP_RATE_KEY, self.set_samp_rate) self.subscribe(GAIN_KEY, self.set_gain) self.subscribe(TX_FREQ_KEY, self.set_freq) self.subscribe(AMPLITUDE_KEY, self.set_amplitude) self.subscribe(WAVEFORM_FREQ_KEY, self.set_waveform_freq) self.subscribe(WAVEFORM2_FREQ_KEY, self.set_waveform2_freq) self.subscribe(TYPE_KEY, self.set_waveform) #force update on pubsub keys for key in (SAMP_RATE_KEY, GAIN_KEY, TX_FREQ_KEY, AMPLITUDE_KEY, WAVEFORM_FREQ_KEY, WAVEFORM_OFFSET_KEY, WAVEFORM2_FREQ_KEY): self[key] = self[key] self[TYPE_KEY] = args.type #set type last
def __init__(self, args): gr.top_block.__init__(self) pubsub.__init__(self) if not 0.0 <= args.amplitude <= 1.0: raise ValueError( "Invalid value for amplitude: {}. Must be in [0.0, 1.0]". format(args.amplitude)) # If the power argument is given, we need to turn that into a power # *reference* level. This is a bit of a hack because we're assuming # knowledge of UHDApp (i.e. we're leaking abstractions). But it's simple # and harmless enough. if args.power: if args.amplitude < self.MIN_AMP_POWER_MODE: raise RuntimeError( "[ERROR] Invalid amplitude: In power mode, amplitude must be " "larger than {}!".format(self.MIN_AMP_POWER_MODE)) args.power -= 20 * math.log10(args.amplitude) UHDApp.__init__(self, args=args, prefix="UHD-SIGGEN") self.extra_sink = None # Allocate some attributes self._src1 = None self._src2 = None self._src = None # Initialize device: self.setup_usrp( ctor=uhd.usrp_sink, args=args, ) print("[UHD-SIGGEN] UHD Signal Generator") print("[UHD-SIGGEN] UHD Version: {ver}".format( ver=uhd.get_version_string())) print("[UHD-SIGGEN] Using USRP configuration:") print(self.get_usrp_info_string(tx_or_rx="tx")) self.usrp_description = self.get_usrp_info_string(tx_or_rx="tx", compact=True) ### Set subscribers and publishers: self.publish(SAMP_RATE_KEY, lambda: self.usrp.get_samp_rate()) self.publish(DESC_KEY, lambda: self.usrp_description) self.publish(FREQ_RANGE_KEY, lambda: self.usrp.get_freq_range(self.channels[0])) self.publish(GAIN_KEY, lambda: self.get_gain_or_power()) self[SAMP_RATE_KEY] = args.samp_rate self[TX_FREQ_KEY] = args.freq self[AMPLITUDE_KEY] = args.amplitude self[WAVEFORM_FREQ_KEY] = args.waveform_freq self[WAVEFORM_OFFSET_KEY] = args.offset self[WAVEFORM2_FREQ_KEY] = args.waveform2_freq self[DSP_FREQ_KEY] = 0 self[RF_FREQ_KEY] = 0 #subscribe set methods self.subscribe(SAMP_RATE_KEY, self.set_samp_rate) self.subscribe(GAIN_KEY, self.set_gain_or_power) self.subscribe(TX_FREQ_KEY, self.set_freq) self.subscribe(AMPLITUDE_KEY, self.set_amplitude) self.subscribe(WAVEFORM_FREQ_KEY, self.set_waveform_freq) self.subscribe(WAVEFORM2_FREQ_KEY, self.set_waveform2_freq) self.subscribe(TYPE_KEY, self.set_waveform) self.subscribe(RF_FREQ_KEY, self.update_gain_range) #force update on pubsub keys for key in (SAMP_RATE_KEY, GAIN_KEY, TX_FREQ_KEY, AMPLITUDE_KEY, WAVEFORM_FREQ_KEY, WAVEFORM_OFFSET_KEY, WAVEFORM2_FREQ_KEY): self[key] = self[key] self[TYPE_KEY] = args.type #set type last