[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5560 - gnuradio/branches/developers/jcorgan/snd/gr-so
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r5560 - gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python |
Date: |
Mon, 28 May 2007 18:16:42 -0600 (MDT) |
Author: jcorgan
Date: 2007-05-28 18:16:42 -0600 (Mon, 28 May 2007)
New Revision: 5560
Added:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder_loopback.sh
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
Log:
Work in progress.
Property changes on:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python
___________________________________________________________________
Name: svn:ignore
- Makefile
Makefile.in
run_tests
*.pyc
output.*
+ Makefile
Makefile.in
run_tests
*.pyc
loopback.dat
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am
2007-05-28 21:41:22 UTC (rev 5559)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am
2007-05-29 00:16:42 UTC (rev 5560)
@@ -29,6 +29,7 @@
ourlibdir = $(grpyexecdir)
EXTRA_DIST = \
+ sounder_loopback.sh \
qa_nothing.py \
run_tests.in
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
2007-05-28 21:41:22 UTC (rev 5559)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
2007-05-29 00:16:42 UTC (rev 5560)
@@ -47,13 +47,15 @@
return (0, 0)
class sounder_tx:
- def __init__(self, verbose=False):
+ def __init__(self, loopback=False,verbose=False):
+ self._loopback=loopback
self._verbose = verbose
self._u = usrp.sink_s(fpga_filename='usrp_sounder.rbf')
- self._subdev_spec = usrp.pick_tx_subdevice(self._u)
- self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
- if self._verbose:
- print "Using", self._subdev.name(), "for sounder transmitter."
+ if not self._loopback:
+ self._subdev_spec = usrp.pick_tx_subdevice(self._u)
+ self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
+ if self._verbose:
+ print "Using", self._subdev.name(), "for sounder transmitter."
self._u.start()
def tune(self, frequency):
@@ -64,27 +66,31 @@
raise RuntimeError("Failed to set transmitter frequency.")
class sounder_rx:
- def __init__(self, subdev_spec=None, samples=-1, verbose=False,
debug=False):
+ def
__init__(self,subdev_spec=None,length=1,msgq=None,loopback=False,verbose=False,debug=False):
self._subdev_spec = subdev_spec
- self._samples = samples
+ self._length = length
+ self._msgq = msgq
+ self._loopback = loopback
self._verbose = verbose
self._debug = debug
self._fg = gr.flow_graph()
self._u = usrp.source_c(fpga_filename='usrp_sounder.rbf')
- if self._subdev_spec == None:
- self._subdev_spec = pick_subdevice(self._u)
- self._u.set_mux(usrp.determine_rx_mux_value(self._u,
self._subdev_spec))
- self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
- if self._verbose:
- print "Using", self._subdev.name(), "for sounder receiver."
- self._sink = gr.file_sink(gr.sizeof_gr_complex, "output.dat")
+ if not self._loopback:
+ if self._subdev_spec == None:
+ self._subdev_spec = pick_subdevice(self._u)
+ self._u.set_mux(usrp.determine_rx_mux_value(self._u,
self._subdev_spec))
+ self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
+ if self._verbose:
+ print "Using", self._subdev.name(), "for sounder receiver."
- if self._samples >= 0:
- self._head = gr.head(gr.sizeof_gr_complex, self._samples)
- self._fg.connect(self._u, self._head, self._sink)
- else:
- self._fg.connect(self._u, self._sink)
+ self._vblen = gr.sizeof_gr_complex*self._length
+ if self._debug:
+ print "Generating impulse vectors of length", self._length, "byte
length", self._vblen
+
+ self._s2v = gr.stream_to_vector(gr.sizeof_gr_complex, self._length)
+ self._sink = gr.message_sink(self._vblen, self._msgq, True)
+ self._fg.connect(self._u, self._s2v, self._sink)
def tune(self, frequency):
if self._verbose:
@@ -113,18 +119,18 @@
class sounder:
- def __init__(self,transmit=False,receive=False,loopback=False,
-
rx_subdev_spec=None,frequency=0.0,degree=10,samples=-1,verbose=False,debug=False):
+ def
__init__(self,transmit=False,receive=False,loopback=False,rx_subdev_spec=None,
+
frequency=0.0,degree=10,length=1,msgq=None,verbose=False,debug=False):
self._transmit = transmit
self._receive = receive
self._loopback = loopback
self._rx_subdev_spec = rx_subdev_spec
self._frequency = frequency
self._degree = degree
- self._samples = samples
+ self._length = length
+ self._msgq = msgq
self._verbose = verbose
self._debug = debug
-
self._mode = 0
self._u = None
self._trans = None
@@ -133,12 +139,13 @@
self._receiving = False
if self._transmit:
- self._trans = sounder_tx(verbose=self._verbose)
+ self._trans =
sounder_tx(loopback=self._loopback,verbose=self._verbose)
self._u = self._trans._u
if self._receive:
- self._rcvr = sounder_rx(subdev_spec=self._rx_subdev_spec,
samples=self._samples,
- verbose=self._verbose, debug=self._debug)
+ self._rcvr =
sounder_rx(subdev_spec=self._rx_subdev_spec,length=self._length,
+
msgq=self._msgq,loopback=self._loopback,verbose=self._verbose,
+ debug=self._debug)
self._u = self._rcvr._u # either receiver or transmitter object
will do
self.set_reset(True)
@@ -150,7 +157,6 @@
def tune(self, frequency):
self._frequency = frequency
- print self._rcvr
if self._rcvr:
self._rcvr.tune(frequency)
if self._trans:
@@ -184,11 +190,8 @@
self._write_mode()
self._rcvr.start()
self._receiving = True
- if self._samples >= 0:
- self._rcvr.wait()
else:
- if self._samples < 0:
- self._rcvr.stop()
+ self._rcvr.stop()
self._mode &= ~bmFR_MODE_RX
self._write_mode()
self._receiving = False
@@ -216,8 +219,10 @@
self._write_mode()
def start(self):
- self.enable_tx(self._transmit)
- self.enable_rx(self._receive)
+ if self._transmit:
+ self.enable_tx(True)
+ if self._receive:
+ self.enable_rx(True)
def __del__(self):
if self._transmitting:
Added:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder_loopback.sh
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder_loopback.sh
(rev 0)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder_loopback.sh
2007-05-29 00:16:42 UTC (rev 5560)
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Note this runs the installed script, not the one in the tree
+usrp_sounder.py -r -l -t -d12 -v -F loopback.dat -D
Property changes on:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder_loopback.sh
___________________________________________________________________
Name: svn:executable
+ *
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
2007-05-28 21:41:22 UTC (rev 5559)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
2007-05-29 00:16:42 UTC (rev 5560)
@@ -20,6 +20,7 @@
# Boston, MA 02110-1301, USA.
#
+from gnuradio import gr
from gnuradio.sounder import sounder
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
@@ -40,33 +41,61 @@
help="enable sounding transmitter")
parser.add_option("-r", "--receive", action="store_true", default=False,
help="enable sounding receiver")
- parser.add_option("-n", "--samples", type="int", default=-1,
- help="number of samples to capture on receive, default
is infinite")
parser.add_option("-l", "--loopback", action="store_true", default=False,
help="enable digital loopback, default is disabled")
parser.add_option("-v", "--verbose", action="store_true", default=False,
help="enable verbose output, default is disabled")
parser.add_option("-D", "--debug", action="store_true", default=False,
help="enable debugging output, default is disabled")
-
+ parser.add_option("-F", "--filename", default=None,
+ help="log received impulse responses to file")
+
(options, args) = parser.parse_args()
if len(args) != 0 or not (options.transmit | options.receive):
parser.print_help()
sys.exit(1)
+ if options.receive and (options.filename == None):
+ print "Must supply filename when receiving."
+ sys.exit(1)
+
+ if options.degree > 12 or options.degree < 2:
+ print "PN code degree must be between 2 and 12"
+ sys.exit(1)
+
+ length = int(2**options.degree-1)
if options.verbose:
- print "Using PN code degree of", options.degree, "length",
2**options.degree-1
+ print "Using PN code degree of", options.degree, "length", length
if options.loopback == False:
print "Sounding frequency range is", n2s(options.frequency-16e6),
"to", n2s(options.frequency+16e6)
-
+ if options.filename != None:
+ print "Logging impulse records to file: ", options.filename
+
+ msgq = gr.msg_queue()
s =
sounder(transmit=options.transmit,receive=options.receive,loopback=options.loopback,
rx_subdev_spec=options.rx_subdev_spec,frequency=options.frequency,degree=options.degree,
-
samples=options.samples,verbose=options.verbose,debug=options.debug)
+
length=length,msgq=msgq,verbose=options.verbose,debug=options.debug)
+ s.start()
- s.start()
- if options.samples < 0:
- raw_input("Press enter to exit.")
-
+ if options.receive:
+ f = open(options.filename, "wb")
+ print "Enter CTRL-C to stop."
+ try:
+ while (1):
+ msg = msgq.delete_head()
+ if msg.type() == 1:
+ break
+ rec = msg.to_string()[:length*gr.sizeof_gr_complex]
+ if options.debug:
+ print "Received impulse vector of length", len(rec)
+ f.write(rec)
+
+ except KeyboardInterrupt:
+ pass
+ else:
+ if options.transmit:
+ raw_input("Press return to exit.")
+
if __name__ == "__main__":
main()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5560 - gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python,
jcorgan <=