From 6fb32f05d01c23e1953fe874a33f37bc44758d9e Mon Sep 17 00:00:00 2001
From: Josh Blum
Date: Thu, 4 Oct 2012 18:49:34 -0700
Subject: grc: added optional flag to pad source and sink
---
grc/blocks/pad_sink.xml | 15 +++++++++++++++
grc/blocks/pad_source.xml | 15 +++++++++++++++
grc/python/FlowGraph.py | 1 +
grc/python/convert_hier.py | 2 ++
grc/python/flow_graph.tmpl | 4 ++--
5 files changed, 35 insertions(+), 2 deletions(-)
(limited to 'grc')
diff --git a/grc/blocks/pad_sink.xml b/grc/blocks/pad_sink.xml
index 2e9495260..7679792ee 100644
--- a/grc/blocks/pad_sink.xml
+++ b/grc/blocks/pad_sink.xml
@@ -50,6 +50,21 @@
1
int
+
+ Optional
+ optional
+ False
+ bool
+ part
+
+
+
$vlen > 0
in
diff --git a/grc/blocks/pad_source.xml b/grc/blocks/pad_source.xml
index 7b2210cbb..5d2f669f6 100644
--- a/grc/blocks/pad_source.xml
+++ b/grc/blocks/pad_source.xml
@@ -50,6 +50,21 @@
1
int
+
+ Optional
+ optional
+ False
+ bool
+ part
+
+
+
$vlen > 0
out
diff --git a/grc/python/FlowGraph.py b/grc/python/FlowGraph.py
index 89a169355..efe362760 100644
--- a/grc/python/FlowGraph.py
+++ b/grc/python/FlowGraph.py
@@ -64,6 +64,7 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
'type': str(pad.get_param('type').get_evaluated()),
'vlen': str(pad.get_param('vlen').get_evaluated()),
'size': pad.get_param('type').get_opt('size'),
+ 'optional': bool(pad.get_param('optional').get_evaluated()),
} for pad in sorted_pads]
def get_pad_sources(self):
diff --git a/grc/python/convert_hier.py b/grc/python/convert_hier.py
index f4d082d59..b609af24a 100644
--- a/grc/python/convert_hier.py
+++ b/grc/python/convert_hier.py
@@ -62,6 +62,7 @@ def convert_hier(flow_graph, python_file):
sink_n['name'] = input_sig['label']
sink_n['type'] = input_sig['type']
sink_n['vlen'] = input_sig['vlen']
+ if input_sig['optional']: sink_n['optional'] = '1'
block_n['sink'].append(sink_n)
#source data
block_n['source'] = list()
@@ -70,6 +71,7 @@ def convert_hier(flow_graph, python_file):
source_n['name'] = output_sig['label']
source_n['type'] = output_sig['type']
source_n['vlen'] = output_sig['vlen']
+ if output_sig['optional']: source_n['optional'] = '1'
block_n['source'].append(source_n)
#doc data
block_n['doc'] = "%s\n%s\n%s"%(block_author, block_desc, python_file)
diff --git a/grc/python/flow_graph.tmpl b/grc/python/flow_graph.tmpl
index 17feb01f6..57f2a4a45 100644
--- a/grc/python/flow_graph.tmpl
+++ b/grc/python/flow_graph.tmpl
@@ -91,9 +91,9 @@ class $(class_name)(gr.hier_block2):
#if len($io_sigs) == 0
gr.io_signature(0, 0, 0)#slurp
#elif len($io_sigs) == 1
-gr.io_signature(1, 1, $size_strs[0])#slurp
+gr.io_signature(0, 1, $size_strs[0])#slurp
#else
-gr.io_signaturev($(len($io_sigs)), $(len($io_sigs)), [$(', '.join($size_strs))])#slurp
+gr.io_signaturev(0, $(len($io_sigs)), [$(', '.join($size_strs))])#slurp
#end if
#end def
--
cgit