summaryrefslogtreecommitdiff
path: root/gnuradio-examples/python/apps/hf_radio/radio.py
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-examples/python/apps/hf_radio/radio.py')
-rwxr-xr-xgnuradio-examples/python/apps/hf_radio/radio.py304
1 files changed, 0 insertions, 304 deletions
diff --git a/gnuradio-examples/python/apps/hf_radio/radio.py b/gnuradio-examples/python/apps/hf_radio/radio.py
deleted file mode 100755
index 9f444b916..000000000
--- a/gnuradio-examples/python/apps/hf_radio/radio.py
+++ /dev/null
@@ -1,304 +0,0 @@
-#!/usr/bin/env python
-
-# GUI interactions and high level connections handled here.
-#
-# Interacts with classes defined by wxGlade in ui.py.
-#
-# The usual gnuradio copyright boilerplate incorperated here by reference.
-#
-# M. Revnell 2006-Jan
-
-from threading import *
-import wx
-import wx.lib.evtmgr as em
-import time
-
-from gnuradio import gr, gru, eng_notation, optfir
-from gnuradio import audio
-from gnuradio import usrp
-from gnuradio import blks
-from gnuradio.wxgui import fftsink
-from gnuradio.wxgui import waterfallsink
-from gnuradio.wxgui import scopesink
-
-from input import *
-from output import *
-from ssbdemod import *
-from ssbagc import *
-from ui import *
-from math import log10
-
-class graph( gr.hier_block ):
- def __init__( self, fg ):
- self.graph = fg
- self.fe_decim = 250
- self.src = input( self.fe_decim )
- self.adc_rate = self.src.adc_rate
- self.fe_rate = self.adc_rate / self.fe_decim
- self.filter_decim = 1
- self.audio_decim = 16
- self.demod_rate = self.fe_rate / self.filter_decim
- self.audio_rate = self.demod_rate / self.audio_decim
-
- self.demod = ssb_demod( fg, self.demod_rate, self.audio_rate )
- self.agc = agc( fg )
- #self.agc = gr.agc_ff()
- self.out = output( fg, self.audio_rate )
-
- fg.connect( self.src.src,
- self.demod,
- self.agc,
- self.out )
-
- gr.hier_block.__init__( self, fg, None, None )
-
- def tune( self, freq ):
- fe_target = -freq
- self.src.set_freq( fe_target )
- fe_freq = self.src.src.rx_freq( 0 )
- demod_cf = fe_target - fe_freq
- self.demod.tune( demod_cf )
-
-class radio_frame( ui_frame ):
- def __init__( self, block, *args, **kwds ):
- ui_frame.__init__( self, *args, **kwds )
- self.block = block
- self.freq_disp.SetRange(0, 30e6)
- f = self.block.src.freq
- self.freq_disp.SetValue( -f )
- self.volume.SetRange( 0, 20 )
- self.pga.SetRange( 0, 20 )
- self.rssi_range = 1
- self.rssi.SetRange( self.rssi_range )
- self.agc_max.SetValue( str( self.rssi_range ) )
- self.spin_e0.SetValue( 50 )
- self.spin_e1.SetValue( 50 )
- self.spin_e2.SetValue( 50 )
- self.spin_e3.SetValue( 50 )
- self.spin_e4.SetValue( 50 )
- self.spin_e5.SetValue( 50 )
- self.spin_e6.SetValue( 50 )
- bw = 3.3e3
- self.bandwidth.SetValue( str( bw ) )
- self.block.demod.set_bw( bw )
- self.bw_spin.SetValue( 5 )
- agc_gain = self.block.agc.gain.k()
- self.agc_gain_s.SetValue( 5 )
- self.agc_gain.SetValue( str( agc_gain ) )
- agc_ref = self.block.agc.offs.k()
- self.agc_ref.SetValue( str( agc_ref ) )
- self.agc_ref_s.SetValue( 5 )
-
- self.fespectrum = fftsink.fft_sink_c(
- self.block.graph,
- self.fe_panel,
- fft_size=512,
- sample_rate = block.fe_rate,
- baseband_freq = 0,
- average = False,
- size = ( 680, 140 ) )
-
- self.ifspectrum = fftsink.fft_sink_c(
- self.block.graph,
- self.if_panel,
- fft_size=512,
- sample_rate = block.audio_rate,
- baseband_freq = 0,
- average = False,
- size = ( 680, 140 ) )
-
- em.eventManager.Register( self.fe_mouse,
- wx.EVT_MOTION,
- self.fespectrum.win )
-
- em.eventManager.Register( self.fe_click,
- wx.EVT_LEFT_DOWN,
- self.fespectrum.win )
-
- block.graph.connect( block.src.src, self.fespectrum )
- block.graph.connect( block.demod.xlate, self.ifspectrum )
-
- def agc_ref_up( self, event ):
- self.agc_ref_s.SetValue( 5 )
- r = float( self.agc_ref.GetValue() )
- r = r + 5
- self.agc_ref.SetValue( str( r ) )
- self.block.agc.offs.set_k( r )
-
- def agc_ref_down( self, event ):
- self.agc_ref_s.SetValue( 5 )
- r = float( self.agc_ref.GetValue() )
- r = r - 5
- self.agc_ref.SetValue( str( r ) )
- self.block.agc.offs.set_k( r )
-
- def agc_gain_up( self, event ):
- self.agc_gain_s.SetValue( 5 )
- g = float(self.agc_gain.GetValue())
- g = g + 10
- self.agc_gain.SetValue( str( g ) )
- self.block.agc.gain.set_k( g )
-
- def agc_gain_down( self, event ):
- self.agc_gain_s.SetValue( 5 )
- g = float(self.agc_gain.GetValue())
- g = g - 10
- self.agc_gain.SetValue( str( g ) )
- self.block.agc.gain.set_k( g )
-
- def fe_mouse( self, event ):
- f = int(self.freq_disp.GetValue())
- f = f+((event.GetX()-346.)*(400./610.))*1000
- self.fespectrum.win.SetToolTip(
- wx.ToolTip( eng_notation.num_to_str(f)))
-
- def fe_click( self, event ):
- f = int(self.freq_disp.GetValue())
- f = f+((event.GetX()-346.)*(400./610.))*1000
- self.tune( f )
-
- def setrssi( self, level ):
- if level < 0:
- level = 0
- if level > self.rssi_range:
- self.rssi_range = level
- self.rssi.SetRange( level )
- self.agc_max.SetValue( str( level ))
- self.rssi.SetValue( level )
- self.agc_level.SetValue( str( level ))
-
- def tune_evt( self, event ):
- f = self.freq_disp.GetValue()
- self.tune( f )
-
- def tune( self, frequency ):
- self.freq_disp.SetValue( frequency )
- self.block.tune( frequency )
-
- def up_e0( self, event ):
- self.spin_e0.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e0 )
-
- def down_e0( self, event ):
- self.spin_e0.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e0 )
-
- def up_e1( self, event ):
- self.spin_e1.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e1 )
-
- def down_e1( self, event ):
- self.spin_e1.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e1 )
-
- def up_e2( self, event ):
- self.spin_e2.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e2 )
-
- def down_e2( self, event ):
- self.spin_e2.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e2 )
-
- def up_e3( self, event ):
- self.spin_e3.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e3 )
-
- def down_e3( self, event ):
- self.spin_e3.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e3 )
-
- def up_e4( self, event ):
- self.spin_e4.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e4 )
-
- def down_e4( self, event ):
- self.spin_e4.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e4 )
-
- def up_e5( self, event ):
- self.spin_e5.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e5 )
-
- def down_e5( self, event ):
- self.spin_e5.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e5 )
-
- def up_e6( self, event ):
- self.spin_e6.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() + 1e6 )
-
- def down_e6( self, event ):
- self.spin_e6.SetValue( 50 )
- self.tune( self.freq_disp.GetValue() - 1e6 )
-
- def event_pga( self, event ):
- self.block.src.src.set_pga( 0, self.pga.GetValue())
-
- def event_vol( self, event ):
- self.block.out.set( self.volume.GetValue()/20.0 )
-
- def set_usb( self, event ):
- self.block.demod.upper_sb()
-
- def set_lsb( self, event ):
- self.block.demod.lower_sb()
-
- def set_am( self, event ):
- self.block.demod.set_am()
-
- def bw_up( self, event ):
- self.bw_spin.SetValue( 5 )
- bw = float(self.bandwidth.GetValue())
- bw = bw + 20.0
- if bw > 10e3:
- bw = 10e3
- self.bandwidth.SetValue( str( bw ) )
- self.block.demod.set_bw( bw )
-
- def bw_down( self, event ):
- self.bw_spin.SetValue( 5 )
- bw = float(self.bandwidth.GetValue())
- bw = bw - 20.0
- if bw < 50:
- bw = 50
- self.bandwidth.SetValue( str( bw ) )
- self.block.demod.set_bw( bw )
-
-
-class radio( wx.App ):
- def OnInit( self ):
- self.graph = gr.flow_graph()
- self.block = graph( self.graph )
- self.frame = radio_frame( self.block, None, -1, "Title" )
- self.frame.Show( True )
- self.SetTopWindow( self.frame )
- return True
-
-a=radio( 0 )
-
-l=gr.probe_signal_f()
-#l=gr.probe_avg_mag_sqrd_f(1,.001)
-a.graph.connect(a.block.agc.offs,l )
-#a.graph.connect(a.block.demod,l)
-
-def main_function():
- global a
- a.MainLoop()
-
-
-def rssi_function():
- global a
- global l
- while 1:
- level = l.level()
- wx.CallAfter( a.frame.setrssi, level )
- time.sleep( .1 )
-
-thread1 = Thread( target = main_function )
-thread2 = Thread( target = rssi_function )
-
-thread1.start()
-thread2.start()
-
-a.graph.start()
-