[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 36/57: fec: wip: mods for ber plotting. Now
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 36/57: fec: wip: mods for ber plotting. Now adding theoretical BPSK in AWGN curve. |
Date: |
Wed, 21 May 2014 03:10:28 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
trondeau pushed a commit to branch master
in repository gnuradio.
commit cf84d24e7792aefe8ae7b24536bde23d2ae00770
Author: Tom Rondeau <address@hidden>
Date: Tue May 13 14:33:18 2014 -0400
fec: wip: mods for ber plotting. Now adding theoretical BPSK in AWGN curve.
---
gnuradio-runtime/python/gnuradio/gr/__init__.py | 6 +-
gr-fec/doc/fec.dox | 57 +
gr-fec/examples/ber_curve_gen.grc | 1461 +++++++-------------
gr-fec/examples/fecapi_decoders.grc | 1216 ++++++----------
gr-fec/examples/fecapi_tagged_decoders.grc | 837 ++++++-----
gr-fec/examples/fecapi_tagged_encoders.grc | 954 ++++++-------
gr-fec/grc/fec_bercurve_generator.xml | 46 +-
gr-fec/grc/fec_block_tree.xml | 1 -
gr-fec/grc/variable_cc_decoder_def_list.xml | 2 +-
gr-fec/grc/variable_cc_encoder_def_list.xml | 15 +-
gr-fec/grc/variable_ccsds_decoder_def_list.xml | 93 --
gr-fec/grc/variable_ccsds_encoder_def_list.xml | 15 +-
gr-fec/grc/variable_dummy_decoder_def_list.xml | 2 +-
gr-fec/grc/variable_dummy_encoder_def_list.xml | 2 +-
.../grc/variable_repetition_decoder_def_list.xml | 2 +-
.../grc/variable_repetition_encoder_def_list.xml | 2 +-
gr-fec/include/gnuradio/fec/CMakeLists.txt | 1 -
gr-fec/include/gnuradio/fec/cc_decoder.h | 19 +-
gr-fec/include/gnuradio/fec/ccsds_decoder.h | 99 --
gr-fec/lib/CMakeLists.txt | 1 -
gr-fec/lib/ccsds_decoder_impl.cc | 192 ---
gr-fec/lib/ccsds_decoder_impl.h | 83 --
gr-fec/lib/decoder_impl.cc | 8 +-
gr-fec/lib/decoder_impl.h | 1 -
gr-fec/python/fec/bercurve_generator.py | 5 +-
gr-fec/python/fec/extended_decoder.py | 8 +
gr-fec/python/fec/extended_encoder.py | 8 +
gr-fec/python/fec/fec_test.py | 17 +-
gr-fec/swig/fec_swig.i | 2 -
gr-qtgui/lib/ber_sink_b_impl.cc | 161 +--
gr-qtgui/lib/ber_sink_b_impl.h | 17 +-
31 files changed, 2033 insertions(+), 3300 deletions(-)
diff --git a/gnuradio-runtime/python/gnuradio/gr/__init__.py
b/gnuradio-runtime/python/gnuradio/gr/__init__.py
index c8b6141..4fc55c6 100644
--- a/gnuradio-runtime/python/gnuradio/gr/__init__.py
+++ b/gnuradio-runtime/python/gnuradio/gr/__init__.py
@@ -49,8 +49,10 @@ from gateway import basic_block, sync_block, decim_block,
interp_block
# Force the preference database to be initialized
prefs = prefs.singleton
-log = gr.logger("gr_log")
+log = gr.logger("log")
+log.add_console_appender(prefs().get_string("LOG", "log_level", "off"),
'gr::log %d :%p: %m%n')
log.set_level(prefs().get_string("LOG", "log_level", "notset"))
-log_debug = gr.logger("gr_log_debug")
+log_debug = gr.logger("log_debug")
+log_debug.add_console_appender(prefs().get_string("LOG", "debug_level",
"off"), 'gr::debug %d :%p: %m%n')
log_debug.set_level(prefs().get_string("LOG", "debug_level", "notset"))
diff --git a/gr-fec/doc/fec.dox b/gr-fec/doc/fec.dox
index c8114ee..3f8850e 100644
--- a/gr-fec/doc/fec.dox
+++ b/gr-fec/doc/fec.dox
@@ -21,4 +21,61 @@ by using:
help(fec)
\endcode
+
+\section fec_coding_vars Encoding/Decoding Variables
+
+\subsection fec_parallelism Parallelism
+
+The code variables in GNU Radio Companion have the ability to create
+multiple encoder/decoder variables by selecting the level of
+parallelism. It is up the encoder to understand how to handle the
+parallelism. The following discussion explains the difference between
+the two levels and how and when to use. Generally, normal applications
+will just use a single level of parallelism.
+
+The GRC variable declarations for the different coders has a setting
+for <i>Parallelism</i>, which can be either 1 or 2. If set to 1, then
+the resulting variable is a list of coder blocks with the same
+settings. If set to 2, then the resulting variable is a list of lists
+of coder blocks. The code that accepts these variables must understand
+how to handle the parallelism. Most applications would set this to 1.
+
+The standard fec.extended_encoder ("FEC Extended Encoder" in GRC) and
+fec.exended_decoder ("FEC Extended Decoder" in GRC) can handle a
+Parallelism of 1. They accept a list of coder variables as defined by
+Dimension 1 and can multithread the application based on the
+"Threading Type" setting:
+
+\li <b>None</b>: does no parallel threading of the coders. Even if
+Dimension 1 is > 1, the encoder/decoder will ignore this setting and
+only use the first object in the list.
+
+\li <b>Ordinary</b>: all "Dimension 1" number (N) of encoder/decoder
+blocks will be used in parallel. The hier_block2 will block
+deinterleave the packets into N streams (using
+gr::blocks::deinterleave with a value of blocksize as the frame length
+and no relative rate changes) and pass these to each of the N coders
+to process the frames in parallel. The output of each coder is then
+interleaved back together to make a single output stream.
+
+\li <b>Capillary</b>: all "Dimension 1" number (N) of encoder/decoder
+blocks will be used in parallel, much like in the <b>Ordinary</b>
+mode. In this mode, however, the frames get split up in a tree-like
+fashion, where each branch launches 2 more branches. This means that N
+must be a factor of 2 for this mode to work. It tends to handle the
+load of the encoders/decoders better than the <b>Ordinary</b> mode.
+
+Note that the threading modes only work when using constant-length
+frames. If using the coders in tagged stream mode where the frame
+lengths may change, the <b>Ordinary</b> and <b>Capillary</b> modes are
+not available.
+
+The GRC example "ber_curve_gen.grc" uses a Parallelism of 2. This
+creates a list of lists of coders. The first dimension of the list
+corresponds to the number of Es/N0 values being used in the BER
+simulation. This allows the application to process all values of Es/N0
+simultaneously. Dimension 2 in this case allows the same concept of
+parallelism discussed above with the <b>None</b>, <b>Ordinary</b>, and
+<b>Capillary</b> models of threading.
+
*/
diff --git a/gr-fec/examples/ber_curve_gen.grc
b/gr-fec/examples/ber_curve_gen.grc
index f4844fd..dfc57b3 100644
--- a/gr-fec/examples/ber_curve_gen.grc
+++ b/gr-fec/examples/ber_curve_gen.grc
@@ -1,19 +1,55 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon May 12 21:57:30 2014</timestamp>
+ <timestamp>Tue May 13 14:23:51 2014</timestamp>
<block>
- <key>variable</key>
+ <key>options</key>
<param>
<key>id</key>
- <value>framebits</value>
+ <value>ber_curve_gen</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>4096</value>
+ <key>title</key>
+ <value></value>
+ </param>
+ <param>
+ <key>author</key>
+ <value></value>
+ </param>
+ <param>
+ <key>description</key>
+ <value></value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>2000,2000</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>qt_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
</param>
<param>
<key>alias</key>
@@ -21,7 +57,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(160, 101)</value>
+ <value>(10, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -32,7 +68,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rate</value>
+ <value>esno_0</value>
</param>
<param>
<key>_enabled</key>
@@ -40,7 +76,7 @@
</param>
<param>
<key>value</key>
- <value>2</value>
+ <value>numpy.arange(0, 8, .5) </value>
</param>
<param>
<key>alias</key>
@@ -48,7 +84,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(249, 373)</value>
+ <value>(13, 193)</value>
</param>
<param>
<key>_rotation</key>
@@ -59,7 +95,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>polys</value>
+ <value>framebits</value>
</param>
<param>
<key>_enabled</key>
@@ -67,7 +103,7 @@
</param>
<param>
<key>value</key>
- <value>[79, 109]</value>
+ <value>4096</value>
</param>
<param>
<key>alias</key>
@@ -75,7 +111,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(110, 371)</value>
+ <value>(160, 101)</value>
</param>
<param>
<key>_rotation</key>
@@ -86,7 +122,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>k</value>
+ <value>rate</value>
</param>
<param>
<key>_enabled</key>
@@ -94,7 +130,7 @@
</param>
<param>
<key>value</key>
- <value>7</value>
+ <value>2</value>
</param>
<param>
<key>alias</key>
@@ -102,7 +138,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(16, 370)</value>
+ <value>(249, 373)</value>
</param>
<param>
<key>_rotation</key>
@@ -113,15 +149,15 @@
<key>variable</key>
<param>
<key>id</key>
- <value>esno_0</value>
+ <value>polys</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>value</key>
- <value>numpy.arange(0, 8, .5) </value>
+ <value>[79, 109]</value>
</param>
<param>
<key>alias</key>
@@ -129,7 +165,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(13, 192)</value>
+ <value>(110, 371)</value>
</param>
<param>
<key>_rotation</key>
@@ -140,7 +176,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>samp_rate_0</value>
+ <value>k</value>
</param>
<param>
<key>_enabled</key>
@@ -148,7 +184,7 @@
</param>
<param>
<key>value</key>
- <value>35000000</value>
+ <value>7</value>
</param>
<param>
<key>alias</key>
@@ -156,7 +192,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(12, 99)</value>
+ <value>(16, 370)</value>
</param>
<param>
<key>_rotation</key>
@@ -167,7 +203,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>esno_0</value>
+ <value>samp_rate_0</value>
</param>
<param>
<key>_enabled</key>
@@ -175,7 +211,7 @@
</param>
<param>
<key>value</key>
- <value>numpy.arange(0, 14, 0.5) </value>
+ <value>35000000</value>
</param>
<param>
<key>alias</key>
@@ -183,7 +219,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(14, 283)</value>
+ <value>(12, 99)</value>
</param>
<param>
<key>_rotation</key>
@@ -191,222 +227,187 @@
</param>
</block>
<block>
- <key>fec_bercurve_generator</key>
+ <key>variable_dummy_decoder_def</key>
<param>
<key>id</key>
- <value>fec_bercurve_generator_0_0</value>
+ <value>dec_dummy</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>esno</key>
- <value>esno_0</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate_0</value>
+ <key>ndim</key>
+ <value>2</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_rep</value>
+ <key>dim1</key>
+ <value>len(esno_0)</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_rep</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>puncpat</key>
- <value>'11'</value>
+ <key>framebits</key>
+ <value>framebits</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(481, 132)</value>
+ <value>(594, 604)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- <bus_source>1</bus_source>
</block>
<block>
- <key>fec_bercurve_generator</key>
+ <key>variable_dummy_encoder_def</key>
<param>
<key>id</key>
- <value>fec_bercurve_generator_0_0_0</value>
+ <value>enc_dummy</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>esno</key>
- <value>esno_0</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate_0</value>
+ <key>ndim</key>
+ <value>2</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_dummy</value>
+ <key>dim1</key>
+ <value>len(esno_0)</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_dummy</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>puncpat</key>
- <value>'11'</value>
+ <key>framebits</key>
+ <value>framebits</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(481, 9)</value>
+ <value>(592, 455)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- <bus_source>1</bus_source>
</block>
<block>
- <key>fec_bercurve_generator</key>
+ <key>variable_repetition_encoder_def</key>
<param>
<key>id</key>
- <value>fec_bercurve_generator_0</value>
+ <value>enc_rep</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>esno</key>
- <value>esno_0</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate_0</value>
+ <key>ndim</key>
+ <value>2</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_cc</value>
+ <key>dim1</key>
+ <value>len(esno_0)</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_cc</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>puncpat</key>
- <value>'11'</value>
+ <key>framebits</key>
+ <value>framebits</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>rep</key>
+ <value>3</value>
</param>
<param>
- <key>affinity</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(481, 260)</value>
+ <value>(301, 455)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- <bus_source>1</bus_source>
</block>
<block>
- <key>options</key>
+ <key>variable_cc_encoder_def</key>
<param>
<key>id</key>
- <value>ber_curve_gen</value>
+ <value>enc_cc</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>title</key>
- <value></value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>author</key>
- <value></value>
+ <key>ndim</key>
+ <value>2</value>
</param>
<param>
- <key>description</key>
- <value></value>
+ <key>dim1</key>
+ <value>len(esno_0)</value>
</param>
<param>
- <key>window_size</key>
- <value>2000,2000</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>generate_options</key>
- <value>qt_gui</value>
+ <key>framebits</key>
+ <value>framebits</value>
</param>
<param>
- <key>category</key>
- <value>Custom</value>
+ <key>k</key>
+ <value>k</value>
</param>
<param>
- <key>run_options</key>
- <value>prompt</value>
+ <key>rate</key>
+ <value>rate</value>
</param>
<param>
- <key>run</key>
- <value>True</value>
+ <key>polys</key>
+ <value>polys</value>
</param>
<param>
- <key>max_nouts</key>
+ <key>state_start</key>
<value>0</value>
</param>
<param>
- <key>realtime_scheduling</key>
- <value></value>
+ <key>mode</key>
+ <value>fec.CC_STREAMING</value>
</param>
<param>
<key>alias</key>
@@ -414,7 +415,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(10, 10)</value>
+ <value>(13, 451)</value>
</param>
<param>
<key>_rotation</key>
@@ -422,27 +423,209 @@
</param>
</block>
<block>
- <key>qtgui_bercurve_sink</key>
+ <key>variable_cc_decoder_def</key>
<param>
<key>id</key>
- <value>qtgui_bercurve_sink_0</value>
+ <value>dec_cc</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>esno</key>
- <value>esno_0</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>berminerrors</key>
- <value>10000000</value>
+ <key>ndim</key>
+ <value>2</value>
</param>
<param>
- <key>berlimit</key>
- <value>-15</value>
- </param>
+ <key>dim1</key>
+ <value>len(esno_0)</value>
+ </param>
+ <param>
+ <key>dim2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>framebits</value>
+ </param>
+ <param>
+ <key>k</key>
+ <value>k</value>
+ </param>
+ <param>
+ <key>rate</key>
+ <value>rate</value>
+ </param>
+ <param>
+ <key>polys</key>
+ <value>polys</value>
+ </param>
+ <param>
+ <key>state_start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>state_end</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>mode</key>
+ <value>fec.CC_STREAMING</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(15, 705)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_repetition_decoder_def</key>
+ <param>
+ <key>id</key>
+ <value>dec_rep</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>"ok"</value>
+ </param>
+ <param>
+ <key>ndim</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>dim1</key>
+ <value>len(esno_0)</value>
+ </param>
+ <param>
+ <key>dim2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>framebits</value>
+ </param>
+ <param>
+ <key>rep</key>
+ <value>3</value>
+ </param>
+ <param>
+ <key>prob</key>
+ <value>0.5</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(301, 626)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>fec_bercurve_generator</key>
+ <param>
+ <key>id</key>
+ <value>fec_bercurve_generator_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>esno</key>
+ <value>esno_0</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>samp_rate_0</value>
+ </param>
+ <param>
+ <key>encoder_list</key>
+ <value>enc_dummy</value>
+ </param>
+ <param>
+ <key>decoder_list</key>
+ <value>dec_dummy</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>'11'</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>"capillary"</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>-100</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(481, 9)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <bus_source>1</bus_source>
+ </block>
+ <block>
+ <key>qtgui_bercurve_sink</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_bercurve_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>esno</key>
+ <value>esno_0</value>
+ </param>
+ <param>
+ <key>berminerrors</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>berlimit</key>
+ <value>-15</value>
+ </param>
<param>
<key>num_curves</key>
<value>3</value>
@@ -717,7 +900,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(934, 58)</value>
+ <value>(925, 56)</value>
</param>
<param>
<key>_rotation</key>
@@ -726,662 +909,134 @@
<bus_sink>1</bus_sink>
</block>
<block>
- <key>variable_dummy_decoder_def</key>
+ <key>fec_bercurve_generator</key>
<param>
<key>id</key>
- <value>dec_dummy</value>
+ <value>fec_bercurve_generator_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>esno</key>
+ <value>esno_0</value>
</param>
<param>
- <key>ndim</key>
- <value>2</value>
+ <key>samp_rate</key>
+ <value>samp_rate_0</value>
</param>
<param>
- <key>dim1</key>
- <value>len(esno_0)</value>
+ <key>encoder_list</key>
+ <value>enc_rep</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>decoder_list</key>
+ <value>dec_rep</value>
</param>
<param>
- <key>framebits</key>
- <value>framebits</value>
+ <key>puncpat</key>
+ <value>'11'</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>"capillary"</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>-100</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(594, 604)</value>
+ <value>(481, 132)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
+ <bus_source>1</bus_source>
</block>
<block>
- <key>variable_dummy_encoder_def</key>
+ <key>fec_bercurve_generator</key>
<param>
<key>id</key>
- <value>enc_dummy</value>
+ <value>fec_bercurve_generator_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>esno</key>
+ <value>esno_0</value>
</param>
<param>
- <key>ndim</key>
- <value>2</value>
+ <key>samp_rate</key>
+ <value>samp_rate_0</value>
</param>
<param>
- <key>dim1</key>
- <value>len(esno_0)</value>
+ <key>encoder_list</key>
+ <value>enc_cc</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>decoder_list</key>
+ <value>dec_cc</value>
</param>
<param>
- <key>framebits</key>
- <value>framebits</value>
+ <key>puncpat</key>
+ <value>'11'</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>"capillary"</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>-100</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(592, 455)</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_repetition_encoder_def</key>
- <param>
- <key>id</key>
- <value>enc_rep</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>2</value>
- </param>
- <param>
- <key>dim1</key>
- <value>len(esno_0)</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
- </param>
- <param>
- <key>framebits</key>
- <value>framebits</value>
- </param>
- <param>
- <key>rep</key>
- <value>3</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(301, 455)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_cc_encoder_def</key>
- <param>
- <key>id</key>
- <value>enc_cc</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>2</value>
- </param>
- <param>
- <key>dim1</key>
- <value>len(esno_0)</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
- </param>
- <param>
- <key>framebits</key>
- <value>framebits</value>
- </param>
- <param>
- <key>k</key>
- <value>k</value>
- </param>
- <param>
- <key>rate</key>
- <value>rate</value>
- </param>
- <param>
- <key>polys</key>
- <value>polys</value>
- </param>
- <param>
- <key>state_start</key>
- <value>0</value>
- </param>
- <param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(13, 451)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_cc_decoder_def</key>
- <param>
- <key>id</key>
- <value>dec_cc</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>2</value>
- </param>
- <param>
- <key>dim1</key>
- <value>len(esno_0)</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
- </param>
- <param>
- <key>framebits</key>
- <value>framebits</value>
- </param>
- <param>
- <key>k</key>
- <value>k</value>
- </param>
- <param>
- <key>rate</key>
- <value>rate</value>
- </param>
- <param>
- <key>polys</key>
- <value>polys</value>
- </param>
- <param>
- <key>state_start</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>state_end</key>
- <value>-1</value>
- </param>
- <param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(15, 705)</value>
- </param>
- <param>
- <key>_rotation</key>
+ <key>maxoutbuf</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable_repetition_decoder_def</key>
- <param>
- <key>id</key>
- <value>dec_rep</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>2</value>
- </param>
- <param>
- <key>dim1</key>
- <value>len(esno_0)</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
- </param>
- <param>
- <key>framebits</key>
- <value>framebits</value>
- </param>
- <param>
- <key>rep</key>
- <value>3</value>
- </param>
- <param>
- <key>prob</key>
- <value>0.5</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
<param>
<key>_coordinate</key>
- <value>(301, 626)</value>
+ <value>(481, 260)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
+ <bus_source>1</bus_source>
</block>
<connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>56</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>1</source_key>
- <sink_key>57</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>2</source_key>
- <sink_key>58</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>3</source_key>
- <sink_key>59</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>4</source_key>
- <sink_key>60</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>5</source_key>
- <sink_key>61</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>6</source_key>
- <sink_key>62</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>7</source_key>
- <sink_key>63</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>8</source_key>
- <sink_key>64</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>9</source_key>
- <sink_key>65</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>10</source_key>
- <sink_key>66</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>11</source_key>
- <sink_key>67</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>12</source_key>
- <sink_key>68</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>13</source_key>
- <sink_key>69</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>14</source_key>
- <sink_key>70</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>15</source_key>
- <sink_key>71</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>16</source_key>
- <sink_key>72</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>17</source_key>
- <sink_key>73</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>18</source_key>
- <sink_key>74</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>19</source_key>
- <sink_key>75</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>20</source_key>
- <sink_key>76</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>21</source_key>
- <sink_key>77</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>22</source_key>
- <sink_key>78</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>23</source_key>
- <sink_key>79</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>24</source_key>
- <sink_key>80</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>25</source_key>
- <sink_key>81</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>26</source_key>
- <sink_key>82</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>27</source_key>
- <sink_key>83</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>28</source_key>
- <sink_key>84</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>29</source_key>
- <sink_key>85</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>30</source_key>
- <sink_key>86</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>31</source_key>
- <sink_key>87</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>32</source_key>
- <sink_key>88</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>33</source_key>
- <sink_key>89</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>34</source_key>
- <sink_key>90</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>35</source_key>
- <sink_key>91</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>36</source_key>
- <sink_key>92</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>37</source_key>
- <sink_key>93</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>38</source_key>
- <sink_key>94</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>39</source_key>
- <sink_key>95</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>40</source_key>
- <sink_key>96</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>41</source_key>
- <sink_key>97</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>42</source_key>
- <sink_key>98</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>43</source_key>
- <sink_key>99</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>44</source_key>
- <sink_key>100</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>45</source_key>
- <sink_key>101</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>46</source_key>
- <sink_key>102</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>47</source_key>
- <sink_key>103</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>48</source_key>
- <sink_key>104</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>49</source_key>
- <sink_key>105</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>50</source_key>
- <sink_key>106</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>51</source_key>
- <sink_key>107</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>52</source_key>
- <sink_key>108</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>53</source_key>
- <sink_key>109</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>54</source_key>
- <sink_key>110</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>55</source_key>
- <sink_key>111</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>56</source_key>
- <sink_key>169</sink_key>
- </connection>
- <connection>
<source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>0</source_key>
@@ -1577,492 +1232,402 @@
<source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>32</source_key>
+ <sink_key>96</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>0</source_key>
<sink_key>32</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>33</source_key>
+ <source_key>1</source_key>
<sink_key>33</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>34</source_key>
+ <source_key>2</source_key>
<sink_key>34</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>35</source_key>
+ <source_key>3</source_key>
<sink_key>35</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>36</source_key>
+ <source_key>4</source_key>
<sink_key>36</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>37</source_key>
+ <source_key>5</source_key>
<sink_key>37</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>38</source_key>
+ <source_key>6</source_key>
<sink_key>38</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>39</source_key>
+ <source_key>7</source_key>
<sink_key>39</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>40</source_key>
+ <source_key>8</source_key>
<sink_key>40</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>41</source_key>
+ <source_key>9</source_key>
<sink_key>41</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>42</source_key>
+ <source_key>10</source_key>
<sink_key>42</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>43</source_key>
+ <source_key>11</source_key>
<sink_key>43</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>44</source_key>
+ <source_key>12</source_key>
<sink_key>44</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>45</source_key>
+ <source_key>13</source_key>
<sink_key>45</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>46</source_key>
+ <source_key>14</source_key>
<sink_key>46</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>47</source_key>
+ <source_key>15</source_key>
<sink_key>47</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>48</source_key>
+ <source_key>16</source_key>
<sink_key>48</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>49</source_key>
+ <source_key>17</source_key>
<sink_key>49</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>50</source_key>
+ <source_key>18</source_key>
<sink_key>50</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>51</source_key>
+ <source_key>19</source_key>
<sink_key>51</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>52</source_key>
+ <source_key>20</source_key>
<sink_key>52</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>53</source_key>
+ <source_key>21</source_key>
<sink_key>53</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>54</source_key>
+ <source_key>22</source_key>
<sink_key>54</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>55</source_key>
+ <source_key>23</source_key>
<sink_key>55</sink_key>
</connection>
<connection>
- <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>24</source_key>
+ <sink_key>56</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>25</source_key>
+ <sink_key>57</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>26</source_key>
+ <sink_key>58</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>27</source_key>
+ <sink_key>59</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>28</source_key>
+ <sink_key>60</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>29</source_key>
+ <sink_key>61</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>30</source_key>
+ <sink_key>62</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+ <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+ <source_key>31</source_key>
+ <sink_key>63</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_bercurve_generator_0_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>56</source_key>
- <sink_key>168</sink_key>
+ <source_key>32</source_key>
+ <sink_key>97</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>112</sink_key>
+ <sink_key>64</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>1</source_key>
- <sink_key>113</sink_key>
+ <sink_key>65</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>2</source_key>
- <sink_key>114</sink_key>
+ <sink_key>66</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>3</source_key>
- <sink_key>115</sink_key>
+ <sink_key>67</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>4</source_key>
- <sink_key>116</sink_key>
+ <sink_key>68</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>5</source_key>
- <sink_key>117</sink_key>
+ <sink_key>69</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>6</source_key>
- <sink_key>118</sink_key>
+ <sink_key>70</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>7</source_key>
- <sink_key>119</sink_key>
+ <sink_key>71</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>8</source_key>
- <sink_key>120</sink_key>
+ <sink_key>72</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>9</source_key>
- <sink_key>121</sink_key>
+ <sink_key>73</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>10</source_key>
- <sink_key>122</sink_key>
+ <sink_key>74</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>11</source_key>
- <sink_key>123</sink_key>
+ <sink_key>75</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>12</source_key>
- <sink_key>124</sink_key>
+ <sink_key>76</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>13</source_key>
- <sink_key>125</sink_key>
+ <sink_key>77</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>14</source_key>
- <sink_key>126</sink_key>
+ <sink_key>78</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>15</source_key>
- <sink_key>127</sink_key>
+ <sink_key>79</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>16</source_key>
- <sink_key>128</sink_key>
+ <sink_key>80</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>17</source_key>
- <sink_key>129</sink_key>
+ <sink_key>81</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>18</source_key>
- <sink_key>130</sink_key>
+ <sink_key>82</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>19</source_key>
- <sink_key>131</sink_key>
+ <sink_key>83</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>20</source_key>
- <sink_key>132</sink_key>
+ <sink_key>84</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>21</source_key>
- <sink_key>133</sink_key>
+ <sink_key>85</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>22</source_key>
- <sink_key>134</sink_key>
+ <sink_key>86</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>23</source_key>
- <sink_key>135</sink_key>
+ <sink_key>87</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>24</source_key>
- <sink_key>136</sink_key>
+ <sink_key>88</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>25</source_key>
- <sink_key>137</sink_key>
+ <sink_key>89</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>26</source_key>
- <sink_key>138</sink_key>
+ <sink_key>90</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>27</source_key>
- <sink_key>139</sink_key>
+ <sink_key>91</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>28</source_key>
- <sink_key>140</sink_key>
+ <sink_key>92</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>29</source_key>
- <sink_key>141</sink_key>
+ <sink_key>93</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>30</source_key>
- <sink_key>142</sink_key>
+ <sink_key>94</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>31</source_key>
- <sink_key>143</sink_key>
+ <sink_key>95</sink_key>
</connection>
<connection>
<source_block_id>fec_bercurve_generator_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
<source_key>32</source_key>
- <sink_key>144</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>33</source_key>
- <sink_key>145</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>34</source_key>
- <sink_key>146</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>35</source_key>
- <sink_key>147</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>36</source_key>
- <sink_key>148</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>37</source_key>
- <sink_key>149</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>38</source_key>
- <sink_key>150</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>39</source_key>
- <sink_key>151</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>40</source_key>
- <sink_key>152</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>41</source_key>
- <sink_key>153</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>42</source_key>
- <sink_key>154</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>43</source_key>
- <sink_key>155</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>44</source_key>
- <sink_key>156</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>45</source_key>
- <sink_key>157</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>46</source_key>
- <sink_key>158</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>47</source_key>
- <sink_key>159</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>48</source_key>
- <sink_key>160</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>49</source_key>
- <sink_key>161</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>50</source_key>
- <sink_key>162</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>51</source_key>
- <sink_key>163</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>52</source_key>
- <sink_key>164</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>53</source_key>
- <sink_key>165</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>54</source_key>
- <sink_key>166</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>55</source_key>
- <sink_key>167</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_bercurve_generator_0</source_block_id>
- <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
- <source_key>56</source_key>
- <sink_key>170</sink_key>
+ <sink_key>98</sink_key>
</connection>
</flow_graph>
diff --git a/gr-fec/examples/fecapi_decoders.grc
b/gr-fec/examples/fecapi_decoders.grc
index 5cb00dd..41692d3 100644
--- a/gr-fec/examples/fecapi_decoders.grc
+++ b/gr-fec/examples/fecapi_decoders.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon May 12 22:15:20 2014</timestamp>
+ <timestamp>Tue May 13 17:26:19 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -454,18 +454,22 @@
</param>
</block>
<block>
- <key>digital_map_bb</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>digital_map_bb_0</value>
+ <value>blocks_char_to_float_0_2_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -485,7 +489,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(755, 730)</value>
+ <value>(942, 292)</value>
</param>
<param>
<key>_rotation</key>
@@ -493,22 +497,18 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>digital_map_bb</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1</value>
+ <value>digital_map_bb_0_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>scale</key>
- <value>1</value>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
<key>alias</key>
@@ -528,7 +528,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(938, 731)</value>
+ <value>(749, 291)</value>
</param>
<param>
<key>_rotation</key>
@@ -536,46 +536,38 @@
</param>
</block>
<block>
- <key>variable_repetition_encoder_def</key>
+ <key>blocks_unpack_k_bits_bb</key>
<param>
<key>id</key>
- <value>enc_rep</value>
+ <value>blocks_unpack_k_bits_bb_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>1</value>
- </param>
- <param>
- <key>dim1</key>
- <value>4</value>
+ <key>k</key>
+ <value>8</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>framebits</key>
- <value>frame_size*8</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>rep</key>
- <value>3</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1213, 880)</value>
+ <value>(119, 432)</value>
</param>
<param>
<key>_rotation</key>
@@ -583,50 +575,50 @@
</param>
</block>
<block>
- <key>variable_repetition_decoder_def</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>dec_rep</value>
+ <value>fec_extended_encoder_1_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>encoder_list</key>
+ <value>enc_dummy</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>threadtype</key>
+ <value>capillary</value>
</param>
<param>
- <key>dim1</key>
- <value>4</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>lentagname</key>
+ <value>None</value>
</param>
<param>
- <key>framebits</key>
- <value>frame_size*8</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>rep</key>
- <value>3</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>prob</key>
- <value>0.5</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1213, 1022)</value>
+ <value>(440, 260)</value>
</param>
<param>
<key>_rotation</key>
@@ -634,42 +626,50 @@
</param>
</block>
<block>
- <key>variable_dummy_decoder_def</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>dec_dummy</value>
+ <value>fec_extended_encoder_1_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>encoder_list</key>
+ <value>enc_rep</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>threadtype</key>
+ <value>capillary</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>lentagname</key>
+ <value>None</value>
</param>
<param>
- <key>framebits</key>
- <value>frame_size*8</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(947, 1007)</value>
+ <value>(443, 403)</value>
</param>
<param>
<key>_rotation</key>
@@ -677,42 +677,38 @@
</param>
</block>
<block>
- <key>variable_dummy_encoder_def</key>
+ <key>digital_map_bb</key>
<param>
<key>id</key>
- <value>enc_dummy</value>
+ <value>digital_map_bb_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>1</value>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>framebits</key>
- <value>frame_size*8</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(949, 881)</value>
+ <value>(750, 434)</value>
</param>
<param>
<key>_rotation</key>
@@ -720,66 +716,42 @@
</param>
</block>
<block>
- <key>variable_cc_decoder_def</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>dec_cc</value>
+ <value>blocks_char_to_float_0_2</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>dim1</key>
+ <key>scale</key>
<value>1</value>
</param>
<param>
- <key>dim2</key>
- <value>4</value>
- </param>
- <param>
- <key>framebits</key>
- <value>frame_size*8</value>
- </param>
- <param>
- <key>k</key>
- <value>k</value>
- </param>
- <param>
- <key>rate</key>
- <value>rate</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>polys</key>
- <value>polys</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>state_start</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>state_end</key>
- <value>-1</value>
- </param>
- <param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(384, 1069)</value>
+ <value>(943, 435)</value>
</param>
<param>
<key>_rotation</key>
@@ -787,54 +759,30 @@
</param>
</block>
<block>
- <key>variable_cc_encoder_def</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>enc_cc</value>
+ <value>frame_size</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>1</value>
- </param>
- <param>
- <key>dim1</key>
- <value>1</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
- </param>
- <param>
- <key>framebits</key>
- <value>frame_size*8</value>
- </param>
- <param>
- <key>k</key>
- <value>k</value>
- </param>
- <param>
- <key>rate</key>
- <value>rate</value>
+ <key>label</key>
+ <value>Frame Size</value>
</param>
<param>
- <key>polys</key>
- <value>polys</value>
+ <key>value</key>
+ <value>30</value>
</param>
<param>
- <key>state_start</key>
- <value>0</value>
+ <key>type</key>
+ <value>intx</value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
+ <key>short_id</key>
+ <value></value>
</param>
<param>
<key>alias</key>
@@ -842,7 +790,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(383, 840)</value>
+ <value>(249, 7)</value>
</param>
<param>
<key>_rotation</key>
@@ -853,7 +801,7 @@
<key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_0_2_0</value>
+ <value>blocks_char_to_float_0_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -885,7 +833,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(942, 292)</value>
+ <value>(1466, 435)</value>
</param>
<param>
<key>_rotation</key>
@@ -893,18 +841,38 @@
</param>
</block>
<block>
- <key>digital_map_bb</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>digital_map_bb_0_0_0_0</value>
+ <value>fec_extended_decoder_0_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
+ </param>
+ <param>
+ <key>decoder_list</key>
+ <value>dec_rep</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>none</value>
+ </param>
+ <param>
+ <key>ann</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>puncpat</value>
+ </param>
+ <param>
+ <key>lentagname</key>
+ <value>None</value>
</param>
<param>
<key>alias</key>
@@ -924,7 +892,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(749, 291)</value>
+ <value>(1162, 393)</value>
</param>
<param>
<key>_rotation</key>
@@ -932,18 +900,22 @@
</param>
</block>
<block>
- <key>blocks_unpack_k_bits_bb</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>blocks_unpack_k_bits_bb_0</value>
+ <value>blocks_char_to_float_0_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>k</key>
- <value>8</value>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -963,7 +935,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(119, 432)</value>
+ <value>(1465, 292)</value>
</param>
<param>
<key>_rotation</key>
@@ -971,30 +943,22 @@
</param>
</block>
<block>
- <key>fec_extended_encoder</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>fec_extended_encoder_1_0_0</value>
+ <value>blocks_char_to_float_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_dummy</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>capillary</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>lentagname</key>
- <value>None</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -1014,7 +978,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(440, 260)</value>
+ <value>(1465, 584)</value>
</param>
<param>
<key>_rotation</key>
@@ -1022,22 +986,30 @@
</param>
</block>
<block>
- <key>fec_extended_encoder</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>fec_extended_encoder_1_0</value>
+ <value>fec_extended_decoder_0_1_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_rep</value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
+ </param>
+ <param>
+ <key>decoder_list</key>
+ <value>dec_dummy</value>
</param>
<param>
<key>threadtype</key>
- <value>capillary</value>
+ <value>none</value>
+ </param>
+ <param>
+ <key>ann</key>
+ <value>None</value>
</param>
<param>
<key>puncpat</key>
@@ -1065,7 +1037,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(443, 403)</value>
+ <value>(1161, 250)</value>
</param>
<param>
<key>_rotation</key>
@@ -1073,18 +1045,38 @@
</param>
</block>
<block>
- <key>digital_map_bb</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>digital_map_bb_0_0_0</value>
+ <value>fec_extended_decoder_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
+ </param>
+ <param>
+ <key>decoder_list</key>
+ <value>dec_cc</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>none</value>
+ </param>
+ <param>
+ <key>ann</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>puncpat</value>
+ </param>
+ <param>
+ <key>lentagname</key>
+ <value>None</value>
</param>
<param>
<key>alias</key>
@@ -1104,7 +1096,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(750, 434)</value>
+ <value>(1161, 542)</value>
</param>
<param>
<key>_rotation</key>
@@ -1115,7 +1107,7 @@
<key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_0_2</value>
+ <value>blocks_char_to_float_0_1</value>
</param>
<param>
<key>_enabled</key>
@@ -1147,46 +1139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(943, 435)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>parameter</key>
- <param>
- <key>id</key>
- <value>frame_size</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Frame Size</value>
- </param>
- <param>
- <key>value</key>
- <value>30</value>
- </param>
- <param>
- <key>type</key>
- <value>intx</value>
- </param>
- <param>
- <key>short_id</key>
- <value></value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(249, 7)</value>
+ <value>(440, 184)</value>
</param>
<param>
<key>_rotation</key>
@@ -1197,7 +1150,7 @@
<key>blocks_delay</key>
<param>
<key>id</key>
- <value>blocks_delay_0_0</value>
+ <value>blocks_delay_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1237,7 +1190,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1698, 899)</value>
+ <value>(695, 184)</value>
</param>
<param>
<key>_rotation</key>
@@ -1245,21 +1198,33 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>blocks_vector_source_x</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1_0</value>
+ <value>blocks_vector_source_x_0_1_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>scale</key>
+ <key>vector</key>
+ <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0,
127]</value>
+ </param>
+ <param>
+ <key>tags</key>
+ <value>[]</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
@@ -1280,50 +1245,58 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1466, 731)</value>
+ <value>(59, 200)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>variable_ccsds_encoder_def</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_0_0_0</value>
+ <value>enc_ccsds</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
+ <key>value</key>
+ <value>"ok"</value>
+ </param>
+ <param>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>scale</key>
+ <key>dim1</key>
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>dim2</key>
+ <value>4</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>framebits</key>
+ <value>frame_size*8</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>state_start</key>
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>mode</key>
+ <value>fec.CC_STREAMING</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1466, 435)</value>
+ <value>(379, 841)</value>
</param>
<param>
<key>_rotation</key>
@@ -1331,10 +1304,10 @@
</param>
</block>
<block>
- <key>fec_extended_decoder</key>
+ <key>variable_cc_decoder_def</key>
<param>
<key>id</key>
- <value>fec_extended_decoder_0_1</value>
+ <value>dec_cc</value>
</param>
<param>
<key>_enabled</key>
@@ -1342,47 +1315,55 @@
</param>
<param>
<key>value</key>
- <value>fec_extended_decoder</value>
+ <value>"ok"</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_rep</value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>threadtype</key>
- <value>none</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>ann</key>
- <value>None</value>
+ <key>dim2</key>
+ <value>4</value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>framebits</key>
+ <value>frame_size*8</value>
</param>
<param>
- <key>lentagname</key>
- <value>None</value>
+ <key>k</key>
+ <value>k</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>rate</key>
+ <value>rate</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>polys</key>
+ <value>polys</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>state_start</key>
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>state_end</key>
+ <value>-1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(1162, 393)</value>
+ <key>mode</key>
+ <value>fec.CC_STREAMING</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(379, 1010)</value>
</param>
<param>
<key>_rotation</key>
@@ -1390,42 +1371,46 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>variable_repetition_encoder_def</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_0_0_0_0</value>
+ <value>enc_rep</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>scale</key>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>dim1</key>
+ <value>4</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>framebits</key>
+ <value>frame_size*8</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>rep</key>
+ <value>3</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1465, 292)</value>
+ <value>(936, 841)</value>
</param>
<param>
<key>_rotation</key>
@@ -1433,42 +1418,93 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>variable_repetition_decoder_def</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_0_0</value>
+ <value>dec_rep</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
+ <key>value</key>
+ <value>"ok"</value>
+ </param>
+ <param>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>scale</key>
+ <key>dim1</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>dim2</key>
<value>1</value>
</param>
<param>
+ <key>framebits</key>
+ <value>frame_size*8</value>
+ </param>
+ <param>
+ <key>rep</key>
+ <value>3</value>
+ </param>
+ <param>
+ <key>prob</key>
+ <value>0.5</value>
+ </param>
+ <param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(936, 983)</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_dummy_decoder_def</key>
+ <param>
+ <key>id</key>
+ <value>dec_dummy</value>
+ </param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>"ok"</value>
+ </param>
+ <param>
+ <key>ndim</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>dim1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>dim2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>frame_size*8</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1465, 584)</value>
+ <value>(670, 968)</value>
</param>
<param>
<key>_rotation</key>
@@ -1476,10 +1512,10 @@
</param>
</block>
<block>
- <key>fec_extended_decoder</key>
+ <key>variable_dummy_encoder_def</key>
<param>
<key>id</key>
- <value>fec_extended_decoder_0_1_0</value>
+ <value>enc_dummy</value>
</param>
<param>
<key>_enabled</key>
@@ -1487,19 +1523,54 @@
</param>
<param>
<key>value</key>
- <value>fec_extended_decoder</value>
+ <value>"ok"</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_dummy</value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>threadtype</key>
- <value>none</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>ann</key>
- <value>None</value>
+ <key>dim2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>frame_size*8</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(672, 842)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>fec_extended_encoder</key>
+ <param>
+ <key>id</key>
+ <value>fec_extended_encoder_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>encoder_list</key>
+ <value>enc_ccsds</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>capillary</value>
</param>
<param>
<key>puncpat</key>
@@ -1527,7 +1598,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1161, 250)</value>
+ <value>(441, 552)</value>
</param>
<param>
<key>_rotation</key>
@@ -1574,7 +1645,7 @@
</param>
<param>
<key>nconnections</key>
- <value>5</value>
+ <value>4</value>
</param>
<param>
<key>update_time</key>
@@ -1869,481 +1940,6 @@
<value>0</value>
</param>
</block>
- <block>
- <key>fec_extended_encoder</key>
- <param>
- <key>id</key>
- <value>fec_extended_encoder_1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>encoder_list</key>
- <value>enc_cc</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>capillary</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
- </param>
- <param>
- <key>lentagname</key>
- <value>None</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(441, 552)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>fec_extended_decoder</key>
- <param>
- <key>id</key>
- <value>fec_extended_decoder_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>fec_extended_decoder</value>
- </param>
- <param>
- <key>decoder_list</key>
- <value>dec_cc</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>none</value>
- </param>
- <param>
- <key>ann</key>
- <value>None</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
- </param>
- <param>
- <key>lentagname</key>
- <value>None</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1161, 542)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>fec_extended_encoder</key>
- <param>
- <key>id</key>
- <value>fec_extended_encoder_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>encoder_list</key>
- <value>enc_ccsds</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>capillary</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
- </param>
- <param>
- <key>lentagname</key>
- <value>None</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(440, 700)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>fec_extended_decoder</key>
- <param>
- <key>id</key>
- <value>fec_extended_decoder_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>fec_extended_decoder</value>
- </param>
- <param>
- <key>decoder_list</key>
- <value>dec_ccsds</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>capillary</value>
- </param>
- <param>
- <key>ann</key>
- <value>None</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
- </param>
- <param>
- <key>lentagname</key>
- <value>None</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1162, 689)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_char_to_float</key>
- <param>
- <key>id</key>
- <value>blocks_char_to_float_0_1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>scale</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(440, 184)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_delay</key>
- <param>
- <key>id</key>
- <value>blocks_delay_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>False</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>delay</key>
- <value>32</value>
- </param>
- <param>
- <key>num_ports</key>
- <value>1</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(695, 184)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_ccsds_encoder_def</key>
- <param>
- <key>id</key>
- <value>enc_ccsds</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>1</value>
- </param>
- <param>
- <key>dim1</key>
- <value>1</value>
- </param>
- <param>
- <key>dim2</key>
- <value>4</value>
- </param>
- <param>
- <key>framebits</key>
- <value>frame_size*8</value>
- </param>
- <param>
- <key>state_start</key>
- <value>0</value>
- </param>
- <param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(669, 841)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_ccsds_decoder_def</key>
- <param>
- <key>id</key>
- <value>dec_ccsds</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>1</value>
- </param>
- <param>
- <key>dim1</key>
- <value>1</value>
- </param>
- <param>
- <key>dim2</key>
- <value>4</value>
- </param>
- <param>
- <key>framebits</key>
- <value>frame_size*8</value>
- </param>
- <param>
- <key>state_start</key>
- <value>0</value>
- </param>
- <param>
- <key>end_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(668, 1007)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</key>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_1_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>vector</key>
- <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0,
127]</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(59, 200)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>180</value>
- </param>
- </block>
<connection>
<source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
<sink_block_id>blocks_throttle_0</sink_block_id>
@@ -2364,12 +1960,6 @@
</connection>
<connection>
<source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
- <sink_block_id>fec_extended_encoder_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
<sink_block_id>fec_extended_encoder_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
@@ -2405,24 +1995,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_encoder_0</source_block_id>
- <sink_block_id>digital_map_bb_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_map_bb_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_char_to_float_1</source_block_id>
- <sink_block_id>fec_extended_decoder_0_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>digital_map_bb_0_0_0_0</source_block_id>
<sink_block_id>blocks_char_to_float_0_2_0</sink_block_id>
<source_key>0</source_key>
@@ -2501,30 +2073,12 @@
<sink_key>3</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_1_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>4</sink_key>
- </connection>
- <connection>
<source_block_id>fec_extended_decoder_0_1_0</source_block_id>
<sink_block_id>blocks_char_to_float_0_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_1_0</source_block_id>
- <sink_block_id>blocks_delay_0_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>fec_extended_decoder_0_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>fec_extended_decoder_0</source_block_id>
<sink_block_id>blocks_char_to_float_0_0</sink_block_id>
<source_key>0</source_key>
diff --git a/gr-fec/examples/fecapi_tagged_decoders.grc
b/gr-fec/examples/fecapi_tagged_decoders.grc
index 91053cb..9779709 100644
--- a/gr-fec/examples/fecapi_tagged_decoders.grc
+++ b/gr-fec/examples/fecapi_tagged_decoders.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon May 12 22:12:23 2014</timestamp>
+ <timestamp>Tue May 13 16:28:59 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -68,7 +68,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>k</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -76,7 +76,7 @@
</param>
<param>
<key>value</key>
- <value>7</value>
+ <value>50000</value>
</param>
<param>
<key>alias</key>
@@ -84,7 +84,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(384, 683)</value>
+ <value>(9, 95)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +95,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>polys</value>
+ <value>length_tag</value>
</param>
<param>
<key>_enabled</key>
@@ -103,7 +103,7 @@
</param>
<param>
<key>value</key>
- <value>[109, 79]</value>
+ <value>"packet_len"</value>
</param>
<param>
<key>alias</key>
@@ -111,7 +111,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(301, 768)</value>
+ <value>(202, 112)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,15 +122,15 @@
<key>variable</key>
<param>
<key>id</key>
- <value>polys</value>
+ <value>k</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>value</key>
- <value>[79, 109]</value>
+ <value>7</value>
</param>
<param>
<key>alias</key>
@@ -138,7 +138,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(443, 765)</value>
+ <value>(352, 1017)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +149,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rate</value>
+ <value>polys</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +157,7 @@
</param>
<param>
<key>value</key>
- <value>2</value>
+ <value>[109, 79]</value>
</param>
<param>
<key>alias</key>
@@ -165,7 +165,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(485, 680)</value>
+ <value>(269, 1102)</value>
</param>
<param>
<key>_rotation</key>
@@ -176,15 +176,15 @@
<key>variable</key>
<param>
<key>id</key>
- <value>length_tag</value>
+ <value>polys</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
<key>value</key>
- <value>"packet_len"</value>
+ <value>[79, 109]</value>
</param>
<param>
<key>alias</key>
@@ -192,7 +192,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(202, 112)</value>
+ <value>(411, 1099)</value>
</param>
<param>
<key>_rotation</key>
@@ -203,7 +203,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>rate</value>
</param>
<param>
<key>_enabled</key>
@@ -211,7 +211,7 @@
</param>
<param>
<key>value</key>
- <value>50000</value>
+ <value>2</value>
</param>
<param>
<key>alias</key>
@@ -219,7 +219,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(9, 95)</value>
+ <value>(453, 1014)</value>
</param>
<param>
<key>_rotation</key>
@@ -372,50 +372,26 @@
</param>
</block>
<block>
- <key>blocks_stream_to_tagged_stream</key>
+ <key>blocks_ctrlport_monitor_performance</key>
<param>
<key>id</key>
- <value>blocks_stream_to_tagged_stream_0_0</value>
+ <value>blocks_ctrlport_monitor_performance_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>packet_len</key>
- <value>frame_size*8</value>
+ <value>False</value>
</param>
<param>
- <key>len_tag_key</key>
- <value>length_tag</value>
+ <key>en</key>
+ <value>True</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(595, 331)</value>
+ <value>(651, 15)</value>
</param>
<param>
<key>_rotation</key>
@@ -423,73 +399,30 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>puncpat</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
- </param>
- <param>
- <key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>256</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>1000</value>
- </param>
- <param>
- <key>repeat</key>
<value>True</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
+ <key>label</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(99, 633)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>180</value>
- </param>
- </block>
- <block>
- <key>blocks_ctrlport_monitor_performance</key>
- <param>
- <key>id</key>
- <value>blocks_ctrlport_monitor_performance_0</value>
+ <key>value</key>
+ <value>'11'</value>
</param>
<param>
- <key>_enabled</key>
- <value>False</value>
+ <key>type</key>
+ <value>string</value>
</param>
<param>
- <key>en</key>
- <value>True</value>
+ <key>short_id</key>
+ <value></value>
</param>
<param>
<key>alias</key>
@@ -497,7 +430,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(651, 15)</value>
+ <value>(248, 9)</value>
</param>
<param>
<key>_rotation</key>
@@ -508,7 +441,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>puncpat</value>
+ <value>frame_size</value>
</param>
<param>
<key>_enabled</key>
@@ -516,15 +449,15 @@
</param>
<param>
<key>label</key>
- <value></value>
+ <value>Frame Size</value>
</param>
<param>
<key>value</key>
- <value>'11'</value>
+ <value>30</value>
</param>
<param>
<key>type</key>
- <value>string</value>
+ <value>intx</value>
</param>
<param>
<key>short_id</key>
@@ -536,7 +469,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(248, 9)</value>
+ <value>(484, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -547,7 +480,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>frame_size</value>
+ <value>MTU</value>
</param>
<param>
<key>_enabled</key>
@@ -555,11 +488,11 @@
</param>
<param>
<key>label</key>
- <value>Frame Size</value>
+ <value>MTU</value>
</param>
<param>
<key>value</key>
- <value>30</value>
+ <value>1000</value>
</param>
<param>
<key>type</key>
@@ -575,7 +508,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(484, 10)</value>
+ <value>(365, 9)</value>
</param>
<param>
<key>_rotation</key>
@@ -583,29 +516,29 @@
</param>
</block>
<block>
- <key>fec_extended_encoder</key>
+ <key>blocks_stream_to_tagged_stream</key>
<param>
<key>id</key>
- <value>fec_extended_encoder_0</value>
+ <value>blocks_stream_to_tagged_stream_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_rep</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>threadtype</key>
- <value>none</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>packet_len</key>
+ <value>frame_size*8</value>
</param>
<param>
- <key>lentagname</key>
+ <key>len_tag_key</key>
<value>length_tag</value>
</param>
<param>
@@ -626,7 +559,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(138, 474)</value>
+ <value>(595, 331)</value>
</param>
<param>
<key>_rotation</key>
@@ -634,57 +567,34 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>MTU</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>MTU</value>
- </param>
- <param>
- <key>value</key>
- <value>1000</value>
+ <value>False</value>
</param>
<param>
<key>type</key>
- <value>intx</value>
- </param>
- <param>
- <key>short_id</key>
- <value></value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(365, 9)</value>
+ <value>byte</value>
</param>
<param>
- <key>_rotation</key>
+ <key>min</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>digital_map_bb</key>
<param>
- <key>id</key>
- <value>digital_map_bb_0</value>
+ <key>max</key>
+ <value>256</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>num_samps</key>
+ <value>1000</value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>alias</key>
@@ -704,18 +614,18 @@
</param>
<param>
<key>_coordinate</key>
- <value>(493, 506)</value>
+ <value>(387, 203)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
<key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1</value>
+ <value>blocks_char_to_float_1_0</value>
</param>
<param>
<key>_enabled</key>
@@ -747,7 +657,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(678, 506)</value>
+ <value>(1242, 536)</value>
</param>
<param>
<key>_rotation</key>
@@ -758,7 +668,7 @@
<key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1_0</value>
+ <value>blocks_char_to_float_1</value>
</param>
<param>
<key>_enabled</key>
@@ -790,7 +700,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1242, 506)</value>
+ <value>(678, 536)</value>
</param>
<param>
<key>_rotation</key>
@@ -798,38 +708,18 @@
</param>
</block>
<block>
- <key>fec_extended_decoder</key>
+ <key>digital_map_bb</key>
<param>
<key>id</key>
- <value>fec_extended_decoder_0_0</value>
+ <value>digital_map_bb_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>fec_extended_decoder</value>
- </param>
- <param>
- <key>decoder_list</key>
- <value>dec_rep</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>none</value>
- </param>
- <param>
- <key>ann</key>
- <value>None</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
- </param>
- <param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
<key>alias</key>
@@ -849,7 +739,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(900, 464)</value>
+ <value>(493, 536)</value>
</param>
<param>
<key>_rotation</key>
@@ -857,334 +747,332 @@
</param>
</block>
<block>
- <key>qtgui_time_sink_x</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>qtgui_time_sink_x_0</value>
+ <value>blocks_char_to_float_1_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>name</key>
- <value>QT GUI Plot</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
- <key>size</key>
- <value>2048</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>srate</key>
- <value>samp_rate</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>autoscale</key>
- <value>False</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ymin</key>
- <value>-0.5</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ymax</key>
- <value>1.5</value>
+ <key>_coordinate</key>
+ <value>(1231, 689)</value>
</param>
<param>
- <key>nconnections</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>fec_extended_decoder</key>
<param>
- <key>update_time</key>
- <value>0.10</value>
+ <key>id</key>
+ <value>fec_extended_decoder_0_0_0</value>
</param>
<param>
- <key>entags</key>
+ <key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
</param>
<param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_FREE</value>
+ <key>decoder_list</key>
+ <value>dec_cc</value>
</param>
<param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
+ <key>threadtype</key>
+ <value>none</value>
</param>
<param>
- <key>tr_level</key>
- <value>0.0</value>
+ <key>ann</key>
+ <value>None</value>
</param>
<param>
- <key>tr_delay</key>
- <value>0</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>tr_chan</key>
- <value>0</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>tr_tag</key>
- <value>""</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>label1</key>
- <value>Input</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>width1</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>color1</key>
- <value>"blue"</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>style1</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(899, 647)</value>
</param>
<param>
- <key>marker1</key>
- <value>-1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
<param>
- <key>alpha1</key>
- <value>1.0</value>
+ <key>id</key>
+ <value>blocks_char_to_float_1_1</value>
</param>
<param>
- <key>label2</key>
- <value>CC</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>width2</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>color2</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style2</key>
+ <key>scale</key>
<value>1</value>
</param>
<param>
- <key>marker2</key>
- <value>-1</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>0.6</value>
- </param>
- <param>
- <key>label3</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width3</key>
- <value>1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>color3</key>
- <value>"green"</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>style3</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>marker3</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(685, 689)</value>
</param>
<param>
- <key>alpha3</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_map_bb</key>
<param>
- <key>label4</key>
- <value></value>
+ <key>id</key>
+ <value>digital_map_bb_0_0</value>
</param>
<param>
- <key>width4</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color4</key>
- <value>"black"</value>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
- <key>style4</key>
- <value>1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>marker4</key>
- <value>-1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>alpha4</key>
- <value>1.0</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label5</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>width5</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(502, 689)</value>
</param>
<param>
- <key>color5</key>
- <value>"cyan"</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_ccsds_encoder_def</key>
<param>
- <key>style5</key>
- <value>1</value>
+ <key>id</key>
+ <value>enc_ccsds</value>
</param>
<param>
- <key>marker5</key>
- <value>-1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>alpha5</key>
- <value>1.0</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>label6</key>
- <value></value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>width6</key>
+ <key>dim1</key>
<value>1</value>
</param>
<param>
- <key>color6</key>
- <value>"magenta"</value>
+ <key>dim2</key>
+ <value>4</value>
</param>
<param>
- <key>style6</key>
- <value>1</value>
+ <key>framebits</key>
+ <value>frame_size*8</value>
</param>
<param>
- <key>marker6</key>
- <value>-1</value>
+ <key>state_start</key>
+ <value>0</value>
</param>
<param>
- <key>alpha6</key>
- <value>1.0</value>
+ <key>mode</key>
+ <value>fec.CC_STREAMING</value>
</param>
<param>
- <key>label7</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>color7</key>
- <value>"yellow"</value>
+ <key>_coordinate</key>
+ <value>(1172, 822)</value>
</param>
<param>
- <key>style7</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_repetition_encoder_def</key>
<param>
- <key>marker7</key>
- <value>-1</value>
+ <key>id</key>
+ <value>enc_rep</value>
</param>
<param>
- <key>alpha7</key>
- <value>1.0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>width8</key>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>color8</key>
- <value>"dark red"</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>style8</key>
+ <key>dim2</key>
<value>1</value>
</param>
<param>
- <key>marker8</key>
- <value>-1</value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
- <key>alpha8</key>
- <value>1.0</value>
+ <key>rep</key>
+ <value>3</value>
</param>
<param>
- <key>label9</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>color9</key>
- <value>"dark green"</value>
+ <key>_coordinate</key>
+ <value>(874, 869)</value>
</param>
<param>
- <key>style9</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_repetition_decoder_def</key>
<param>
- <key>marker9</key>
- <value>-1</value>
+ <key>id</key>
+ <value>dec_rep</value>
</param>
<param>
- <key>alpha9</key>
- <value>1.0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>width10</key>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>color10</key>
- <value>"blue"</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>style10</key>
+ <key>dim2</key>
<value>1</value>
</param>
<param>
- <key>marker10</key>
- <value>-1</value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
- <key>alpha10</key>
- <value>1.0</value>
+ <key>rep</key>
+ <value>3</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>prob</key>
+ <value>0.5</value>
</param>
<param>
- <key>affinity</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1475, 452)</value>
+ <value>(874, 1011)</value>
</param>
<param>
<key>_rotation</key>
@@ -1192,10 +1080,10 @@
</param>
</block>
<block>
- <key>variable_cc_decoder_def</key>
+ <key>variable_ccsds_decoder_def</key>
<param>
<key>id</key>
- <value>dec_cc</value>
+ <value>dec_ccsds</value>
</param>
<param>
<key>_enabled</key>
@@ -1211,7 +1099,7 @@
</param>
<param>
<key>dim1</key>
- <value>2</value>
+ <value>1</value>
</param>
<param>
<key>dim2</key>
@@ -1219,31 +1107,19 @@
</param>
<param>
<key>framebits</key>
- <value>MTU*8</value>
- </param>
- <param>
- <key>k</key>
- <value>k</value>
- </param>
- <param>
- <key>rate</key>
- <value>rate</value>
- </param>
- <param>
- <key>polys</key>
- <value>polys</value>
+ <value>frame_size*8</value>
</param>
<param>
<key>state_start</key>
<value>0</value>
</param>
<param>
- <key>state_end</key>
+ <key>end_state</key>
<value>-1</value>
</param>
<param>
<key>mode</key>
- <value>fec.CC_TERMINATED</value>
+ <value>fec.CC_STREAMING</value>
</param>
<param>
<key>alias</key>
@@ -1251,7 +1127,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(882, 676)</value>
+ <value>(1171, 988)</value>
</param>
<param>
<key>_rotation</key>
@@ -1278,7 +1154,7 @@
</param>
<param>
<key>dim1</key>
- <value>4</value>
+ <value>1</value>
</param>
<param>
<key>dim2</key>
@@ -1306,7 +1182,7 @@
</param>
<param>
<key>mode</key>
- <value>fec.CC_TERMINATED</value>
+ <value>fec.CC_STREAMING</value>
</param>
<param>
<key>alias</key>
@@ -1314,7 +1190,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(581, 684)</value>
+ <value>(567, 843)</value>
</param>
<param>
<key>_rotation</key>
@@ -1322,10 +1198,10 @@
</param>
</block>
<block>
- <key>variable_repetition_decoder_def</key>
+ <key>variable_cc_decoder_def</key>
<param>
<key>id</key>
- <value>dec_rep</value>
+ <value>dec_cc</value>
</param>
<param>
<key>_enabled</key>
@@ -1345,19 +1221,35 @@
</param>
<param>
<key>dim2</key>
- <value>1</value>
+ <value>4</value>
</param>
<param>
<key>framebits</key>
<value>MTU*8</value>
</param>
<param>
- <key>rep</key>
- <value>3</value>
+ <key>k</key>
+ <value>k</value>
</param>
<param>
- <key>prob</key>
- <value>0.5</value>
+ <key>rate</key>
+ <value>rate</value>
+ </param>
+ <param>
+ <key>polys</key>
+ <value>polys</value>
+ </param>
+ <param>
+ <key>state_start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>state_end</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>mode</key>
+ <value>fec.CC_STREAMING</value>
</param>
<param>
<key>alias</key>
@@ -1365,7 +1257,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1215, 765)</value>
+ <value>(563, 1076)</value>
</param>
<param>
<key>_rotation</key>
@@ -1373,46 +1265,50 @@
</param>
</block>
<block>
- <key>variable_repetition_encoder_def</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>enc_rep</value>
+ <value>fec_extended_encoder_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>encoder_list</key>
+ <value>enc_cc</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>threadtype</key>
+ <value>none</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>rep</key>
- <value>3</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1215, 623)</value>
+ <value>(138, 658)</value>
</param>
<param>
<key>_rotation</key>
@@ -1420,22 +1316,38 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_0_1</value>
+ <value>fec_extended_decoder_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>decoder_list</key>
+ <value>dec_ccsds</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>none</value>
+ </param>
+ <param>
+ <key>ann</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>puncpat</value>
+ </param>
+ <param>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
<key>alias</key>
@@ -1455,7 +1367,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1540, 340)</value>
+ <value>(900, 494)</value>
</param>
<param>
<key>_rotation</key>
@@ -1466,7 +1378,7 @@
<key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>qtgui_time_sink_x_0_0</value>
+ <value>qtgui_time_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1502,7 +1414,7 @@
</param>
<param>
<key>nconnections</key>
- <value>1</value>
+ <value>2</value>
</param>
<param>
<key>update_time</key>
@@ -1542,7 +1454,7 @@
</param>
<param>
<key>label1</key>
- <value>Input</value>
+ <value></value>
</param>
<param>
<key>width1</key>
@@ -1566,7 +1478,7 @@
</param>
<param>
<key>label2</key>
- <value>CC</value>
+ <value></value>
</param>
<param>
<key>width2</key>
@@ -1790,7 +1702,58 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1812, 287)</value>
+ <value>(1478, 577)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>fec_extended_encoder</key>
+ <param>
+ <key>id</key>
+ <value>fec_extended_encoder_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>encoder_list</key>
+ <value>enc_ccsds</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>none</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>puncpat</value>
+ </param>
+ <param>
+ <key>lentagname</key>
+ <value>length_tag</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(138, 505)</value>
</param>
<param>
<key>_rotation</key>
@@ -1810,44 +1773,44 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_map_bb_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1</sink_block_id>
+ <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+ <sink_block_id>fec_extended_encoder_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_1</source_block_id>
- <sink_block_id>fec_extended_decoder_0_0</sink_block_id>
+ <source_block_id>blocks_unpack_k_bits_bb_0_0</source_block_id>
+ <sink_block_id>blocks_stream_to_tagged_stream_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_decoder_0_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>blocks_unpack_k_bits_bb_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_encoder_0</source_block_id>
- <sink_block_id>digital_map_bb_0</sink_block_id>
+ <source_block_id>fec_extended_decoder_0_0_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
- <sink_block_id>fec_extended_encoder_0</sink_block_id>
+ <source_block_id>blocks_char_to_float_1_1</source_block_id>
+ <sink_block_id>fec_extended_decoder_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_unpack_k_bits_bb_0_0</source_block_id>
- <sink_block_id>blocks_stream_to_tagged_stream_0_0</sink_block_id>
+ <source_block_id>fec_extended_encoder_0_0</source_block_id>
+ <sink_block_id>digital_map_bb_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>blocks_unpack_k_bits_bb_0_0</sink_block_id>
+ <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+ <sink_block_id>fec_extended_encoder_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -1858,8 +1821,38 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_0_1</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
+ <source_block_id>fec_extended_encoder_0</source_block_id>
+ <sink_block_id>digital_map_bb_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_extended_decoder_0_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_1</source_block_id>
+ <sink_block_id>fec_extended_decoder_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_map_bb_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_1_0_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_map_bb_0_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_1_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-fec/examples/fecapi_tagged_encoders.grc
b/gr-fec/examples/fecapi_tagged_encoders.grc
index 649df7d..0af3d84 100644
--- a/gr-fec/examples/fecapi_tagged_encoders.grc
+++ b/gr-fec/examples/fecapi_tagged_encoders.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon May 12 15:18:11 2014</timestamp>
+ <timestamp>Tue May 13 16:20:56 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -556,334 +556,202 @@
</param>
</block>
<block>
- <key>qtgui_time_sink_x</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>qtgui_time_sink_x_0_0_0</value>
+ <value>blocks_char_to_float_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>name</key>
- <value>QT GUI Plot</value>
- </param>
- <param>
- <key>size</key>
- <value>2048</value>
- </param>
- <param>
- <key>srate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-0.5</value>
- </param>
- <param>
- <key>ymax</key>
- <value>1.5</value>
- </param>
- <param>
- <key>nconnections</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>update_time</key>
- <value>0.05</value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
- <key>gui_hint</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_FREE</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>tr_delay</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>tr_chan</key>
+ <key>maxoutbuf</key>
<value>0</value>
</param>
<param>
- <key>tr_tag</key>
- <value>packet_len</value>
- </param>
- <param>
- <key>label1</key>
- <value>CCSDS</value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>style1</key>
- <value>1</value>
- </param>
- <param>
- <key>marker1</key>
- <value>-1</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label2</key>
- <value>CC</value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(881, 525)</value>
</param>
<param>
- <key>color2</key>
- <value>"red"</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_ctrlport_monitor_performance</key>
<param>
- <key>style2</key>
- <value>1</value>
+ <key>id</key>
+ <value>blocks_ctrlport_monitor_performance_0</value>
</param>
<param>
- <key>marker2</key>
- <value>-1</value>
+ <key>_enabled</key>
+ <value>False</value>
</param>
<param>
- <key>alpha2</key>
- <value>0.6</value>
+ <key>en</key>
+ <value>True</value>
</param>
<param>
- <key>label3</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>color3</key>
- <value>"green"</value>
- </param>
- <param>
- <key>style3</key>
- <value>1</value>
- </param>
- <param>
- <key>marker3</key>
- <value>-1</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
+ <key>_coordinate</key>
+ <value>(651, 10)</value>
</param>
<param>
- <key>label4</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
- <key>width4</key>
- <value>1</value>
+ <key>id</key>
+ <value>frame_size</value>
</param>
<param>
- <key>color4</key>
- <value>"black"</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style4</key>
- <value>1</value>
+ <key>label</key>
+ <value>Frame Size</value>
</param>
<param>
- <key>marker4</key>
- <value>-1</value>
+ <key>value</key>
+ <value>30</value>
</param>
<param>
- <key>alpha4</key>
- <value>1.0</value>
+ <key>type</key>
+ <value>intx</value>
</param>
<param>
- <key>label5</key>
+ <key>short_id</key>
<value></value>
</param>
<param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>color5</key>
- <value>"cyan"</value>
- </param>
- <param>
- <key>style5</key>
- <value>1</value>
- </param>
- <param>
- <key>marker5</key>
- <value>-1</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label6</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>color6</key>
- <value>"magenta"</value>
- </param>
- <param>
- <key>style6</key>
- <value>1</value>
- </param>
- <param>
- <key>marker6</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(483, 10)</value>
</param>
<param>
- <key>alpha6</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_stream_to_tagged_stream</key>
<param>
- <key>label7</key>
- <value></value>
+ <key>id</key>
+ <value>blocks_stream_to_tagged_stream_0_0</value>
</param>
<param>
- <key>width7</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color7</key>
- <value>"yellow"</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>style7</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>marker7</key>
- <value>-1</value>
+ <key>packet_len</key>
+ <value>frame_size*8</value>
</param>
<param>
- <key>alpha7</key>
- <value>1.0</value>
+ <key>len_tag_key</key>
+ <value>length_tag</value>
</param>
<param>
- <key>label8</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width8</key>
- <value>1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>color8</key>
- <value>"dark red"</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>style8</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>marker8</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(158, 515)</value>
</param>
<param>
- <key>alpha8</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_dummy_encoder_def</key>
<param>
- <key>label9</key>
- <value></value>
+ <key>id</key>
+ <value>enc_dummy</value>
</param>
<param>
- <key>width9</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color9</key>
- <value>"dark green"</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>style9</key>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>marker9</key>
- <value>-1</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>width10</key>
+ <key>dim1</key>
<value>1</value>
</param>
<param>
- <key>color10</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>style10</key>
+ <key>dim2</key>
<value>1</value>
</param>
<param>
- <key>marker10</key>
- <value>-1</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1106, 494)</value>
+ <value>(1209, 693)</value>
</param>
<param>
<key>_rotation</key>
@@ -891,61 +759,54 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>variable_cc_encoder_def</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1</value>
+ <value>enc_cc</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>scale</key>
+ <key>ndim</key>
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
+ <key>dim1</key>
+ <value>2</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(881, 525)</value>
+ <key>k</key>
+ <value>k</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>rate</key>
+ <value>rate</value>
</param>
- </block>
- <block>
- <key>blocks_ctrlport_monitor_performance</key>
<param>
- <key>id</key>
- <value>blocks_ctrlport_monitor_performance_0</value>
+ <key>polys</key>
+ <value>polys</value>
</param>
<param>
- <key>_enabled</key>
- <value>False</value>
+ <key>state_start</key>
+ <value>0</value>
</param>
<param>
- <key>en</key>
- <value>True</value>
+ <key>mode</key>
+ <value>fec.CC_TERMINATED</value>
</param>
<param>
<key>alias</key>
@@ -953,7 +814,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(651, 10)</value>
+ <value>(618, 691)</value>
</param>
<param>
<key>_rotation</key>
@@ -961,30 +822,42 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable_ccsds_encoder_def</key>
<param>
<key>id</key>
- <value>frame_size</value>
+ <value>enc_ccsds</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Frame Size</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>value</key>
- <value>30</value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>type</key>
- <value>intx</value>
+ <key>dim1</key>
+ <value>2</value>
</param>
<param>
- <key>short_id</key>
- <value></value>
+ <key>dim2</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>MTU*8</value>
+ </param>
+ <param>
+ <key>state_start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>mode</key>
+ <value>fec.CC_TERMINATED</value>
</param>
<param>
<key>alias</key>
@@ -992,7 +865,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(483, 10)</value>
+ <value>(909, 693)</value>
</param>
<param>
<key>_rotation</key>
@@ -1000,62 +873,50 @@
</param>
</block>
<block>
- <key>variable_cc_encoder_def</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>enc_cc</value>
+ <value>fec_extended_encoder_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>1</value>
- </param>
- <param>
- <key>dim1</key>
- <value>2</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
+ <key>encoder_list</key>
+ <value>enc_ccsds</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>threadtype</key>
+ <value>none</value>
</param>
<param>
- <key>k</key>
- <value>k</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>rate</key>
- <value>rate</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>polys</key>
- <value>polys</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>state_start</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_TERMINATED</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(621, 691)</value>
+ <value>(542, 364)</value>
</param>
<param>
<key>_rotation</key>
@@ -1098,7 +959,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(880, 370)</value>
+ <value>(881, 395)</value>
</param>
<param>
<key>_rotation</key>
@@ -1433,7 +1294,50 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1111, 339)</value>
+ <value>(1112, 364)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
+ <param>
+ <key>id</key>
+ <value>blocks_char_to_float_1_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(880, 262)</value>
</param>
<param>
<key>_rotation</key>
@@ -1444,7 +1348,7 @@
<key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>fec_extended_encoder_0_0</value>
+ <value>fec_extended_encoder_0_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1452,7 +1356,7 @@
</param>
<param>
<key>encoder_list</key>
- <value>enc_ccsds</value>
+ <value>enc_dummy</value>
</param>
<param>
<key>threadtype</key>
@@ -1483,153 +1387,343 @@
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(541, 339)</value>
+ <key>_coordinate</key>
+ <value>(541, 231)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_0_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>2048</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-0.5</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1.5</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.05</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>packet_len</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value>CCSDS</value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value>CC</value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>0.6</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>alpha5</key>
+ <value>1.0</value>
</param>
- </block>
- <block>
- <key>blocks_stream_to_tagged_stream</key>
<param>
- <key>id</key>
- <value>blocks_stream_to_tagged_stream_0_0</value>
+ <key>label6</key>
+ <value></value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>width6</key>
+ <value>1</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>color6</key>
+ <value>"magenta"</value>
</param>
<param>
- <key>vlen</key>
+ <key>style6</key>
<value>1</value>
</param>
<param>
- <key>packet_len</key>
- <value>frame_size*8</value>
+ <key>marker6</key>
+ <value>-1</value>
</param>
<param>
- <key>len_tag_key</key>
- <value>length_tag</value>
+ <key>alpha6</key>
+ <value>1.0</value>
</param>
<param>
- <key>alias</key>
+ <key>label7</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>color7</key>
+ <value>"yellow"</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>style7</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(158, 515)</value>
+ <key>marker7</key>
+ <value>-1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
- </block>
- <block>
- <key>variable_ccsds_encoder_def</key>
<param>
- <key>id</key>
- <value>enc_ccsds</value>
+ <key>label8</key>
+ <value></value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>width8</key>
+ <value>1</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>color8</key>
+ <value>"dark red"</value>
</param>
<param>
- <key>ndim</key>
+ <key>style8</key>
<value>1</value>
</param>
<param>
- <key>dim1</key>
- <value>2</value>
+ <key>marker8</key>
+ <value>-1</value>
</param>
<param>
- <key>dim2</key>
- <value>4</value>
+ <key>alpha8</key>
+ <value>1.0</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>label9</key>
+ <value></value>
</param>
<param>
- <key>state_start</key>
- <value>0</value>
+ <key>width9</key>
+ <value>1</value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_TERMINATED</value>
+ <key>color9</key>
+ <value>"dark green"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>style9</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(909, 693)</value>
+ <key>marker9</key>
+ <value>-1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>alpha9</key>
+ <value>1.0</value>
</param>
- </block>
- <block>
- <key>variable_dummy_encoder_def</key>
<param>
- <key>id</key>
- <value>enc_dummy</value>
+ <key>label10</key>
+ <value></value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>width10</key>
+ <value>1</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>color10</key>
+ <value>"blue"</value>
</param>
<param>
- <key>ndim</key>
+ <key>style10</key>
<value>1</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>marker10</key>
+ <value>-1</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>alpha10</key>
+ <value>1.0</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1209, 693)</value>
+ <value>(1111, 231)</value>
</param>
<param>
<key>_rotation</key>
@@ -1640,7 +1734,7 @@
<key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>qtgui_time_sink_x_0_0_1</value>
+ <value>qtgui_time_sink_x_0_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1964,101 +2058,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1114, 206)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_char_to_float</key>
- <param>
- <key>id</key>
- <value>blocks_char_to_float_1_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>scale</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(883, 237)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>fec_extended_encoder</key>
- <param>
- <key>id</key>
- <value>fec_extended_encoder_0_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>encoder_list</key>
- <value>enc_dummy</value>
- </param>
- <param>
- <key>threadtype</key>
- <value>none</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
- </param>
- <param>
- <key>lentagname</key>
- <value>length_tag</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(544, 206)</value>
+ <value>(1112, 494)</value>
</param>
<param>
<key>_rotation</key>
@@ -2072,12 +2072,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
- <sink_block_id>fec_extended_encoder_0_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>fec_extended_encoder_0</source_block_id>
<sink_block_id>blocks_char_to_float_1</sink_block_id>
<source_key>0</source_key>
@@ -2114,14 +2108,14 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_1_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
+ <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+ <sink_block_id>fec_extended_encoder_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_encoder_0_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+ <source_block_id>fec_extended_encoder_0_0_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -2132,14 +2126,20 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_encoder_0_0_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
+ <source_block_id>fec_extended_encoder_0_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_1_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
- <sink_block_id>fec_extended_encoder_0_0_0</sink_block_id>
+ <sink_block_id>fec_extended_encoder_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-fec/grc/fec_bercurve_generator.xml
b/gr-fec/grc/fec_bercurve_generator.xml
index d10a886..4d0d47e 100644
--- a/gr-fec/grc/fec_bercurve_generator.xml
+++ b/gr-fec/grc/fec_bercurve_generator.xml
@@ -14,45 +14,74 @@
$decoder_list, \#name
$esno, \#range of esnos
$samp_rate, \#throttle
- $puncpat \#puncture pattern
+ $threadtype, \#threading mode
+ $puncpat, \#puncture pattern
+ $seed \# noise gen. seed
)
</make>
<param>
- <name>esno</name>
+ <name>Es/N0</name>
<key>esno</key>
<value>numpy.arange(0.0, 4.0, .5)</value>
<type>raw</type>
</param>
<param>
- <name>samp_rate</name>
+ <name>Sample Rate</name>
<key>samp_rate</key>
<value>3200000</value>
- <type>raw</type>
+ <type>float</type>
</param>
<param>
- <name>encoder_list</name>
+ <name>Encoder list</name>
<key>encoder_list</key>
<value>0</value>
<type>raw</type>
</param>
<param>
- <name>decoder_list</name>
+ <name>Decoder list</name>
<key>decoder_list</key>
<value>0</value>
<type>raw</type>
</param>
<param>
- <name>puncpat</name>
+ <name>Puncture Pat.</name>
<key>puncpat</key>
<value>'11'</value>
<type>string</type>
</param>
+ <param>
+ <name>Threading Type</name>
+ <key>threadtype</key>
+ <type>enum</type>
+ <hide>part</hide>
+ <option>
+ <name>Capillary</name>
+ <key>"capillary"</key>
+ </option>
+ <option>
+ <name>Ordinary</name>
+ <key>"ordinary"</key>
+ </option>
+ <option>
+ <name>None</name>
+ <key>"none"</key>
+ </option>
+ </param>
+
+ <param>
+ <name>Noise Seed</name>
+ <key>seed</key>
+ <value>0</value>
+ <type>int</type>
+ <hide>part</hide>
+ </param>
+
<bus_source>1</bus_source>
<source>
@@ -62,8 +91,5 @@
</source>
<doc>
- The GUI hint can be used to position the widget within the application. \
- The hint is of the form address@hidden: [row, col, row_span, col_span]. \
- Both the tab specification and the grid position are optional.
</doc>
</block>
diff --git a/gr-fec/grc/fec_block_tree.xml b/gr-fec/grc/fec_block_tree.xml
index 7eabe03..8828210 100644
--- a/gr-fec/grc/fec_block_tree.xml
+++ b/gr-fec/grc/fec_block_tree.xml
@@ -11,7 +11,6 @@
<cat>
<name>Decoders</name>
<block>variable_cc_decoder_def</block>
- <block>variable_ccsds_decoder_def</block>
<block>variable_repetition_decoder_def</block>
<block>variable_dummy_decoder_def</block>
</cat>
diff --git a/gr-fec/grc/variable_cc_decoder_def_list.xml
b/gr-fec/grc/variable_cc_decoder_def_list.xml
index 1e17468..37e5cb6 100644
--- a/gr-fec/grc/variable_cc_decoder_def_list.xml
+++ b/gr-fec/grc/variable_cc_decoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.cc_decoder.make($frame
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
diff --git a/gr-fec/grc/variable_cc_encoder_def_list.xml
b/gr-fec/grc/variable_cc_encoder_def_list.xml
index 6b20401..7e56cf1 100644
--- a/gr-fec/grc/variable_cc_encoder_def_list.xml
+++ b/gr-fec/grc/variable_cc_encoder_def_list.xml
@@ -25,25 +25,24 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.cc_encoder_make($frame
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
<option>
- <name>2</name>
- <key>2</key>
- </option>
- <option>
<name>1</name>
<key>1</key>
</option>
-
+ <option>
+ <name>2</name>
+ <key>2</key>
+ </option>
</param>
<param>
<name>Dimension 1</name>
<key>dim1</key>
- <value>4</value>
+ <value>1</value>
<type>int</type>
<hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
</param>
@@ -51,7 +50,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.cc_encoder_make($frame
<param>
<name>Dimension 2</name>
<key>dim2</key>
- <value>4</value>
+ <value>1</value>
<type>int</type>
<hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
</param>
diff --git a/gr-fec/grc/variable_ccsds_decoder_def_list.xml
b/gr-fec/grc/variable_ccsds_decoder_def_list.xml
deleted file mode 100644
index 1017a81..0000000
--- a/gr-fec/grc/variable_ccsds_decoder_def_list.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-# FEC CCSDS Decoder
-###################################################
- -->
-<block>
- <name>CCSDS Decoder Definition</name>
- <key>variable_ccsds_decoder_def</key>
- <import>from gnuradio import fec</import>
- <var_make>
-#if int($ndim())==1 #
-self.$(id) = $(id) = map( (lambda a: fec.ccsds_decoder.make($framebits,
$state_start, $end_state, $mode)), range(0,$dim1) ); #slurp
-#else
-self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.ccsds_decoder.make($framebits, $state_start, $end_state, $mode)),
range(0,$dim2) ) ), range(0,$dim1)); #slurp
-#end if</var_make>
- <make></make>
-
- <param>
- <name>Ignore Me</name>
- <key>value</key>
- <value>"ok"</value>
- <type>raw</type>
- <hide>all</hide>
- </param>
-
- <param>
- <name>Threading Dimensions</name>
- <key>ndim</key>
- <value></value>
- <type>enum</type>
- <option>
- <name>2</name>
- <key>2</key>
- </option>
- <option>
- <name>1</name>
- <key>1</key>
- </option>
-
- </param>
-
- <param>
- <name>Dimension 1</name>
- <key>dim1</key>
- <value>4</value>
- <type>int</type>
- <hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
- </param>
-
- <param>
- <name>Dimension 2</name>
- <key>dim2</key>
- <value>4</value>
- <type>int</type>
- <hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
- </param>
-
- <param>
- <name>Frame Bits</name>
- <key>framebits</key>
- <value>2048</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Start State</name>
- <key>state_start</key>
- <value>0</value>
- <type>int</type>
- </param>
-
- <param>
- <name>End State</name>
- <key>end_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
-
- <param>
- <name>Streaming Behavior</name>
- <key>mode</key>
- <value></value>
- <type>enum</type>
- <option>
- <name>Streaming</name>
- <key>fec.CC_STREAMING</key>
- </option>
- </param>
-
- <doc>
- </doc>
-</block>
diff --git a/gr-fec/grc/variable_ccsds_encoder_def_list.xml
b/gr-fec/grc/variable_ccsds_encoder_def_list.xml
index 72623a6..8a9fde8 100644
--- a/gr-fec/grc/variable_ccsds_encoder_def_list.xml
+++ b/gr-fec/grc/variable_ccsds_encoder_def_list.xml
@@ -25,25 +25,24 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.ccsds_encoder_make($fr
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
<option>
- <name>2</name>
- <key>2</key>
- </option>
- <option>
<name>1</name>
<key>1</key>
</option>
-
+ <option>
+ <name>2</name>
+ <key>2</key>
+ </option>
</param>
<param>
<name>Dimension 1</name>
<key>dim1</key>
- <value>4</value>
+ <value>1</value>
<type>int</type>
<hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
</param>
@@ -51,7 +50,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.ccsds_encoder_make($fr
<param>
<name>Dimension 2</name>
<key>dim2</key>
- <value>4</value>
+ <value>1</value>
<type>int</type>
<hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
</param>
diff --git a/gr-fec/grc/variable_dummy_decoder_def_list.xml
b/gr-fec/grc/variable_dummy_decoder_def_list.xml
index 2756b58..f89a42b 100644
--- a/gr-fec/grc/variable_dummy_decoder_def_list.xml
+++ b/gr-fec/grc/variable_dummy_decoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.dummy_decoder.make($fr
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
diff --git a/gr-fec/grc/variable_dummy_encoder_def_list.xml
b/gr-fec/grc/variable_dummy_encoder_def_list.xml
index b599d33..ca59c07 100644
--- a/gr-fec/grc/variable_dummy_encoder_def_list.xml
+++ b/gr-fec/grc/variable_dummy_encoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.dummy_encoder_make($fr
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
diff --git a/gr-fec/grc/variable_repetition_decoder_def_list.xml
b/gr-fec/grc/variable_repetition_decoder_def_list.xml
index 162b01d..1e94f26 100644
--- a/gr-fec/grc/variable_repetition_decoder_def_list.xml
+++ b/gr-fec/grc/variable_repetition_decoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.repetition_decoder.mak
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
diff --git a/gr-fec/grc/variable_repetition_encoder_def_list.xml
b/gr-fec/grc/variable_repetition_encoder_def_list.xml
index 615d2b8..f5d877f 100644
--- a/gr-fec/grc/variable_repetition_encoder_def_list.xml
+++ b/gr-fec/grc/variable_repetition_encoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a:
fec.repetition_encoder_mak
</param>
<param>
- <name>Threading Dimensions</name>
+ <name>Parallelism</name>
<key>ndim</key>
<value></value>
<type>enum</type>
diff --git a/gr-fec/include/gnuradio/fec/CMakeLists.txt
b/gr-fec/include/gnuradio/fec/CMakeLists.txt
index 0935b73..4d3b58a 100644
--- a/gr-fec/include/gnuradio/fec/CMakeLists.txt
+++ b/gr-fec/include/gnuradio/fec/CMakeLists.txt
@@ -84,7 +84,6 @@ install(FILES
tagged_encoder.h
cc_decoder.h
cc_encoder.h
- ccsds_decoder.h
ccsds_encoder.h
dummy_encoder.h
dummy_decoder.h
diff --git a/gr-fec/include/gnuradio/fec/cc_decoder.h
b/gr-fec/include/gnuradio/fec/cc_decoder.h
index 11f2112..8aad328 100644
--- a/gr-fec/include/gnuradio/fec/cc_decoder.h
+++ b/gr-fec/include/gnuradio/fec/cc_decoder.h
@@ -53,21 +53,12 @@ namespace gr {
* \li polynomials = [109, 79]
*
* This is the well-known convolutional part of the Voyager code
- * implemented in the CCSDS encoder. See
- * gr::fec::code::ccsds_decoder for another variation on this
- * block.
+ * implemented in the CCSDS encoder.
*
- * Currently, in profiling tests run, the VOLK-accelerated
- * Viterbi code used in this block specific to the CCSDS code
- * runs faster than the ccsds_decoder version. Furthenr, due to
- * I/O issues, the ccsds_decoder does not fully handle all
- * streaming behaviors, only 'Streaming' mode. This block
- * enables all four streaming modes.
- *
- * The intent of having both FECAPI code classes is to
- * eventually allow this block to take on generic settings, much
- * like the cc_encoder class. The ccsds_decoder would then
- * handle this specific code case as optimized as possible.
+ * The intent of having this FECAPI code classes fully
+ * parameterizable is to eventually allow it to take on generic
+ * settings, much like the cc_encoder class where the CCSDS
+ * settings would be a highly-optimized version of this.
*
* The encoder is set up wtih a number of bits per frame in the
* constructor. When not being used in a tagged stream mode,
diff --git a/gr-fec/include/gnuradio/fec/ccsds_decoder.h
b/gr-fec/include/gnuradio/fec/ccsds_decoder.h
deleted file mode 100644
index 84212b4..0000000
--- a/gr-fec/include/gnuradio/fec/ccsds_decoder.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2014 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_FEC_CCSDS_DECODER_H
-#define INCLUDED_FEC_CCSDS_DECODER_H
-
-#include <gnuradio/fec/api.h>
-#include <gnuradio/fec/generic_decoder.h>
-#include <gnuradio/fec/cc_common.h>
-#include <map>
-#include <string>
-
-namespace gr {
- namespace fec {
- namespace code {
-
- /*!
- * \brief Convolutional Code Decoding class.
- * \ingroup error_coding_blk
- *
- * \details
- * This class performs convolutional decoding via the Viterbi
- * algorithm specific to the CCSDS code:
- *
- * \li K = 7
- * \li rate = 1/2
- * \li polynomials = [109, 79]
- *
- * This is the well-known convolutional part of the Voyager
- * code. See the discussion in gr::fec::code::cc_decoder for
- * the current state of convolutional decoding.
- *
- * Currently, this block is transitional and only implements
- * parts of the FECAPI.
- *
- * The encoder is set up wtih a number of bits per frame in the
- * constructor. When not being used in a tagged stream mode,
- * this encoder will only process frames of the length provided
- * here. If used in a tagged stream block, this setting becomes
- * the maximum allowable frame size that the block may process.
- */
- class FEC_API ccsds_decoder : virtual public generic_decoder
- {
- public:
-
- /*!
- * Build a convolutional code decoding FECAPI object.
- *
- * \param frame_size Number of bits per frame. If using in the
- * tagged stream style, this is the maximum allowable
- * number of bits per frame.
- * \param start_state Initialization state of the shift register.
- * \param end_state Ending state of the shift register.
- * \param mode cc_mode_t mode of the encoding.
- */
- static generic_decoder::sptr make
- (int frame_size,
- int start_state=0, int end_state=-1,
- cc_mode_t mode=CC_STREAMING);
-
- /*!
- * Sets the uncoded frame size to \p frame_size. If \p
- * frame_size is greater than the value given to the
- * constructor, the frame size will be capped by that initial
- * value and this function will return false. Otherwise, it
- * returns true.
- */
- virtual bool set_frame_size(unsigned int frame_size) = 0;
-
- /*!
- * Returns the coding rate of this encoder.
- */
- virtual double rate() = 0;
- };
-
- } /* namespace code */
- } /* namespace fec */
-} /* namespace gr */
-
-#endif /* INCLUDED_FEC_CCSDS_DECODER_H */
diff --git a/gr-fec/lib/CMakeLists.txt b/gr-fec/lib/CMakeLists.txt
index abd0769..42940be 100644
--- a/gr-fec/lib/CMakeLists.txt
+++ b/gr-fec/lib/CMakeLists.txt
@@ -57,7 +57,6 @@ list(APPEND gnuradio_fec_sources
tagged_encoder_impl.cc
cc_decoder_impl.cc
cc_encoder_impl.cc
- ccsds_decoder_impl.cc
ccsds_encoder_impl.cc
dummy_decoder_impl.cc
dummy_encoder_impl.cc
diff --git a/gr-fec/lib/ccsds_decoder_impl.cc b/gr-fec/lib/ccsds_decoder_impl.cc
deleted file mode 100644
index a68d027..0000000
--- a/gr-fec/lib/ccsds_decoder_impl.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2013-2014 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "ccsds_decoder_impl.h"
-#include <math.h>
-#include <boost/assign/list_of.hpp>
-#include <volk/volk.h>
-#include <sstream>
-#include <vector>
-#include <iostream>
-
-namespace gr {
- namespace fec {
- namespace code {
-
- generic_decoder::sptr
- ccsds_decoder::make(int frame_size,
- int start_state, int end_state,
- cc_mode_t mode)
- {
- return generic_decoder::sptr
- (new ccsds_decoder_impl(frame_size, start_state, end_state, mode));
- }
-
- ccsds_decoder_impl::ccsds_decoder_impl(int frame_size,
- int start_state, int end_state,
- cc_mode_t mode)
- : generic_decoder("ccsds_decoder"),
- d_count(0), d_frame_size(frame_size),
- d_mode(mode),
- d_start_state_chaining(start_state),
- d_start_state_nonchaining(start_state),
- d_end_state_nonchaining(end_state)
- {
- // Set max frame size here; all buffers and settings will be
- // based on this value.
- d_max_frame_size = frame_size;
- set_frame_size(frame_size);
-
- float RATE = 0.5;
- float ebn0 = 12.0;
- float esn0 = RATE*pow(10.0, ebn0/10.0);
-
- gen_met(d_mettab, 100, esn0, 0.0, 4);
- viterbi_chunks_init(d_state0);
- viterbi_chunks_init(d_state1);
- }
-
- ccsds_decoder_impl::~ccsds_decoder_impl()
- {
- }
-
- int
- ccsds_decoder_impl::get_output_size()
- {
- // packed bits
- return d_frame_size/8;
- }
-
- int
- ccsds_decoder_impl::get_input_size()
- {
- if(d_mode == CC_TERMINATED) {
- return 2*(d_frame_size + 7 - 1);
- }
- else {
- return 2*d_frame_size;
- }
- }
-
- int
- ccsds_decoder_impl::get_input_item_size()
- {
- return sizeof(float);
- }
-
- int
- ccsds_decoder_impl::get_history()
- {
- if(d_mode == CC_STREAMING) {
- return 2*(7 - 1);
- }
- else {
- return 0;
- }
- }
-
- float
- ccsds_decoder_impl::get_shift()
- {
- return 0.0;
- }
-
- const char*
- ccsds_decoder_impl::get_input_conversion()
- {
- return "none";
- }
-
- const char*
- ccsds_decoder_impl::get_output_conversion()
- {
- return "unpack";
- }
-
- bool
- ccsds_decoder_impl::set_frame_size(unsigned int frame_size)
- {
- bool ret = true;
- if(frame_size > d_max_frame_size) {
- GR_LOG_INFO(d_logger, boost::format("tried to set frame to %1%; max
possible is %2%") \
- % frame_size % d_max_frame_size);
- frame_size = d_max_frame_size;
- ret = false;
- }
-
- d_frame_size = frame_size;
-
- return ret;
- }
-
- double
- ccsds_decoder_impl::rate()
- {
- return 0.5;
- }
-
- void
- ccsds_decoder_impl::generic_work(void *inbuffer, void *outbuffer)
- {
- const float *in = (const float*)inbuffer;
- unsigned char *out = (unsigned char*)outbuffer;
-
- switch(d_mode) {
-
- case(CC_STREAMING):
- for(unsigned int i = 0; i < d_frame_size*2; i++) {
- // Translate and clip [-1.0..1.0] to [28..228]
- float sample = in[i]*100.0+128.0;
- if(sample > 255.0)
- sample = 255.0;
- else if(sample < 0.0)
- sample = 0.0;
-
- d_viterbi_in[d_count % 4] = (unsigned char)(floorf(sample));
- if((d_count % 4) == 3) {
- // Every fourth symbol, perform butterfly operation
- viterbi_butterfly2(d_viterbi_in, d_mettab, d_state0, d_state1);
-
- // Every sixteenth symbol, read out a byte
- if(d_count % 16 == 11) {
- unsigned char tmp;
- viterbi_get_output(d_state0, out++);
- viterbi_get_output(d_state0, &tmp);
- }
- }
-
- d_count++;
- }
- break;
-
- default:
- throw std::runtime_error("ccsds_decoder: mode not recognized");
- }
- }
-
- } /* namespace code */
- } /* namespace fec */
-} /* namespace gr */
diff --git a/gr-fec/lib/ccsds_decoder_impl.h b/gr-fec/lib/ccsds_decoder_impl.h
deleted file mode 100644
index 26ccec4..0000000
--- a/gr-fec/lib/ccsds_decoder_impl.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2013-2014 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_FEC_CCSDS_DECODER_IMPL_H
-#define INCLUDED_FEC_CCSDS_DECODER_IMPL_H
-
-#include <map>
-#include <string>
-#include <gnuradio/fec/ccsds_decoder.h>
-
-extern "C" {
-#include <gnuradio/fec/viterbi.h>
-}
-
-namespace gr {
- namespace fec {
- namespace code {
-
- class FEC_API ccsds_decoder_impl : public ccsds_decoder
- {
- private:
- //plug into the generic FECAPI
- void generic_work(void *inbuffer, void *outbuffer);
- int get_output_size();
- int get_input_size();
- int get_history();
- float get_shift();
- int get_input_item_size();
- const char* get_input_conversion();
- const char* get_output_conversion();
-
- // Viterbi state
- int d_mettab[2][256];
- struct viterbi_state d_state0[64];
- struct viterbi_state d_state1[64];
- unsigned char d_viterbi_in[16];
- int d_count;
-
- unsigned int d_max_frame_size;
- unsigned int d_frame_size;
- cc_mode_t d_mode;
-
- int *d_start_state;
- int d_start_state_chaining;
- int d_start_state_nonchaining;
- int *d_end_state;
- int d_end_state_chaining;
- int d_end_state_nonchaining;
-
- public:
- ccsds_decoder_impl(int frame_size,
- int start_state=0, int end_state=-1,
- cc_mode_t mode=CC_STREAMING);
- ~ccsds_decoder_impl();
-
- bool set_frame_size(unsigned int frame_size);
- double rate();
- };
-
- } /* namespace code */
- } /* namespace fec */
-} /* namespace gr */
-
-#endif /* INCLUDED_FEC_CCSDS_DECODER_IMPL_H */
diff --git a/gr-fec/lib/decoder_impl.cc b/gr-fec/lib/decoder_impl.cc
index dfc0842..ba8a7d0 100644
--- a/gr-fec/lib/decoder_impl.cc
+++ b/gr-fec/lib/decoder_impl.cc
@@ -50,7 +50,6 @@ namespace gr {
{
set_fixed_rate(true);
set_relative_rate((double)(my_decoder->get_output_size())/my_decoder->get_input_size());
- GR_LOG_DEBUG(d_debug_logger, boost::format("relative_rate: %1%") %
relative_rate());
//want to guarantee you have enough to run at least one time...
//remember! this is not a sync block... set_output_multiple does not
@@ -58,7 +57,6 @@ namespace gr {
//outputs (hence inputs) are made available... this is WEIRD to do in
//GNU Radio, and the algorithm is sensitive to this value
set_output_multiple(my_decoder->get_output_size() +
(my_decoder->get_history()));
- d_inbuf = buf_sptr(new unsigned char[(my_decoder->get_input_size() +
my_decoder->get_history())*input_item_size]);
d_decoder = my_decoder;
}
@@ -101,11 +99,7 @@ namespace gr {
% outnum % ninput_items[0] % items);
for(int i = 0; i < items; ++i) {
- memcpy((void *)d_inbuf.get(),
- in+(i*(d_decoder->get_input_size()) * d_input_item_size),
- (d_decoder->get_input_size() + d_decoder->get_history()) *
d_input_item_size);
-
- d_decoder->generic_work((void*)d_inbuf.get(),
+
d_decoder->generic_work((void*)(in+(i*d_decoder->get_input_size()*d_input_item_size)),
(void*)(out+(i*d_decoder->get_output_size()*d_output_item_size)));
add_item_tag(0, nitems_written(0) +
((i+1)*d_decoder->get_output_size()*d_output_item_size),
diff --git a/gr-fec/lib/decoder_impl.h b/gr-fec/lib/decoder_impl.h
index 92cc537..78b1b92 100644
--- a/gr-fec/lib/decoder_impl.h
+++ b/gr-fec/lib/decoder_impl.h
@@ -34,7 +34,6 @@ namespace gr {
generic_decoder::sptr d_decoder;
size_t d_input_item_size;
size_t d_output_item_size;
- buf_sptr d_inbuf;
public:
decoder_impl(generic_decoder::sptr my_decoder,
diff --git a/gr-fec/python/fec/bercurve_generator.py
b/gr-fec/python/fec/bercurve_generator.py
index ee51493..e67d1e1 100644
--- a/gr-fec/python/fec/bercurve_generator.py
+++ b/gr-fec/python/fec/bercurve_generator.py
@@ -28,7 +28,7 @@ from fec_test import fec_test
class bercurve_generator(gr.hier_block2):
def __init__(self, encoder_list, decoder_list, esno=numpy.arange(0.0, 3.0,
.25),
- samp_rate=3200000, threading='capillary', puncpat='11'):
+ samp_rate=3200000, threading='capillary', puncpat='11',
seed=0):
gr.hier_block2.__init__(
self, "ber_curve_generator",
gr.io_signature(0, 0, 0),
@@ -51,7 +51,8 @@ class bercurve_generator(gr.hier_block2):
esno=esno[i],
samp_rate=samp_rate,
threading=threading,
- puncpat=puncpat)
+ puncpat=puncpat,
+ seed=seed)
self.ber_generators.append(ber_generator_temp);
for i in range(0, len(esno)):
diff --git a/gr-fec/python/fec/extended_decoder.py
b/gr-fec/python/fec/extended_decoder.py
index 17c9810..072adcd 100644
--- a/gr-fec/python/fec/extended_decoder.py
+++ b/gr-fec/python/fec/extended_decoder.py
@@ -86,10 +86,18 @@ class extended_decoder(gr.hier_block2):
self.puncpat=puncpat
self.flush=flush
+ if(type(decoder_obj_list[0]) == list):
+ gr.log.info("fec.extended_decoder: Parallelism must be 1.")
+ raise AttributeError
+
if type(lentagname) == str:
if(lentagname.lower() == 'none'):
lentagname = None
+ if lentagname and threading:
+ gr.log.info("fec.extended_decoder: Cannot use threading with
tagged_stream mode.")
+ raise AttributeError
+
message_collector_connected=False
##anything going through the annihilator needs shifted, uchar vals
diff --git a/gr-fec/python/fec/extended_encoder.py
b/gr-fec/python/fec/extended_encoder.py
index 01b9e09..f511b53 100644
--- a/gr-fec/python/fec/extended_encoder.py
+++ b/gr-fec/python/fec/extended_encoder.py
@@ -37,10 +37,18 @@ class extended_encoder(gr.hier_block2):
self.blocks=[]
self.puncpat=puncpat
+ if(type(encoder_obj_list[0]) == list):
+ gr.log.info("fec.extended_encoder: Parallelism must be 1.")
+ raise AttributeError
+
if type(lentagname) == str:
if(lentagname.lower() == 'none'):
lentagname = None
+ if lentagname and threading:
+ gr.log.info("fec.extended_decoder: Cannot use threading with
tagged_stream mode.")
+ raise AttributeError
+
if fec.get_encoder_input_conversion(encoder_obj_list[0]) == "pack":
self.blocks.append(blocks.pack_k_bits_bb(8))
diff --git a/gr-fec/python/fec/fec_test.py b/gr-fec/python/fec/fec_test.py
index cacbb35..0a7524a 100644
--- a/gr-fec/python/fec/fec_test.py
+++ b/gr-fec/python/fec/fec_test.py
@@ -30,11 +30,11 @@ from extended_decoder import extended_decoder
class fec_test(gr.hier_block2):
def __init__(self, generic_encoder=0, generic_decoder=0, esno=0,
- samp_rate=3200000, threading="capillary", puncpat='11'):
- gr.hier_block2.__init__(
- self, "fec_test",
- gr.io_signature(1, 1, gr.sizeof_char*1),
- gr.io_signature(2, 2, gr.sizeof_char*1))
+ samp_rate=3200000, threading="capillary", puncpat='11',
+ seed=0):
+ gr.hier_block2.__init__(self, "fec_test",
+ gr.io_signature(1, 1, gr.sizeof_char*1),
+ gr.io_signature(2, 2, gr.sizeof_char*1))
self.generic_encoder = generic_encoder
self.generic_decoder = generic_decoder
@@ -50,16 +50,17 @@ class fec_test(gr.hier_block2):
self.pack8 = blocks.pack_k_bits_bb(8)
self.encoder = extended_encoder(encoder_obj_list=generic_encoder,
- threading='capillary',
+ threading=threading,
puncpat=puncpat)
self.decoder = extended_decoder(decoder_obj_list=generic_decoder,
- threading='capillary',
+ threading=threading,
ann=None, puncpat=puncpat,
integration_period=10000, rotator=None)
noise = math.sqrt((10.0**(-esno/10.0))/2.0)
- self.fastnoise = analog.fastnoise_source_f(analog.GR_GAUSSIAN, noise,
0, 8192)
+ #self.fastnoise = analog.fastnoise_source_f(analog.GR_GAUSSIAN, noise,
seed, 8192)
+ self.fastnoise = analog.noise_source_f(analog.GR_GAUSSIAN, noise, seed)
self.addnoise = blocks.add_ff(1)
# Send packed input directly to the second output
diff --git a/gr-fec/swig/fec_swig.i b/gr-fec/swig/fec_swig.i
index 54924a1..051896c 100644
--- a/gr-fec/swig/fec_swig.i
+++ b/gr-fec/swig/fec_swig.i
@@ -44,7 +44,6 @@
#include "gnuradio/fec/tagged_encoder.h"
#include "gnuradio/fec/cc_decoder.h"
#include "gnuradio/fec/cc_encoder.h"
-#include "gnuradio/fec/ccsds_decoder.h"
#include "gnuradio/fec/ccsds_encoder.h"
#include "gnuradio/fec/dummy_decoder.h"
#include "gnuradio/fec/dummy_encoder.h"
@@ -67,7 +66,6 @@
%include "gnuradio/fec/tagged_encoder.h"
%include "gnuradio/fec/cc_decoder.h"
%include "gnuradio/fec/cc_encoder.h"
-%include "gnuradio/fec/ccsds_decoder.h"
%include "gnuradio/fec/ccsds_encoder.h"
%include "gnuradio/fec/dummy_decoder.h"
%include "gnuradio/fec/dummy_encoder.h"
diff --git a/gr-qtgui/lib/ber_sink_b_impl.cc b/gr-qtgui/lib/ber_sink_b_impl.cc
index c371a73..bcbe146 100644
--- a/gr-qtgui/lib/ber_sink_b_impl.cc
+++ b/gr-qtgui/lib/ber_sink_b_impl.cc
@@ -22,9 +22,10 @@
#include "ber_sink_b_impl.h"
#include <gnuradio/io_signature.h>
+#include <gnuradio/math.h>
#include <gnuradio/fft/fft.h>
-//#include <fec/libbertools.h>
-#include <math.h>
+#include <volk/volk.h>
+//#include <math.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -35,89 +36,73 @@ namespace gr {
ber_sink_b::sptr
ber_sink_b::make(std::vector<float> esnos, int curves,
- int berminerrors, float berLimit,
+ int ber_min_errors, float ber_limit,
std::vector<std::string> curvenames,
QWidget *parent)
{
return gnuradio::get_initial_sptr
(new ber_sink_b_impl(esnos, curves,
- berminerrors, berLimit,
+ ber_min_errors, ber_limit,
curvenames, parent));
}
- int
- ber_sink_b_impl::compBER(unsigned char *inBuffer1, unsigned char
*inBuffer2,int buffSize)
- {
- int i,totalDiff=0;
- int popCnt[256] =
- {
- 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
- };
-
-
- for (i=0;i<buffSize;i++)
- {
- totalDiff += popCnt[inBuffer1[i]^inBuffer2[i]];
-
- }
-
- return totalDiff;
- }
-
ber_sink_b_impl::ber_sink_b_impl(std::vector<float> esnos, int curves,
- int berminerrors, float berLimit,
+ int ber_min_errors, float ber_limit,
std::vector<std::string> curvenames,
QWidget *parent)
: block("ber_sink_b",
io_signature::make(curves*esnos.size()*2, curves*esnos.size()*2,
sizeof(unsigned char)),
io_signature::make(0, 0, 0)),
- d_berminerrors(berminerrors),
- d_berLimit(berLimit),
+ d_ber_min_errors(ber_min_errors),
+ d_ber_limit(ber_limit),
d_parent(parent),
d_nconnections(esnos.size()),
d_last_time(0)
{
d_main_gui = NULL;
- d_residbufs_real.reserve(curves);
- d_residbufs_imag.reserve(curves);
+ // Enough curves for the input streams plus the BPSK AWGN curve.
+ d_curves = curves;
+ d_esno_buffers.reserve(curves + 1);
+ d_ber_buffers.reserve(curves + 1);
d_total.reserve(curves * esnos.size());
- d_totalErrors.reserve(curves * esnos.size());
+ d_total_errors.reserve(curves * esnos.size());
+
+ for(int j = 0; j < curves; j++) {
+
d_esno_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+ volk_get_alignment()));
+
d_ber_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+ volk_get_alignment()));
- for(int j= 0; j < curves; j++) {
- d_residbufs_real.push_back(fft::malloc_double(esnos.size()));
- d_residbufs_imag.push_back(fft::malloc_double(esnos.size()));
for(int i = 0; i < d_nconnections; i++) {
- d_residbufs_real[j][i] = esnos[i];
- d_residbufs_imag[j][i] = 0.0;
+ d_esno_buffers[j][i] = esnos[i];
+ d_ber_buffers[j][i] = 0.0;
d_total.push_back(0);
- d_totalErrors.push_back(1);
+ d_total_errors.push_back(1);
}
}
+ // Now add the known curves
+
d_esno_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+ volk_get_alignment()));
+ d_ber_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+ volk_get_alignment()));
+ for(size_t i = 0; i < esnos.size(); i++) {
+ double e = pow(10.0, esnos[i]/10.0);
+ d_esno_buffers[curves][i] = esnos[i];
+ d_ber_buffers[curves][i] = log10(erfc(sqrt(e)));
+ }
+
+
+ // Initialize and set up some of the curve visual properties
initialize();
for(int j= 0; j < curves; j++) {
set_line_width(j, 1);
//35 unique styles supported
set_line_style(j, (j%5) + 1);
set_line_marker(j, (j%7));
-
}
+
if(curvenames.size() == (unsigned int)curves) {
for(int j = 0; j < curves; j++) {
if(curvenames[j] != "") {
@@ -125,6 +110,11 @@ namespace gr {
}
}
}
+
+ set_line_label(d_curves, "BPSK AWGN");
+ set_line_style(d_curves, 5); // non-solid line
+ set_line_marker(d_curves, -1); // no marker
+ set_line_alpha(d_curves, 0.25); // high transparency
}
ber_sink_b_impl::~ber_sink_b_impl()
@@ -133,16 +123,16 @@ namespace gr {
d_main_gui->close();
}
- for(unsigned int i = 0; i < d_residbufs_real.size(); i++) {
- gr::fft::free(d_residbufs_real[i]);
- gr::fft::free(d_residbufs_imag[i]);
+ for(unsigned int i = 0; i < d_esno_buffers.size(); i++) {
+ volk_free(d_esno_buffers[i]);
+ volk_free(d_ber_buffers[i]);
}
}
bool
ber_sink_b_impl::check_topology(int ninputs, int noutputs)
{
- return ninputs == (int)(d_residbufs_real.size() * d_nconnections * 2);
+ return ninputs == (int)(d_curves * d_nconnections * 2);
}
void
@@ -157,7 +147,7 @@ namespace gr {
d_qApplication = new QApplication(argc, argv);
}
- d_main_gui = new ConstellationDisplayForm(d_residbufs_real.size(),
d_parent);
+ d_main_gui = new ConstellationDisplayForm(d_esno_buffers.size(),
d_parent);
d_main_gui->setNPoints(d_nconnections);
d_main_gui->getPlot()->setAxisTitle(QwtPlot::yLeft, "LogScale BER");
@@ -178,7 +168,7 @@ namespace gr {
return d_main_gui;
}
- //#ifdef ENABLE_PYTHON
+#ifdef ENABLE_PYTHON
PyObject*
ber_sink_b_impl::pyqwidget()
{
@@ -186,7 +176,13 @@ namespace gr {
PyObject *retarg = Py_BuildValue("N", w);
return retarg;
}
- //#endif
+#else
+ void *
+ ber_sink_b_impl::pyqwidget()
+ {
+ return NULL;
+ }
+#endif
void
ber_sink_b_impl::set_y_axis(double min, double max)
@@ -327,57 +323,68 @@ namespace gr {
if(gr::high_res_timer_now() - d_last_time > d_update_time) {
d_last_time = gr::high_res_timer_now();
d_qApplication->postEvent(d_main_gui,
- new ConstUpdateEvent(d_residbufs_real,
- d_residbufs_imag,
+ new ConstUpdateEvent(d_esno_buffers,
+ d_ber_buffers,
d_nconnections));
}
//check stopping condition
int done=0, maxed=0;
- for(unsigned int j = 0; j < d_residbufs_real.size(); ++j) {
+ for(int j = 0; j < d_curves; ++j) {
for(int i = 0; i < d_nconnections; ++i) {
- if (d_totalErrors[j * d_nconnections + i] >= d_berminerrors) {
+ if(d_total_errors[j * d_nconnections + i] >= d_ber_min_errors) {
done++;
}
- else if(log10(((double)d_berminerrors)/(d_total[j * d_nconnections +
i] * 8.0)) < d_berLimit) {
+ else if(log10(((double)d_ber_min_errors)/(d_total[j * d_nconnections
+ i] * 8.0)) < d_ber_limit) {
maxed++;
}
}
}
- if(done+maxed == (int)(d_nconnections * d_residbufs_real.size())) {
+ if(done+maxed == (int)(d_nconnections * d_curves)) {
d_qApplication->postEvent(d_main_gui,
- new ConstUpdateEvent(d_residbufs_real,
- d_residbufs_imag,
+ new ConstUpdateEvent(d_esno_buffers,
+ d_ber_buffers,
d_nconnections));
return -1;
}
+ float ber;
for(unsigned int i = 0; i < ninput_items.size(); i += 2) {
- if((d_totalErrors[i >> 1] < d_berminerrors) &&
(log10(((double)d_berminerrors)/(d_total[i >> 1] * 8.0)) >= d_berLimit)) {
+
+ if((d_total_errors[i >> 1] < d_ber_min_errors) && \
+ (log10(((double)d_ber_min_errors)/(d_total[i >> 1] * 8.0)) >=
d_ber_limit)) {
+
int items = ninput_items[i] <= ninput_items[i+1] ? ninput_items[i] :
ninput_items[i+1];
- unsigned char *inBuffer0 = (unsigned char *)input_items[i];
- unsigned char *inBuffer1 = (unsigned char *)input_items[i+1];
+ unsigned char *inbuffer0 = (unsigned char *)input_items[i];
+ unsigned char *inbuffer1 = (unsigned char *)input_items[i+1];
if(items > 0) {
- d_totalErrors[i >> 1] += compBER(inBuffer0, inBuffer1, items);
+ uint32_t ret;
+ for(int j = 0; j < items; j++) {
+ volk_32u_popcnt(&ret,
static_cast<uint32_t>(inbuffer0[j]^inbuffer1[j]));
+ d_total_errors[i >> 1] += ret;
+ }
+
d_total[i >> 1] += items;
- d_residbufs_imag[i/(d_nconnections * 2)][(i%(d_nconnections * 2))
>> 1] = log10(((double)d_totalErrors[i >> 1])/(d_total[i >> 1] * 8.0));
+ ber = log10(((double)d_total_errors[i >> 1])/(d_total[i >> 1] *
8.0));
+ d_ber_buffers[i/(d_nconnections * 2)][(i%(d_nconnections * 2)) >>
1] = ber;
}
consume(i, items);
consume(i + 1, items);
- if(d_totalErrors[i >> 1] >= d_berminerrors) {
- printf(" %u over %d\n", d_totalErrors[i >> 1], d_total[i >> 1]
* 8);
+ if(d_total_errors[i >> 1] >= d_ber_min_errors) {
+ GR_LOG_INFO(d_logger, boost::format(" %1% over %2% --> %3%") \
+ % d_total_errors[i >> 1] % (d_total[i >> 1] * 8) %
ber);
}
- else if(log10(((double)d_berminerrors)/(d_total[i >> 1] * 8.0)) <
d_berLimit) {
- printf("BER Limit Reached\n");
- d_residbufs_imag[i/(d_nconnections * 2)][(i%(d_nconnections * 2))
>> 1] = d_berLimit;
- d_totalErrors[i >> 1] = d_berminerrors + 1;
+ else if(log10(((double)d_ber_min_errors)/(d_total[i >> 1] * 8.0)) <
d_ber_limit) {
+ GR_LOG_INFO(d_logger, "BER Limit Reached");
+ d_ber_buffers[i/(d_nconnections * 2)][(i%(d_nconnections * 2)) >>
1] = d_ber_limit;
+ d_total_errors[i >> 1] = d_ber_min_errors + 1;
}
}
else {
diff --git a/gr-qtgui/lib/ber_sink_b_impl.h b/gr-qtgui/lib/ber_sink_b_impl.h
index c7bbfcb..9ab61e6 100644
--- a/gr-qtgui/lib/ber_sink_b_impl.h
+++ b/gr-qtgui/lib/ber_sink_b_impl.h
@@ -38,24 +38,25 @@ namespace gr {
gr::thread::mutex d_mutex;
- std::vector<double*> d_residbufs_real;
- std::vector<double*> d_residbufs_imag;
-
+ std::vector<double*> d_esno_buffers;
+ std::vector<double*> d_ber_buffers;
+
ConstellationDisplayForm *d_main_gui;
gr::high_res_timer_type d_update_time;
- std::vector<int> d_totalErrors;
- int d_berminerrors;
- float d_berLimit;
+ std::vector<int> d_total_errors;
+ int d_ber_min_errors;
+ float d_ber_limit;
QWidget *d_parent;
int d_nconnections;
+ int d_curves;
gr::high_res_timer_type d_last_time;
std::vector<int> d_total;
- int compBER(unsigned char *inBuffer1, unsigned char *inBuffer2,int
buffSize);
+ //int compBER(unsigned char *inBuffer1, unsigned char *inBuffer2,int
buffSize);
public:
ber_sink_b_impl(std::vector<float> esnos, int curves = 1,
- int berminerrors = 100, float berLimit = -7.0,
+ int ber_min_errors = 100, float ber_limit = -7.0,
std::vector<std::string> curvenames =
std::vector<std::string>(),
QWidget *parent=NULL);
~ber_sink_b_impl();
- [Commit-gnuradio] [gnuradio] 51/57: Revert "blocks: adding an option to swap the order of the output bits of a repack_bits block.", (continued)
- [Commit-gnuradio] [gnuradio] 51/57: Revert "blocks: adding an option to swap the order of the output bits of a repack_bits block.", git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 22/57: fec: wip: adding block that correlates against an access code and produces a tagged stream ofthe payload (stripped access code)., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 53/57: fec: wip: adding qa code., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 50/57: fec: wip: adding concept of padding for CC encoder/decoder., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 54/57: fec: mostly documentation updates, spell check, etc., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 55/57: fec: wip: fixing up allocated memory; allowing async encoder deployment to be used with CCSDS (packed input requirement)., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 41/57: digital: adding an async message passsing CRC32 calc/check block for PDUs., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 38/57: fec: wip: cleaning up tagged decoder, rep code., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 57/57: digital: fixing up some work done in the fec api development., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 40/57: fec: wip: adding async (PDU) encoder and decoder blocks., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 36/57: fec: wip: mods for ber plotting. Now adding theoretical BPSK in AWGN curve.,
git <=
- [Commit-gnuradio] [gnuradio] 52/57: fec: wip: async encoder/decoder working deployments., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 16/57: fec: Merging fecapi with support for CC code., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 33/57: fec: wip: adding a dummy encoder/decoder and repetition code to exercise the API., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 49/57: blocks: adding reverse packing/unpacking functions., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 28/57: fec: updating puncturing, adding documentation, adding CCSDS encoder., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 05/57: codec2 library update, git, 2014/05/20