[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] 1 fine slider Element and 1 rough slider Element
From: |
Josh Blum |
Subject: |
Re: [Discuss-gnuradio] 1 fine slider Element and 1 rough slider Element to adjust ONE frequnecy |
Date: |
Fri, 27 Feb 2009 13:41:37 -0800 |
User-agent: |
Thunderbird 2.0.0.19 (X11/20090105) |
I attached an example flow graph, take a look. This way may work better
for you. -Josh
feldmaus wrote:
Hi All,
i want to make 2 sliders depending on each other.
Both schould adjust the same frequency. One Slider
for the rough counts and the other one fo the fine counts.
How to realize that ?
I tried this but without success.
Here is a part of my code,
#######################################################################
class uebertragungschar_LF_RX(grc_wxgui.top_block_gui):
def __init__(self, options):
grc_wxgui.top_block_gui.__init__(self,
__title__+' - '+__author__+' - '+__version__)
##################################################
# Parameters
##################################################
. . .
self.usrp_freq_min = options.usrp_freq_min
self.usrp_freq_max = options.usrp_freq_max
##################################################
# Variables
##################################################
self.usrp_freq = 10e3
. . .
##################################################
# Controls
##################################################
self._usrp_freq_control = grc_wxgui.slider_horizontal_control(
window=self.GetWin(),
callback=self.set_usrp_freq,
label="Oszillatorfrequenz Grob",
value=self.usrp_freq,
min=self.usrp_freq_min,
max=self.usrp_freq_max,
num_steps=290,
slider_length=400,
)
self.Add(self._usrp_freq_control)
self._usrp_freq_fine_control = grc_wxgui.slider_horizontal_control(
window=self.GetWin(),
callback=self.set_usrp_freq,
label="Oszillatorfrequenz Fein",
value=self.usrp_freq,
min=self._usrp_freq_control.get_value()-1.45e3,
max=self._usrp_freq_control.get_value()+1.45e3,
num_steps=29,
slider_length=400,
)
self.Add(self._usrp_freq_fine_control)
. . .
def set_usrp_freq(self, freq):
self.usrp_freq = freq
self.set_middle_freq_fft_plot(self.usrp_freq)
self.usrp_simple_source_x.set_frequency(self.usrp_freq)
self._usrp_freq_fine_control.set_value(freq)
. . .
if __name__ == '__main__':
parser = OptionParser()
. . .
parser.add_option("--usrp_freq_min", dest="usrp_freq_min", type="float",
default=0)
parser.add_option("--usrp_freq_max", dest="usrp_freq_max", type="float",
default=29e6)
(options, args) = parser.parse_args()
tb = uebertragungschar_LF_RX(options)
tb.Run()
#######################################################################
Regards Markus
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
adjust_fine_freq.grc
Description: application/gnuradio-grc
#!/usr/bin/env python
##################################################
# Gnuradio Python Flow Graph
# Title: Course - Fine
# Author: example
# Description: gnuradio flow graph
# Generated: Fri Feb 27 13:35:08 2009
##################################################
from gnuradio import gr
from gnuradio.wxgui import fftsink2
from grc_gnuradio import wxgui as grc_wxgui
import wx
class course_fine(grc_wxgui.top_block_gui):
def __init__(self):
grc_wxgui.top_block_gui.__init__(
self,
title="GRC - Executing: Course - Fine",
icon="/usr/local/share/icons/hicolor/32x32/apps/gnuradio-grc.png",
)
##################################################
# Variables
##################################################
self.freq_fine = freq_fine = 0
self.freq_course = freq_course = 0
self.samp_rate = samp_rate = 32000
self.freq = freq = freq_fine + freq_course*1e3
##################################################
# Controls
##################################################
_freq_fine_control = grc_wxgui.slider_horizontal_control(
window=self.GetWin(),
callback=self.set_freq_fine,
label="Freq Fine (hz)",
value=freq_fine,
min=-1000,
max=1000,
num_steps=1000,
slider_length=200,
)
self.Add(_freq_fine_control)
_freq_course_control = grc_wxgui.slider_horizontal_control(
window=self.GetWin(),
callback=self.set_freq_course,
label="Freq Course (khz)",
value=freq_course,
min=-samp_rate/2e3,
max=samp_rate/2e3,
num_steps=1000,
slider_length=200,
)
self.Add(_freq_course_control)
##################################################
# Blocks
##################################################
self.gr_sig_source_x_0 = gr.sig_source_c(samp_rate,
gr.GR_COS_WAVE, freq, 1, 0)
self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1,
samp_rate)
self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
self.GetWin(),
baseband_freq=0,
y_per_div=10,
y_divs=8,
ref_level=50,
sample_rate=samp_rate,
fft_size=1024,
fft_rate=30,
average=False,
avg_alpha=None,
title="FFT Plot",
peak_hold=False,
)
self.Add(self.wxgui_fftsink2_0.win)
##################################################
# Connections
##################################################
self.connect((self.gr_throttle_0, 0), (self.wxgui_fftsink2_0,
0))
self.connect((self.gr_sig_source_x_0, 0), (self.gr_throttle_0,
0))
def set_freq_fine(self, freq_fine):
self.freq_fine = freq_fine
self.set_freq(self.freq_fine + self.freq_course*1e3)
def set_freq_course(self, freq_course):
self.freq_course = freq_course
self.set_freq(self.freq_fine + self.freq_course*1e3)
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)
self.gr_sig_source_x_0.set_sampling_freq(self.samp_rate)
def set_freq(self, freq):
self.freq = freq
self.gr_sig_source_x_0.set_frequency(self.freq)
if __name__ == '__main__':
tb = course_fine()
tb.Run()