[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5805 - in grc/branches/jblum_work/src: . Elements Gra
From: |
jblum |
Subject: |
[Commit-gnuradio] r5805 - in grc/branches/jblum_work/src: . Elements Graphics SignalBlockDefs |
Date: |
Wed, 20 Jun 2007 18:48:03 -0600 (MDT) |
Author: jblum
Date: 2007-06-20 18:48:03 -0600 (Wed, 20 Jun 2007)
New Revision: 5805
Modified:
grc/branches/jblum_work/src/DataTypes.py
grc/branches/jblum_work/src/Elements/GraphicalParam.py
grc/branches/jblum_work/src/Elements/Param.py
grc/branches/jblum_work/src/Elements/SignalBlock.py
grc/branches/jblum_work/src/Graphics/Dialogs.py
grc/branches/jblum_work/src/MathExprParser.py
grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py
grc/branches/jblum_work/src/SignalBlockDefs/Filters.py
grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py
grc/branches/jblum_work/src/SignalBlockDefs/Misc.py
grc/branches/jblum_work/src/SignalBlockDefs/Operators.py
grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py
grc/branches/jblum_work/src/SignalBlockDefs/Sources.py
grc/branches/jblum_work/src/SignalBlockDefs/USRP.py
Log:
variable params are noted, help dialog improvements, various code cleanups
Modified: grc/branches/jblum_work/src/DataTypes.py
===================================================================
--- grc/branches/jblum_work/src/DataTypes.py 2007-06-20 18:47:19 UTC (rev
5804)
+++ grc/branches/jblum_work/src/DataTypes.py 2007-06-21 00:48:03 UTC (rev
5805)
@@ -43,6 +43,13 @@
self.min = min
##parser messages
self.msg = ''
+ def __str__(self):
+ """!
+ Get the string representation of this data type.
+ This will be the parsed value, or an error message if invalid.
+ @return the string representation.
+ """
+ return self.msg
def set_data(self, data):
"""!
Store the data as a string.
@@ -72,7 +79,7 @@
"""
try:
value = self.parse()
- self.msg = ''
+ self.msg = str(value)
return True
except Exception, e:
self.msg = str(e)
Modified: grc/branches/jblum_work/src/Elements/GraphicalParam.py
===================================================================
--- grc/branches/jblum_work/src/Elements/GraphicalParam.py 2007-06-20
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/Elements/GraphicalParam.py 2007-06-21
00:48:03 UTC (rev 5805)
@@ -147,12 +147,11 @@
if old_data != new_data: data_type.set_data(new_data)
# Set the markup on the label, red for errors in
corresponding data type. #
cname = self.get_cname()
- if not data_type.is_valid():
- self.input.set_markup('<span
foreground="red"><b>'+cname+'</b></span>')
- if self.input.tp:
self.input.tp.set_tip(self.input.entry, data_type.msg)
- else:
- self.input.set_markup(cname)
- if self.input.tp:
self.input.tp.set_tip(self.input.entry, str(data_type.parse()))
+ if self.variable: cname = '<span
underline="low">%s</span>'%cname #alter format if the param is variable
+ if not data_type.is_valid(): self.input.set_markup('<span
foreground="red"><b>%s</b></span>'%cname)
+ else: self.input.set_markup(cname)
+ # set the tooltip #
+ if self.input.tp: self.input.tp.set_tip(self.input.entry,
str(data_type))
# execute the external callback #
if self.callback: self.callback(self)
Modified: grc/branches/jblum_work/src/Elements/Param.py
===================================================================
--- grc/branches/jblum_work/src/Elements/Param.py 2007-06-20 18:47:19 UTC
(rev 5804)
+++ grc/branches/jblum_work/src/Elements/Param.py 2007-06-21 00:48:03 UTC
(rev 5805)
@@ -22,16 +22,18 @@
class Param:
"""A param holds a single signal block parameter: a data type and a
canonical name."""
- def __init__(self, cname, data_type):
+ def __init__(self, cname, data_type, variable=False):
"""!
Param constructor. Set the data type and cname.
@param cname the canonical name
@param data_type the data type
+ @param variable true if the param can be changed at runtime
"""
self.cname = cname
self.data_type = data_type
##the graphical input object
self.input = None
+ self.variable = variable
def get_cname(self):
"""!
Modified: grc/branches/jblum_work/src/Elements/SignalBlock.py
===================================================================
--- grc/branches/jblum_work/src/Elements/SignalBlock.py 2007-06-20 18:47:19 UTC
(rev 5804)
+++ grc/branches/jblum_work/src/Elements/SignalBlock.py 2007-06-21 00:48:03 UTC
(rev 5805)
@@ -159,15 +159,16 @@
"""
self.output_sockets.append(self.output_socket_constructor(self,
cname, self.get_num_output_sockets(), data_type, optional, vlen))
- def add_param(self, cname, data_type, show_label=True, type=False,
output_sockets_controller=False, input_sockets_controller=False):
+ def add_param(self, cname, data_type, show_label=True, type=False,
output_sockets_controller=False, input_sockets_controller=False,
variable=False):
"""!
Add a parameter with its cname and data type.
@param show_label true to display the parameter in the signal
block's label
@param type true if this param is an enum to be controlled via
a keypress
@param output_sockets_controller register this parameter to set
the number of output sockets
@param input_sockets_controller register this parameter to set
the number of input sockets
+ @param variable true if the param can be changed at runtime
"""
- param = self.param_constructor(cname, data_type)
+ param = self.param_constructor(cname, data_type, variable)
if show_label: self.displayed_params.append(param)
if type: self.type_controller = data_type
if output_sockets_controller: self.output_sockets_controller =
data_type
Modified: grc/branches/jblum_work/src/Graphics/Dialogs.py
===================================================================
--- grc/branches/jblum_work/src/Graphics/Dialogs.py 2007-06-20 18:47:19 UTC
(rev 5804)
+++ grc/branches/jblum_work/src/Graphics/Dialogs.py 2007-06-21 00:48:03 UTC
(rev 5805)
@@ -178,12 +178,13 @@
('Short Vector', Colors.SHORT_VECTOR_COLOR_SPEC),
('Byte Vector', Colors.BYTE_VECTOR_COLOR_SPEC),
):
- if type(color_spec) == type(str()): markup =
'%s\n\n<b>%s</b>'%(markup, color_spec)
+ width = 20 #width in monospace characters
+ if type(color_spec) == type(str()): markup =
'%s\n\n<b>%s</b>'%(markup, color_spec.center(width, ' '))
else:
- tag,spec = color_spec
- markup = '%s\n<span
background="%s">%s</span>'%(markup, spec, tag)
+ tag,spec = color_spec
+ markup = '%s\n<span
background="%s">%s</span>'%(markup, spec, tag.center(width, ' '))
label = gtk.Label()
- label.set_markup(markup[1:]+'\n') #strip 1st newline,
append newline
+ label.set_markup('<tt>%s</tt>\n'%markup[1:]) #strip 1st
newline, append newline
label.show()
self.vbox.pack_start(label, False)
self.run()
@@ -215,9 +216,9 @@
('Flow Graph Run', 'F5'),
('Flow Graph Stop', 'F7'),
('Screen Shot', 'PrintScreen'),
- ): markup = '%s\n<b>%s:</b> %s'%(markup, action, hotkey)
+ ): markup = '%s\n<b>%s:</b>%s'%(markup, action,
hotkey.rjust(25-len(action),' '))
label = gtk.Label()
- label.set_markup(markup+'\n') #append newline
+ label.set_markup('<tt>%s</tt>\n'%markup) #append newline
label.show()
self.vbox.pack_start(label, False)
self.run()
@@ -285,8 +286,5 @@
def _handle_changed(self, param=None):
"""Handle changed in the param's entry box by updating the text
box."""
- if self.param.get_data_type().is_valid():
- text = str(self.param.get_data_type().parse())
- else: text = self.param.get_data_type().msg
- self.text_box.set_text(text)
+ self.text_box.set_text(str(self.param.get_data_type()))
\ No newline at end of file
Modified: grc/branches/jblum_work/src/MathExprParser.py
===================================================================
--- grc/branches/jblum_work/src/MathExprParser.py 2007-06-20 18:47:19 UTC
(rev 5804)
+++ grc/branches/jblum_work/src/MathExprParser.py 2007-06-21 00:48:03 UTC
(rev 5805)
@@ -432,6 +432,11 @@
elif _is_constant(element): nested_elements[i] =
_CONSTANTS[element]
# substitute in values for numbers #
elif _is_number(element): nested_elements[i] =
verify_number(element)
+ def comma_separate(ans):
+ if not _is_list(ans): ans = [ans] #must be a list
+ ans_with_commas = list()
+ for an in ans: ans_with_commas.extend([an, ','])
+ return ans_with_commas[0:-1] #remove last comma
# handle functions #
for function in _FUNCTIONS.keys():
while function in nested_elements:
@@ -442,10 +447,7 @@
try: ans = _FUNCTIONS[function](*args)
except Exception, e:
raise SyntaxError, 'Function "%s" with
arguments "%s" failed.\n\t%s'%(function, nested_elements[i+1], e)
- if not _is_list(ans): ans = [ans] # ans must be a
list
- ans_with_commas = list()
- for an in ans: ans_with_commas.extend([an, ','])
- nested_elements = nested_elements[0:i] +
ans_with_commas[0:-1] + nested_elements[i+2:]
+ nested_elements = nested_elements[0:i] +
comma_separate(ans) + nested_elements[i+2:]
# simplify operations #
for operator in _ORDER_OF_OPS:
while operator in nested_elements:
@@ -456,10 +458,7 @@
#raise error if arg1 or arg2 is None
if arg1 == None or arg2 == None: raise SyntaxError,
'Operator "%s" is missing argument.'%(operator)
ans = _handle_operation(operator, arg1, arg2)
- if not _is_list(ans): ans = [ans] # ans must be a
list
- ans_with_commas = list()
- for an in ans: ans_with_commas.extend([an, ','])
- nested_elements = nested_elements[0:i-1] +
ans_with_commas[0:-1] + nested_elements[i+2:]
+ nested_elements = nested_elements[0:i-1] +
comma_separate(ans) + nested_elements[i+2:]
# convert comma separated elements into a list #
vector = list()
last_element = None
@@ -467,11 +466,13 @@
if not _is_comma(element):
if not _is_list(element) and not _is_number(element)
and element not in _CONSTANTS.values():
raise NameError, 'Unknown symbol
"%s".'%(element)
- if last_element and not _is_comma(last_element):
+ if last_element and not _is_comma(last_element):
#elements not separated by commas
raise SyntaxError, 'Expected comma, but found
"%s".'%(element)
- vector.append(element)
- elif _is_comma(element) and _is_comma(last_element):
+ vector.append(element) #good syntax, record the element
+ elif _is_comma(element) and _is_comma(last_element): #2
commas in a row
raise SyntaxError, 'Commas must be separated by
non-commas.'
+ elif _is_comma(element) and not last_element: #a comma was
the first element
+ raise SyntaxError, 'A non-comma must precede a comma.'
last_element = element
if len(vector) == 1 and not _is_comma(last_element): return vector[0]
#return single number
return vector #otherwise return vector
@@ -492,8 +493,8 @@
return simplified
if __name__ == '__main__':
- """Evaluate expressions passed by argv1."""
+ """Evaluate expressions passed by arg1."""
import sys
if len(sys.argv) > 1: print eval_expr(sys.argv[1])
- else: print "No expressions passed!"
+ else: print "The mathematical expression parser will evaluate a string
(in quotes) passed via the command line."
\ No newline at end of file
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py 2007-06-20
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Conversions.py 2007-06-21
00:48:03 UTC (rev 5805)
@@ -144,12 +144,14 @@
def ChunksToSymbols(sb):
#name, fcn, input, output, symbol
table, dimensions
- type = Enum([('Byte->Complex', (gr.chunks_to_symbols_bc, Byte(),
Complex(), ComplexVector())),
- ('Byte->Float',
(gr.chunks_to_symbols_bf, Byte(), Float(), FloatVector())),
- ('Int->Complex',
(gr.chunks_to_symbols_ic, Int(), Complex(), ComplexVector())),
- ('Int->Float',
(gr.chunks_to_symbols_if, Int(), Float(), FloatVector())),
- ('Short->Complex',
(gr.chunks_to_symbols_sc, Short(), Complex(), ComplexVector())),
- ('Short->Float',
(gr.chunks_to_symbols_sf, Short(), Float(), FloatVector())),])
+ type = Enum([
+ ('Byte->Complex', (gr.chunks_to_symbols_bc, Byte(), Complex(),
ComplexVector())),
+ ('Byte->Float', (gr.chunks_to_symbols_bf, Byte(), Float(),
FloatVector())),
+ ('Int->Complex', (gr.chunks_to_symbols_ic, Int(), Complex(),
ComplexVector())),
+ ('Int->Float', (gr.chunks_to_symbols_if, Int(), Float(),
FloatVector())),
+ ('Short->Complex', (gr.chunks_to_symbols_sc, Short(),
Complex(), ComplexVector())),
+ ('Short->Float', (gr.chunks_to_symbols_sf, Short(), Float(),
FloatVector())),
+ ])
sb.add_input_socket('in', Variable(type, index=1))
sb.add_output_socket('out', Variable(type, index=2))
sb.add_param('Type', type, type=True)
@@ -164,7 +166,7 @@
sb.add_output_socket('out', Variable(type), vlen=vlen)
sb.add_param('Type', type, False, type=True)
sb.add_param('Num Inputs', Int(3, min=1, max=MAX_NUM_SOCKETS),
- show_label=False,
input_sockets_controller=True)
+ show_label=False, input_sockets_controller=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''1 <= Num Inputs <= %d'''%MAX_NUM_SOCKETS)
return sb, lambda fg, type, num_inputs, vlen:
gr.interleave(type.parse().get_num_bytes()*vlen.parse())
@@ -176,7 +178,7 @@
sb.add_output_socket('out', Variable(type), vlen=vlen)
sb.add_param('Type', type, False, type=True)
sb.add_param('Num Outputs', Int(3, min=1, max=MAX_NUM_SOCKETS),
- show_label=False,
output_sockets_controller=True)
+ show_label=False, output_sockets_controller=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''1 <= Num Outputs <= %d'''%MAX_NUM_SOCKETS)
return sb, lambda fg, type, num_outputs, vlen:
gr.deinterleave(type.parse().get_num_bytes()*vlen.parse())
@@ -189,7 +191,7 @@
sb.add_output_socket('out', Variable(type), vlen=vlen)
sb.add_param('Type', type, False, type=True)
sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS),
- show_label=False,
input_sockets_controller=True)
+ show_label=False, input_sockets_controller=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''\
Interleave N streams into a single stream.
@@ -204,7 +206,7 @@
sb.add_output_socket('out', Variable(type), vlen=vlen)
sb.add_param('Type', type, False, type=True)
sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS),
- show_label=False,
output_sockets_controller=True)
+ show_label=False, output_sockets_controller=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''\
Deinterleave a stream into N streams.
@@ -219,7 +221,7 @@
sb.add_output_socket('vout', Variable(type, index=0))
sb.add_param('Type', type, False, type=True)
sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS),
- show_label=False,
input_sockets_controller=True)
+ show_label=False, input_sockets_controller=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''\
Convert N streams into a vector-stream of length N.
@@ -234,7 +236,7 @@
sb.add_output_socket('out', Variable(type, index=1), vlen=vlen)
sb.add_param('Type', type, False, type=True)
sb.add_param('Num Streams', Int(3, min=1, max=MAX_NUM_SOCKETS),
- show_label=False,
output_sockets_controller=True)
+ show_label=False, output_sockets_controller=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''\
Convert a vector-stream of length N into N streams.
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Filters.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Filters.py 2007-06-20
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Filters.py 2007-06-21
00:48:03 UTC (rev 5805)
@@ -41,7 +41,7 @@
sb.add_param('Filter Type', filters, False, type=True)
sb.add_param('Type', Enum([('Decimating', 0), ('Interpolating', 1)]))
#this parses into an index for the filters Enum
sb.add_param('Decimation', Int(1, min=1))
- sb.add_param('Taps', Variable(filters, index=4, min=1))
+ sb.add_param('Taps', Variable(filters, index=4, min=1), variable=True)
sb.set_docs('''\
The decimation parameter becomes interpolation if the filter type is set to
interpolation. ''')
def make(fg, filter_type, type, decim, taps):
@@ -65,9 +65,9 @@
sb.add_param('Input Type', filters, False, type=True)
sb.add_param('Taps Type', taps) #this parses into an index for the
filters Enum
sb.add_param('Samp Rate', Float(default_samp_rate))
- sb.add_param('Center Freq', Float())
+ sb.add_param('Center Freq', Float(), variable=True)
sb.add_param('Decimation', Int(1, min=1))
- sb.add_param('Taps', Variable(taps, index=1, min=1))
+ sb.add_param('Taps', Variable(taps, index=1, min=1), variable=True)
def make(fg, filter_type, taps_type, samp_rate, center_freq, decim,
taps):
block =
filter_type.parse()[taps_type.parse()[0]](decim.parse(), taps.parse(),
center_freq.parse(), samp_rate.parse())
fg.add_callback(block.set_taps, taps)
@@ -84,7 +84,7 @@
sb.add_output_socket('out', Variable(filters, index=1))
sb.add_param('Type', filters, False, type=True)
sb.add_param('Decimation', Int(1, min=1))
- sb.add_param('Taps', Variable(filters, index=2, min=1))
+ sb.add_param('Taps', Variable(filters, index=2, min=1), variable=True)
sb.set_docs('''The type selection controls the data type of the input,
output, and taps.''')
def make(fg, type, decim, taps):
block = type.parse()[0](decim.parse(), taps.parse())
@@ -106,7 +106,7 @@
sb.add_param('Filter Type', filters, False, type=True)
sb.add_param('Interpolation', Int(1, min=1))
sb.add_param('Decimation', Int(1, min=1))
- sb.add_param('Taps', Variable(filters, index=3, min=1))
+ sb.add_param('Taps', Variable(filters, index=3, min=1), variable=True)
def make(fg, filter_type, interp, decim, taps):
block = filter_type.parse()[0](interp.parse(), decim.parse(),
taps.parse())
fg.add_callback(block.set_taps, taps)
@@ -217,17 +217,17 @@
sb.add_input_socket('in', Variable(filters, index=1))
sb.add_output_socket('out', Variable(filters, index=2))
sb.add_param('Filter Type', filters, type=True)
- sb.add_param('Gain', Float(1))
- sb.add_param('Sampling Rate', Float(default_samp_rate))
+ sb.add_param('Gain', Float(1), variable=True)
+ sb.add_param('Sampling Rate', Float(default_samp_rate), variable=True)
if taps_maker in (gr.firdes.low_pass, gr.firdes.high_pass):
- sb.add_param('Cutoff Freq', Float(1000))
+ sb.add_param('Cutoff Freq', Float(1000), variable=True)
elif taps_maker in (gr.firdes.band_pass, gr.firdes.band_reject):
- sb.add_param('Low Cutoff Freq', Float(500))
- sb.add_param('High Cutoff Freq', Float(1500))
- sb.add_param('Transition Width', Float(100))
+ sb.add_param('Low Cutoff Freq', Float(500), variable=True)
+ sb.add_param('High Cutoff Freq', Float(1500), variable=True)
+ sb.add_param('Transition Width', Float(100), variable=True)
sb.add_param('Decimation', Int(1, min=1))
sb.add_param('Window Type', windows)
- sb.add_param('Beta', Float(6.76))
+ sb.add_param('Beta', Float(6.76), variable=True)
sb.set_docs('''\
The decimation parameter becomes interpolation if the filter type is set to
interpolation.''')
@@ -240,8 +240,8 @@
sb.add_param('Filter Type', filters, type=True)
sb.add_param('Decimation', Int(1, min=1))
sb.add_param('Window Type', windows)
- sb.add_param('Num Taps', Int(20, min=0))
- sb.add_param('Beta', Float(6.76))
+ sb.add_param('Num Taps', Int(20, min=0), variable=True)
+ sb.add_param('Beta', Float(6.76), variable=True)
def make(fg, filter_type, decimation, window, ntaps, beta):
taps_args = (window, ntaps, beta)
return make_filter(fg, filter_type, decimation, taps_maker,
taps_args)
@@ -254,11 +254,11 @@
sb.add_output_socket('out', Variable(filters, index=2))
sb.add_param('Filter Type', filters, type=True)
sb.add_param('Decimation', Int(1, min=1))
- sb.add_param('Gain', Float(1))
- sb.add_param('Sampling Rate', Float(default_samp_rate))
- sb.add_param('Symbol Rate', Float(100))
- sb.add_param('Alpha', Float(6.76))
- sb.add_param('Num Taps', Int(20, min=0))
+ sb.add_param('Gain', Float(1), variable=True)
+ sb.add_param('Sampling Rate', Float(default_samp_rate), variable=True)
+ sb.add_param('Symbol Rate', Float(100), variable=True)
+ sb.add_param('Alpha', Float(6.76), variable=True)
+ sb.add_param('Num Taps', Int(20, min=0), variable=True)
def make(fg, filter_type, decimation, gain, samp_freq, symbol_rate,
alpha, ntaps):
taps_args = (gain, samp_freq, symbol_rate, alpha, ntaps)
return make_filter(fg, filter_type, decimation, taps_maker,
taps_args)
@@ -287,8 +287,8 @@
fcn = gr.simple_squelch_cc
sb.add_input_socket('in', Complex())
sb.add_output_socket('out', Complex())
- sb.add_param('Threshold (dB)', Float(30))
- sb.add_param('Alpha', Float(.5))
+ sb.add_param('Threshold (dB)', Float(30), variable=True)
+ sb.add_param('Alpha', Float(.5), variable=True)
sb.set_docs('''Power levels below the threshold are not passed
through.''')
def make(fg, threshold, alpha):
block = fcn(threshold.parse(), alpha.parse())
@@ -306,7 +306,7 @@
sb.add_input_socket('in', Variable(type, index=1))
sb.add_output_socket('out', Variable(type, index=1), vlen=vlen)
sb.add_param('Type', type, False, type=True)
- sb.add_param('Alpha', Float(1))
+ sb.add_param('Alpha', Float(1), variable=True)
sb.add_param('Vector Length', vlen)
def make(fg, type, alpha, vlen):
block = type.parse()[0](alpha.parse(), vlen.parse())
@@ -366,10 +366,10 @@
sb.add_input_socket('in', Variable(type, index=1))
sb.add_output_socket('out', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Omega', Float())
- sb.add_param('Gain Omega', Float())
- sb.add_param('Mu', Float())
- sb.add_param('Gain Mu', Float())
+ sb.add_param('Omega', Float(), variable=True)
+ sb.add_param('Gain Omega', Float(), variable=True)
+ sb.add_param('Mu', Float(), variable=True)
+ sb.add_param('Gain Mu', Float(), variable=True)
sb.add_param('Omega Relative Limit', Float())
sb.set_docs('''Mueller & Mueller clock recovery.''')
def make(fg, type, omega, gain_omega, mu, gain_mu, omega_rel_limit):
@@ -393,8 +393,8 @@
sb.add_param('FFT Size', Int(512, min=1))
sb.add_param('Window', Enum(window_choices, 1))
sb.add_param('Beta', Float(6.76))
- return sb, lambda fg, type, size, window, beta:
type.parse()[0](size.parse(), True,
-
taps_maker(window.parse(), size.parse(), beta.parse()))
+ return sb, lambda fg, type, size, window, beta: \
+ type.parse()[0](size.parse(), True, taps_maker(window.parse(),
size.parse(), beta.parse()))
def IFFT(sb):
fcn = gr.fft_vcc
@@ -404,9 +404,8 @@
sb.add_param('FFT Size', Int(512, min=1))
sb.add_param('Window', Enum(window_choices, 1), type=True)
sb.add_param('Beta', Float(6.76))
- return sb, lambda fg, size, window, beta: fcn(size.parse(), False,
-
taps_maker(window.parse(),
-
size.parse(), beta.parse()))
+ return sb, lambda fg, size, window, beta: \
+ fcn(size.parse(), False, taps_maker(window.parse(),
size.parse(), beta.parse()))
def Upsample(sb):
taps_maker = gr.firdes.window
@@ -429,7 +428,7 @@
sb.add_input_socket('in', Variable(type))
sb.add_output_socket('out', Variable(type))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Decimation (M)', Int(1, min=1))
+ sb.add_param('Decimation (M)', Int(1, min=1), variable=True)
sb.set_docs('''\
Reduce the sample rate by keeping every Mth sample.
>>> Implements the gr.keep_one_in_n block.''')
Modified: grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py
2007-06-20 18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/GraphicalSinks.py
2007-06-21 00:48:03 UTC (rev 5805)
@@ -38,8 +38,8 @@
sb.add_param('Type', type, False, type=True)
sb.add_param('Title', String('FFT'))
sb.add_param('Sampling Rate', Int(default_samp_rate))
- sb.add_param('Y per div', Int(20))
- sb.add_param('Reference Level', Int(20))
+ sb.add_param('Y per div', Int(20), variable=True)
+ sb.add_param('Reference Level', Int(20), variable=True)
sb.add_param('FFT Size', Int(512))
sb.add_param('FFT Rate', Int(15))
sb.add_param('Options', Enum([('Off', None), ('Average Values', 1),
('Peak Hold', 2)]))
@@ -67,7 +67,7 @@
sb.add_param('Type', type, False, type=True)
sb.add_param('Title', String('Waterfall'))
sb.add_param('Sampling Rate', Int(default_samp_rate))
- sb.add_param('Baseband Freq', Int(0))
+ sb.add_param('Baseband Freq', Int(0), variable=True)
sb.add_param('Y per div', Int(20))
sb.add_param('Reference Level', Int(20))
sb.add_param('FFT Size', Int(512))
@@ -142,12 +142,12 @@
sb.add_param('Title', String('Number'))
sb.add_param('Unit', String('Units'))
sb.add_param('Sampling Rate', Int(default_samp_rate))
- sb.add_param('Base Value', Float(0.0))
+ sb.add_param('Base Value', Float(0.0), variable=True)
sb.add_param('Min Value', Float(-100))
sb.add_param('Max Value', Float(100))
sb.add_param('Factor', Float(1.0))
- sb.add_param('Decimal Places', Int(6))
- sb.add_param('Reference Level', Int(50))
+ sb.add_param('Decimal Places', Int(6), variable=True)
+ sb.add_param('Reference Level', Int(50), variable=True)
sb.add_param('Number Rate', Int(15))
sb.add_param('Options', Enum([('Off', None), ('Average Values', 1),
('Peak Hold', 2)]))
sb.add_param('Gauge', Bool(true='Show', false='Hide', default=True))
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Misc.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Misc.py 2007-06-20 18:47:19 UTC
(rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Misc.py 2007-06-21 00:48:03 UTC
(rev 5805)
@@ -69,7 +69,7 @@
sb.add_input_socket('in', Variable(type, index=1))
sb.add_output_socket('out', Float())
sb.add_param('Input Type', type, False, type=True)
- sb.add_param('Alpha', Float(0.0001))
+ sb.add_param('Alpha', Float(0.0001), variable=True)
def make(fg, type, alpha):
block = type.parse()[0](alpha.parse())
fg.add_callback(block.set_alpha, alpha)
@@ -143,7 +143,7 @@
sb.add_output_socket('out', Variable(type), vlen=vlen)
sb.add_param('Type', type, False, type=True)
sb.add_param('Sampling Rate', Float(default_samp_rate))
- sb.add_param('Open', Int(1))
+ sb.add_param('Open', Int(1), variable=True)
sb.add_param('Vector Length', vlen)
sb.set_docs('''\
When open is 1, the valve will forward data.
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Operators.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Operators.py 2007-06-20
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Operators.py 2007-06-21
00:48:03 UTC (rev 5805)
@@ -61,7 +61,7 @@
sb.add_input_socket('in', Variable(type, index=1))
sb.add_output_socket('out', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Constant', Variable(type, 1, index=1))
+ sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
def make(fg, type, constant):
block = type.parse()[0](constant.parse())
fg.add_callback(block.set_k, constant)
@@ -76,7 +76,7 @@
sb.add_input_socket('vin', Variable(type, index=1))
sb.add_output_socket('vout', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Constant', Variable(type, 1, index=1))
+ sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
def make(fg, type, constant):
block = type.parse()[0](constant.parse())
fg.add_callback(block.set_k, constant)
@@ -118,7 +118,7 @@
sb.add_input_socket('in', Variable(type, index=1))
sb.add_output_socket('out', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Constant', Variable(type, 1, index=1))
+ sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
def make(fg, type, constant):
block = type.parse()[0](constant.parse())
fg.add_callback(block.set_k, constant)
@@ -133,7 +133,7 @@
sb.add_input_socket('vin', Variable(type, index=1))
sb.add_output_socket('vout', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Constant', Variable(type, 1, index=1))
+ sb.add_param('Constant', Variable(type, 1, index=1), variable=True)
def make(fg, type, constant):
block = type.parse()[0](constant.parse())
fg.add_callback(block.set_k, constant)
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py 2007-06-20
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Sinks.py 2007-06-21
00:48:03 UTC (rev 5805)
@@ -37,7 +37,6 @@
return sb, lambda fg, type, vlen:
gr.null_sink(type.parse().get_num_bytes()*vlen.parse())
def FileSink(sb):
- import Constants
type = Enum(all_choices, 1)
vlen = Int(1, min=1)
sb.add_input_socket('in', Variable(type), vlen=vlen)
@@ -148,7 +147,7 @@
item_size = type.parse().get_num_bytes()
block = gr.message_sink(item_size, msgq, True)
var_sink_thread = VariableSinkThread(fg, var_key.parse(), msgq)
- return throttle(fg, item_size, samp_rate.parse(), block, True)
+ return ThrottleHelper(fg, item_size, samp_rate.parse(), block,
True)
return sb, make
\ No newline at end of file
Modified: grc/branches/jblum_work/src/SignalBlockDefs/Sources.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/Sources.py 2007-06-20
18:47:19 UTC (rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/Sources.py 2007-06-21
00:48:03 UTC (rev 5805)
@@ -24,6 +24,7 @@
from gnuradio import gr
from SignalBlockConstants import *
from Constants import DEFAULT_FILE_PATH
+import random
MAX_SEED = 1000000 #constraint for seed generation in noise and random
source
@@ -36,10 +37,12 @@
return sb, lambda fg, type, vlen:
gr.null_source(type.parse().get_num_bytes()*vlen.parse())
def SignalSource(sb):
- type = Enum([('Complex', (gr.sig_source_c, Complex())),
- ('Float', (gr.sig_source_f, Float())),
- ('Int', (gr.sig_source_i, Int())),
- ('Short', (gr.sig_source_s,
Short())),], 1)
+ type = Enum([
+ ('Complex', (gr.sig_source_c, Complex())),
+ ('Float', (gr.sig_source_f, Float())),
+ ('Int', (gr.sig_source_i, Int())),
+ ('Short', (gr.sig_source_s, Short())),
+ ], 1)
wfm_types = [('Constant', gr.GR_CONST_WAVE),
('Cosine', gr.GR_COS_WAVE),
('Sine', gr.GR_SIN_WAVE),]
@@ -49,11 +52,11 @@
except: print ">>> sig source missing sqr, tri, saw waveform types"
sb.add_output_socket('out', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
- sb.add_param('Sampling Rate', Float(default_samp_rate))
+ sb.add_param('Sampling Rate', Float(default_samp_rate), variable=True)
sb.add_param('Wave Form', Enum(wfm_types, 1))
- sb.add_param('Frequency', Float(1000))
- sb.add_param('Ampliude', Float(1))
- sb.add_param('Offset', Variable(type, index=1))
+ sb.add_param('Frequency', Float(1000), variable=True)
+ sb.add_param('Ampliude', Float(1), variable=True)
+ sb.add_param('Offset', Variable(type, index=1), variable=True)
def make(fg, type, samp_freq, waveform, freq, amplitude, offset):
block = type.parse()[0](samp_freq.parse(), waveform.parse(),
freq.parse(), amplitude.parse(), offset.parse())
fg.add_callback(block.set_sampling_freq, samp_freq)
@@ -64,18 +67,19 @@
return sb, make
def NoiseSource(sb):
- import random
- type = Enum([('Complex', (gr.noise_source_c, Complex())),
- ('Float', (gr.noise_source_f,
Float())),
- ('Int', (gr.noise_source_i, Int())),
- ('Short', (gr.noise_source_s,
Short())),], 1)
+ type = Enum([
+ ('Complex', (gr.noise_source_c, Complex())),
+ ('Float', (gr.noise_source_f, Float())),
+ ('Int', (gr.noise_source_i, Int())),
+ ('Short', (gr.noise_source_s, Short())),
+ ], 1)
sb.add_output_socket('out', Variable(type, index=1))
sb.add_param('Type', type, False, type=True)
sb.add_param('Noise Type', Enum([('Uniform', gr.GR_UNIFORM),
('Gaussian', gr.GR_GAUSSIAN),
('Laplacian', gr.GR_LAPLACIAN),
('Impulse', gr.GR_IMPULSE)],1))
- sb.add_param('Ampliude', Float(.1))
+ sb.add_param('Ampliude', Float(.1), variable=True)
sb.add_param('Seed', Int(random.randint(0, MAX_SEED), min=0,
max=MAX_SEED))
def make(fg, type, noise_type, amplitude, seed):
block = type.parse()[0](noise_type.parse(), amplitude.parse(),
seed.parse())
@@ -84,7 +88,6 @@
return sb, make
def FileSource(sb):
- import Constants
type = Enum(all_choices, 1)
vlen = Int(1, min=1)
sb.add_output_socket('out', Variable(type), vlen=vlen)
@@ -103,11 +106,13 @@
return sb, lambda fg, samp_rate: audio.source(samp_rate.parse())
def VectorSource(sb):
- enum_all_vector_data_types = Enum([('Complex Vector',
(gr.vector_source_c, ComplexVector(), Complex())),
- ('Float
Vector', (gr.vector_source_f, FloatVector(), Float())),
- ('Int
Vector', (gr.vector_source_i, IntVector(), Int())),
- ('Short
Vector', (gr.vector_source_s, ShortVector(), Short())),
- ('Byte
Vector', (gr.vector_source_b, ByteVector(), Byte()))], 1)#index of 1 makes the
default float
+ enum_all_vector_data_types = Enum([
+ ('Complex Vector', (gr.vector_source_c, ComplexVector(),
Complex())),
+ ('Float Vector', (gr.vector_source_f, FloatVector(), Float())),
+ ('Int Vector', (gr.vector_source_i, IntVector(), Int())),
+ ('Short Vector', (gr.vector_source_s, ShortVector(), Short())),
+ ('Byte Vector', (gr.vector_source_b, ByteVector(), Byte()))
+ ], 1)#index of 1 makes the default float
sb.add_output_socket('out', Variable(enum_all_vector_data_types,
index=2))
sb.add_param('Type', enum_all_vector_data_types, False, type=True)
sb.add_param('Vector', Variable(enum_all_vector_data_types, "0, 1",
index=1))
@@ -118,11 +123,12 @@
return sb, lambda fg, type, vector, repeat:
type.parse()[0](vector.parse(), repeat.parse())
def RandomVector(sb):
- import random
- enum_all_vector_data_types = Enum([('Float', (gr.vector_source_f,
Float())),
- ('Int',
(gr.vector_source_i, Int())),
-
('Short', (gr.vector_source_s, Short())),
-
('Byte', (gr.vector_source_b, Byte()))])
+ enum_all_vector_data_types = Enum([
+ ('Float', (gr.vector_source_f, Float())),
+ ('Int', (gr.vector_source_i, Int())),
+ ('Short', (gr.vector_source_s, Short())),
+ ('Byte', (gr.vector_source_b, Byte()))
+ ])
sb.add_output_socket('out', Variable(enum_all_vector_data_types,
index=1))
sb.add_param('Type', enum_all_vector_data_types, False, type=True)
sb.add_param('Vector Length', Int(1000, min=1))
Modified: grc/branches/jblum_work/src/SignalBlockDefs/USRP.py
===================================================================
--- grc/branches/jblum_work/src/SignalBlockDefs/USRP.py 2007-06-20 18:47:19 UTC
(rev 5804)
+++ grc/branches/jblum_work/src/SignalBlockDefs/USRP.py 2007-06-21 00:48:03 UTC
(rev 5805)
@@ -54,9 +54,9 @@
('Side A:1', (0, 1)),
('Side B:1', (1, 1)),
]))
- sb.add_param('Frequency', Float())
+ sb.add_param('Frequency', Float(), variable=True)
sb.add_param('Decimation', Int(200, min=1))
- sb.add_param('Gain', Float(100))
+ sb.add_param('Gain', Float(100), variable=True)
sb.add_param('Mux', Hex())
sb.set_docs('''\
The USRP source outputs 64 Megasamples per second / decimation.
@@ -91,9 +91,9 @@
('Side A', (0, 0)),
('Side B', (1, 0)),
]))
- sb.add_param('Frequency', Float())
+ sb.add_param('Frequency', Float(), variable=True)
sb.add_param('Interpolation', Int(200, min=1))
- sb.add_param('Gain', Float(0))
+ sb.add_param('Gain', Float(0), variable=True)
sb.add_param('Mux', Hex())
sb.set_docs('''\
The USRP sink inputs 128 Megasamples per second / interpolation.
@@ -125,11 +125,11 @@
sb.add_input_socket('Bin', Variable(type, index=1))
sb.add_param('Input Type', type, False, type=True)
sb.add_param('Unit Number', Int(0, min=0))
- sb.add_param('FrequencyA', Float())
- sb.add_param('FrequencyB', Float())
+ sb.add_param('FrequencyA', Float(), variable=True)
+ sb.add_param('FrequencyB', Float(), variable=True)
sb.add_param('Interpolation', Int(200, min=1))
- sb.add_param('GainA', Float(0))
- sb.add_param('GainB', Float(0))
+ sb.add_param('GainA', Float(0), variable=True)
+ sb.add_param('GainB', Float(0), variable=True)
sb.add_param('Mux', Hex(default_mux))
sb.set_docs('''\
The USRP sink inputs 128 Megasamples per second / interpolation. \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5805 - in grc/branches/jblum_work/src: . Elements Graphics SignalBlockDefs,
jblum <=