diff options
-rw-r--r-- | Makefile.am | 13 | ||||
-rw-r--r-- | grc/base/Param.py | 2 | ||||
-rw-r--r-- | grc/python/Constants.py | 1 | ||||
-rw-r--r-- | grc/python/Platform.py | 3 | ||||
-rw-r--r-- | grc/python/Port.py | 33 | ||||
-rw-r--r-- | grc/python/block.dtd | 4 | ||||
-rw-r--r-- | grc/todo.txt | 1 |
7 files changed, 38 insertions, 19 deletions
diff --git a/Makefile.am b/Makefile.am index e8328c263..ec71be725 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,3 +37,16 @@ EXTRA_DIST = \ SUBDIRS = @build_dirs@ DIST_SUBDIRS = @build_dirs@ @skipped_dirs@ @with_dirs@ + +if PYTHON + +export pythondir + +install-data-hook: + @if ! python -c "import gnuradio" > /dev/null 2>&1; then\ + printf "\n*** Post-Install Message ***\ + \nWarning: python could not find the gnuradio module.\ + \nMake sure that $${pythondir} is in your PYTHONPATH\n\n";\ + fi + +endif diff --git a/grc/base/Param.py b/grc/base/Param.py index 8166d54ec..93c1c52bd 100644 --- a/grc/base/Param.py +++ b/grc/base/Param.py @@ -165,6 +165,8 @@ class Param(Element): try: assert self.get_value() in self.get_option_keys() except AssertionError: raise Exception, 'The value "%s" is not in the possible values of "%s".'%(self.get_value(), self.get_option_keys()) else: self._value = value or '' + #begin the testing + self.test() def test(self): """ diff --git a/grc/python/Constants.py b/grc/python/Constants.py index 5f203237f..2f629d1bf 100644 --- a/grc/python/Constants.py +++ b/grc/python/Constants.py @@ -61,3 +61,4 @@ SHORT_VECTOR_COLOR_SPEC = '#CCCC33' BYTE_VECTOR_COLOR_SPEC = '#CC66CC' ID_COLOR_SPEC = '#DDDDDD' WILDCARD_COLOR_SPEC = '#FFFFFF' +MSG_COLOR_SPEC = '#FF6600' diff --git a/grc/python/Platform.py b/grc/python/Platform.py index f56e3fb2d..d55dbf4ce 100644 --- a/grc/python/Platform.py +++ b/grc/python/Platform.py @@ -42,7 +42,8 @@ COLORS = (#title, #color spec ('Integer Vector', Constants.INT_VECTOR_COLOR_SPEC), ('Short Vector', Constants.SHORT_VECTOR_COLOR_SPEC), ('Byte Vector', Constants.BYTE_VECTOR_COLOR_SPEC), - ('Wildcard Type', Constants.WILDCARD_COLOR_SPEC), + ('Wildcard', Constants.WILDCARD_COLOR_SPEC), + ('Message', Constants.MSG_COLOR_SPEC), ) class Platform(_Platform): diff --git a/grc/python/Port.py b/grc/python/Port.py index 5a2b047f0..c01884cc3 100644 --- a/grc/python/Port.py +++ b/grc/python/Port.py @@ -23,27 +23,23 @@ import Constants class Port(_Port): ##possible port types - TYPES = ['complex', 'float', 'int', 'short', 'byte'] + TYPES = ['complex', 'float', 'int', 'short', 'byte', 'msg'] def __init__(self, block, n): """ Make a new port from nested data. @param block the parent element @param n the nested odict - @return a new port """ - vlen = n.find('vlen') or '1' - nports = n.find('nports') or '' - optional = n.find('optional') or '' #build the port _Port.__init__( self, block=block, n=n, ) - self._nports = nports - self._vlen = vlen - self._optional = bool(optional) + self._nports = n.find('nports') or '' + self._vlen = n.find('vlen') or '1' + self._optional = bool(n.find('optional')) def validate(self): _Port.validate(self) @@ -94,6 +90,7 @@ class Port(_Port): 'int': Constants.INT_COLOR_SPEC, 'short': Constants.SHORT_COLOR_SPEC, 'byte': Constants.BYTE_COLOR_SPEC, + 'msg': Constants.MSG_COLOR_SPEC, }[self.get_type()] return {#vlen is non 1 'complex': Constants.COMPLEX_VECTOR_COLOR_SPEC, @@ -108,10 +105,10 @@ class Source(Port): def __init__(self, block, n): self._n = n #save n - #key is port index - n['key'] = str(block._source_count) - block._source_count = block._source_count + 1 - Port.__init__(self, block, n) + if n['type'] != 'msg': #key is port index + n['key'] = str(block._source_count) + block._source_count = block._source_count + 1 + Port.__init__(self, block, n) def __del__(self): self.get_parent()._source_count = self.get_parent()._source_count - 1 @@ -120,10 +117,14 @@ class Sink(Port): def __init__(self, block, n): self._n = n #save n - #key is port index - n['key'] = str(block._sink_count) - block._sink_count = block._sink_count + 1 - Port.__init__(self, block, n) + if n['type'] != 'msg': #key is port index + n['key'] = str(block._sink_count) + block._sink_count = block._sink_count + 1 + Port.__init__(self, block, n) def __del__(self): self.get_parent()._sink_count = self.get_parent()._sink_count - 1 + +#TODO merge source and sink classes into port class +#TODO check that key is only defined if and only if type is message +#TODO check that nports is undefined when type is message diff --git a/grc/python/block.dtd b/grc/python/block.dtd index 7c6c39811..8681d1255 100644 --- a/grc/python/block.dtd +++ b/grc/python/block.dtd @@ -31,8 +31,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA --> <!ELEMENT param (name, key, value?, type, hide?, option*)> <!ELEMENT option (name, key, opt*)> -<!ELEMENT sink (name, type, vlen?, nports?, optional?)> -<!ELEMENT source (name, type, vlen?, nports?, optional?)> +<!ELEMENT sink (name, key?, type, vlen?, nports?, optional?)> +<!ELEMENT source (name, key?, type, vlen?, nports?, optional?)> <!-- Bottom level elements. Character data only. diff --git a/grc/todo.txt b/grc/todo.txt index f8c8021b6..bb40e1f16 100644 --- a/grc/todo.txt +++ b/grc/todo.txt @@ -26,6 +26,7 @@ * callbacks for set average on fft, waterfall, number sinks * add units to params: Sps, Hz, dB... * command line options should replace _ with - for the --option + * add bool type to command line option store_true or store_false ################################################## # Features |