commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 01/02: grc: fix pad port keys in connect()


From: git
Subject: [Commit-gnuradio] [gnuradio] 01/02: grc: fix pad port keys in connect()
Date: Fri, 13 Jun 2014 22:44:32 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch maint
in repository gnuradio.

commit e620fa41fcddc467be6ddde777e702a3d4c399a9
Author: Sebastian Koslowski <address@hidden>
Date:   Fri Jun 13 10:42:29 2014 +0200

    grc: fix pad port keys in connect()
---
 grc/python/FlowGraph.py    | 17 +++++++++++++++++
 grc/python/flow_graph.tmpl |  6 ++----
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/grc/python/FlowGraph.py b/grc/python/FlowGraph.py
index bf98c7a..8573f33 100644
--- a/grc/python/FlowGraph.py
+++ b/grc/python/FlowGraph.py
@@ -107,6 +107,23 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
         pads = filter(lambda b: b.get_key() == 'pad_sink', 
self.get_enabled_blocks())
         return sorted(pads, lambda x, y: cmp(x.get_id(), y.get_id()))
 
+    def get_pad_port_global_key(self, port):
+        """
+        Get the key for a port of a pad source/sink to use in connect()
+        This takes into account that pad blocks may have multiple ports
+
+        Returns:
+            the key (str)
+        """
+        key_offset = 0
+        pads = self.get_pad_sources() if port.is_source() else 
self.get_pad_sinks()
+        for pad in pads:
+            if port.get_parent() == pad:
+                return str(key_offset + int(port.get_key()))
+            # assuming we have either only sources or sinks
+            key_offset += len(pad.get_ports())
+        return -1
+
     def get_msg_pad_sources(self):
         ps = self.get_pad_sources();
         return filter(lambda b: b.get_param('type').get_evaluated() == 
'message', ps);
diff --git a/grc/python/flow_graph.tmpl b/grc/python/flow_graph.tmpl
index 7c6998a..885fa75 100644
--- a/grc/python/flow_graph.tmpl
+++ b/grc/python/flow_graph.tmpl
@@ -178,10 +178,8 @@ gr.io_signaturev($(len($io_sigs)), $(len($io_sigs)), [$(', 
'.join($size_strs))])
 ##  However, port names for IO pads should be self.
 ########################################################
 #def make_port_sig($port)
-    #if $port.get_parent().get_key() == 'pad_source'
-(self, $flow_graph.get_pad_sources().index($port.get_parent()))#slurp
-    #elif $port.get_parent().get_key() == 'pad_sink'
-(self, $flow_graph.get_pad_sinks().index($port.get_parent()))#slurp
+    #if $port.get_parent().get_key() in ('pad_source', 'pad_sink')
+(self, $flow_graph.get_pad_port_global_key($port))#slurp
     #else
 (self.$port.get_parent().get_id(), $port.get_key())#slurp
     #end if



reply via email to

[Prev in Thread] Current Thread [Next in Thread]