discuss-gnuradio
[Top][All Lists]
Advanced

[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

Attachment: 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()


reply via email to

[Prev in Thread] Current Thread [Next in Thread]