summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am13
-rw-r--r--grc/base/Param.py2
-rw-r--r--grc/python/Constants.py1
-rw-r--r--grc/python/Platform.py3
-rw-r--r--grc/python/Port.py33
-rw-r--r--grc/python/block.dtd4
-rw-r--r--grc/todo.txt1
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