0,0 → 1,101 |
#!/usr/bin/env python |
################################################## |
# Gnuradio Python Flow Graph |
# Title: Sonar |
# Author: Kaklik |
# Description: Sonar waform generator |
# Generated: Fri Feb 20 19:31:13 2009 |
################################################## |
|
from gnuradio import audio |
from gnuradio import gr |
from gnuradio.wxgui import scopesink2 |
from grc_gnuradio import wxgui as grc_wxgui |
import wx |
|
class Sonar(grc_wxgui.top_block_gui): |
|
def __init__(self): |
grc_wxgui.top_block_gui.__init__( |
self, |
title="GRC - Executing: Sonar", |
icon="/usr/local/share/icons/hicolor/32x32/apps/gnuradio-grc.png", |
) |
|
################################################## |
# Variables |
################################################## |
self.samp_rate = samp_rate = 96000 |
self.frequency = frequency = 20000 |
self.ampl = ampl = .4 |
|
################################################## |
# Controls |
################################################## |
_frequency_control = grc_wxgui.slider_horizontal_control( |
window=self.GetWin(), |
callback=self.set_frequency, |
label='frequency', |
value=frequency, |
min=5000, |
max=30000, |
num_steps=1000, |
slider_length=500, |
) |
self.Add(_frequency_control) |
_ampl_control = grc_wxgui.slider_horizontal_control( |
window=self.GetWin(), |
callback=self.set_ampl, |
label="Volume", |
value=ampl, |
min=0, |
max=.5, |
num_steps=100, |
slider_length=200, |
) |
self.GridAdd(_ampl_control, 0, 0, 1, 2) |
|
################################################## |
# Blocks |
################################################## |
self.audio_sink = audio.sink(48000, "hw:1,0", True) |
self.audio_source_0 = audio.source(48000, "hw:1,0", True) |
self.gr_sig_source_x = gr.sig_source_f(samp_rate, gr.GR_SIN_WAVE, frequency, ampl, 0) |
self.wxgui_scopesink2_0 = scopesink2.scope_sink_f( |
self.GetWin(), |
title="Scope Plot", |
sample_rate=samp_rate*2, |
frame_decim=15, |
v_scale=None, |
t_scale=.0001, |
num_inputs=2, |
) |
self.wxgui_scopesink2_0.win.set_format_line() |
self.Add(self.wxgui_scopesink2_0.win) |
|
################################################## |
# Connections |
################################################## |
self.connect((self.gr_sig_source_x, 0), (self.audio_sink, 0)) |
self.connect((self.gr_sig_source_x, 0), (self.wxgui_scopesink2_0, 0)) |
self.connect((self.audio_source_0, 0), (self.wxgui_scopesink2_0, 1)) |
|
def set_samp_rate(self, samp_rate): |
self.samp_rate = samp_rate |
self.gr_sig_source_x.set_sampling_freq(self.samp_rate) |
self.wxgui_scopesink2_0.set_sample_rate(self.samp_rate*2) |
|
def set_frequency(self, frequency): |
self.frequency = frequency |
self.gr_sig_source_x.set_frequency(self.frequency) |
|
def set_ampl(self, ampl): |
self.ampl = ampl |
self.gr_sig_source_x.set_amplitude(self.ampl) |
|
if __name__ == '__main__': |
if gr.enable_realtime_scheduling() != gr.RT_OK: |
print "Error: failed to enable realtime scheduling." |
tb = Sonar() |
tb.Run() |
|
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |