summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortracierenea <tracie.perez@mavs.uta.edu>2016-03-23 15:40:03 -0500
committerJohnathan Corgan <johnathan@corganlabs.com>2016-03-27 06:21:47 -0700
commit65d52f79c13db74d5244f0f3dc76489d1942199b (patch)
tree645f51c7510d908757b21f2ec94ac0773c6e2ed3
parentbfeb3604f999dfb34d70979981a5fa07ea10b92a (diff)
gr-fec: Adding doc in BER Curve Gen. block re: parallelism.
Adding documentation regarding parallelism configuration requirements for using the BER Curve Gen. block. Also adding a FIXME note so that we can better address this in the future. These notes are my understanding after getting clarification from Tom on how the parallelism feature behaves in this case.
-rw-r--r--gr-fec/grc/fec_bercurve_generator.xml9
-rw-r--r--gr-fec/python/fec/bercurve_generator.py6
2 files changed, 15 insertions, 0 deletions
diff --git a/gr-fec/grc/fec_bercurve_generator.xml b/gr-fec/grc/fec_bercurve_generator.xml
index 4d0d47e15b..5dfc7c6714 100644
--- a/gr-fec/grc/fec_bercurve_generator.xml
+++ b/gr-fec/grc/fec_bercurve_generator.xml
@@ -91,5 +91,14 @@
</source>
<doc>
+ Note that this block tries to launch many parallel codes to run simultaneously. Thus, it requires that the definitions for each encoder and decoder (specified in the "Encoder list" and "Decoder list") be configured with a parallelism > 0. If the parallelism for one of the encoder or decoder definition blocks is configured to 0, you will likely see an error like:
+
+ generic_decoder=decoder_list[i],
+ TypeError: 'generic_decoder_sptr' object does not support indexing
+
+ or
+
+ generic_encoder=encoder_list[i],
+ TypeError: 'generic_encoder_sptr' object does not support indexing
</doc>
</block>
diff --git a/gr-fec/python/fec/bercurve_generator.py b/gr-fec/python/fec/bercurve_generator.py
index e67d1e17c2..3221a683ce 100644
--- a/gr-fec/python/fec/bercurve_generator.py
+++ b/gr-fec/python/fec/bercurve_generator.py
@@ -44,6 +44,12 @@ class bercurve_generator(gr.hier_block2):
self.deinterleave = blocks.deinterleave(gr.sizeof_char*1)
self.connect(self.random_gen_b_0, self.deinterleave)
self.ber_generators = []
+
+ # FIXME It would be good to check that the encoder_list and
+ # decoder_list have parallelism set to > 0. If parallelism
+ # is set to 0, a map isn't passed and an indexing error is
+ # thrown on line 53 or 54 below.
+
for i in range(0, len(esno)):
ber_generator_temp = fec_test(
generic_encoder=encoder_list[i],