[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r9718 - gnuradio/branches/features/cppdb/gr-usrp/src
From: |
trondeau |
Subject: |
[Commit-gnuradio] r9718 - gnuradio/branches/features/cppdb/gr-usrp/src |
Date: |
Sat, 4 Oct 2008 15:51:48 -0600 (MDT) |
Author: trondeau
Date: 2008-10-04 15:51:44 -0600 (Sat, 04 Oct 2008)
New Revision: 9718
Modified:
gnuradio/branches/features/cppdb/gr-usrp/src/usrp1.i
gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink.i
gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.cc
gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.h
Log:
changes to make constructor arguments in python examples work fine. This hacks
around the **kwargs issue that allows Python to specify constructor arguments.
Modified: gnuradio/branches/features/cppdb/gr-usrp/src/usrp1.i
===================================================================
--- gnuradio/branches/features/cppdb/gr-usrp/src/usrp1.i 2008-10-04
19:29:45 UTC (rev 9717)
+++ gnuradio/branches/features/cppdb/gr-usrp/src/usrp1.i 2008-10-04
21:51:44 UTC (rev 9718)
@@ -53,10 +53,82 @@
%pythoncode %{
+ import re
def selected_subdev(u, spec):
return u.selected_subdev(spec)
def determine_rx_mux_value(u, spec):
return u.determine_rx_mux_value(spec)
def determine_tx_mux_value(u, spec):
return u.determine_tx_mux_value(spec)
+
+ # This fakes out the source_c(*args) that swig generates and adds **kwargs
to it.
+ # I wish I knew a cleaner way to convert the list, but I dont.
+ # This problem might be fixable by using the "-keyword" option passed to
swig during compile time.
+ # However, this function is not well documented and can cause errors with
overloaded function
+ # (like in shared_ptr.i). While this is kludgey, it solves the keyword
argument problem.
+
+ def process_args(argslist):
+ # process the doc string to get the argument names and default values
+ p = re.compile("\w+=\S*")
+ m = p.findall(argslist)
+ argslist = list()
+ argsvals = list()
+ for val in m:
+ key = val.split("=")[0]
+ value = val.split("=")[1].strip(",)")
+ try:
+ v = int(value)
+ except ValueError: # convert the hex value
+ try:
+ v = int(value,16)
+ except ValueError, e:
+ v = value.strip("\"")
+ argslist.append(key)
+ argsvals.append(v)
+
+ return (argslist, argsvals)
+
+ def source_c(*args, **kwargs):
+ constructor_args = _usrp.source_c.__doc__
+ constructor_args = constructor_args.split("->")[0]
+ argslist, argsvals = process_args(constructor_args)
+ i = 0
+ for a in argslist:
+ if(kwargs.has_key(a)):
+ argsvals[i] = kwargs[a]
+ i += 1
+ return _usrp.source_c(*argsvals)
+
+ def source_s(*args, **kwargs):
+ constructor_args = _usrp.source_s.__doc__
+ constructor_args = constructor_args.split("->")[0]
+ argslist, argsvals = process_args(constructor_args)
+ i = 0
+ for a in argslist:
+ if(kwargs.has_key(a)):
+ argsvals[i] = kwargs[a]
+ i += 1
+ return _usrp.source_s(*argsvals)
+
+ def sink_c(*args, **kwargs):
+ constructor_args = _usrp.sink_c.__doc__
+ constructor_args = constructor_args.split("->")[0]
+ argslist, argsvals = process_args(constructor_args)
+ i = 0
+ for a in argslist:
+ if(kwargs.has_key(a)):
+ argsvals[i] = kwargs[a]
+ i += 1
+ return _usrp.sink_c(*argsvals)
+
+ def sink_s(*args, **kwargs):
+ constructor_args = _usrp.sink_s.__doc__
+ constructor_args = constructor_args.split("->")[0]
+ argslist, argsvals = process_args(constructor_args)
+ i = 0
+ for a in argslist:
+ if(kwargs.has_key(a)):
+ argsvals[i] = kwargs[a]
+ i += 1
+ return _usrp.sink_s(*argsvals)
%}
Modified: gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink.i
===================================================================
--- gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink.i 2008-10-04
19:29:45 UTC (rev 9717)
+++ gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink.i 2008-10-04
21:51:44 UTC (rev 9718)
@@ -132,7 +132,7 @@
GR_SWIG_BLOCK_MAGIC(usrp1,sink_s)
usrp1_sink_s_sptr
-usrp1_make_sink_s (int which_board=0,
+usrp1_make_sink_s (int which=0,
unsigned int interp_rate=128,
int nchan=1,
int mux=0x98,
Modified: gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.cc
===================================================================
--- gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.cc
2008-10-04 19:29:45 UTC (rev 9717)
+++ gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.cc
2008-10-04 21:51:44 UTC (rev 9718)
@@ -33,7 +33,7 @@
usrp1_sink_base::usrp1_sink_base (const std::string &name,
gr_io_signature_sptr input_signature,
- int which_board,
+ int which,
unsigned int interp_rate,
int nchan,
int mux,
@@ -44,7 +44,7 @@
) throw (std::runtime_error)
: usrp1_base(name, input_signature, gr_make_io_signature (0, 0, 0)),
d_nunderruns (0),
- d_usrp(usrp_standard_tx::make (which_board, interp_rate,
+ d_usrp(usrp_standard_tx::make (which, interp_rate,
nchan, mux, fusb_block_size,
fusb_nblocks, fpga_filename,
firmware_filename))
Modified: gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.h
===================================================================
--- gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.h
2008-10-04 19:29:45 UTC (rev 9717)
+++ gnuradio/branches/features/cppdb/gr-usrp/src/usrp1_sink_base.h
2008-10-04 21:51:44 UTC (rev 9718)
@@ -38,7 +38,7 @@
protected:
usrp1_sink_base (const std::string &name,
gr_io_signature_sptr input_signature,
- int which_board,
+ int which,
unsigned int interp_rate,
int nchan,
int mux,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r9718 - gnuradio/branches/features/cppdb/gr-usrp/src,
trondeau <=