summaryrefslogtreecommitdiff
path: root/grc/core
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2016-11-27 14:38:38 -0800
committerJohnathan Corgan <johnathan@corganlabs.com>2016-11-27 14:38:38 -0800
commit521729b2ccb483cbccf83fb23ffbdecbb68ad8df (patch)
treec767b47fb7d280828aa92ff4a3704a9ee0151e0d /grc/core
parente28e7d0ddc46ebe2a70e67420f243b0f5eedb281 (diff)
parentdb1a0a96785577c20dd254e6825eac050cf4d59b (diff)
Merge branch 'master' into next
Diffstat (limited to 'grc/core')
-rw-r--r--grc/core/Block.py5
-rw-r--r--grc/core/utils/epy_block_io.py8
2 files changed, 8 insertions, 5 deletions
diff --git a/grc/core/Block.py b/grc/core/Block.py
index de1d83ee9a..fba9371963 100644
--- a/grc/core/Block.py
+++ b/grc/core/Block.py
@@ -461,10 +461,11 @@ class Block(Element):
iter_ports = iter(ports)
ports_new = []
port_current = next(iter_ports, None)
- for key, port_type in port_specs:
+ for key, port_type, vlen in port_specs:
reuse_port = (
port_current is not None and
port_current.get_type() == port_type and
+ port_current.get_vlen() == vlen and
(key.isdigit() or port_current.get_key() == key)
)
if reuse_port:
@@ -475,6 +476,8 @@ class Block(Element):
if port_type == 'message':
n['name'] = key
n['optional'] = '1'
+ if vlen > 1:
+ n['vlen'] = str(vlen)
port = platform.Port(block=self, n=n, dir=direction)
ports_new.append(port)
# replace old port list with new one
diff --git a/grc/core/utils/epy_block_io.py b/grc/core/utils/epy_block_io.py
index 4eb4d6d4e5..53a1bb3c72 100644
--- a/grc/core/utils/epy_block_io.py
+++ b/grc/core/utils/epy_block_io.py
@@ -17,14 +17,15 @@ BlockIO = collections.namedtuple('BlockIO', 'name cls params sinks sources doc c
def _ports(sigs, msgs):
ports = list()
for i, dtype in enumerate(sigs):
- port_type = TYPE_MAP.get(dtype.name, None)
+ port_type = TYPE_MAP.get(dtype.base.name, None)
if not port_type:
raise ValueError("Can't map {0!r} to GRC port type".format(dtype))
- ports.append((str(i), port_type))
+ vlen = dtype.shape[0] if len(dtype.shape) > 0 else 1
+ ports.append((str(i), port_type, vlen))
for msg_key in msgs:
if msg_key == 'system':
continue
- ports.append((msg_key, 'message'))
+ ports.append((msg_key, 'message', None))
return ports
@@ -122,4 +123,3 @@ class blk(gr.sync_block):
"""
from pprint import pprint
pprint(dict(extract(blk_code)._asdict()))
-