[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 38/57: fec: wip: cleaning up tagged decoder
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 38/57: fec: wip: cleaning up tagged decoder, rep code. |
Date: |
Wed, 21 May 2014 03:10:29 +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 2e26269d32a357688f6fea652137d9a1900c3a29
Author: Tom Rondeau <address@hidden>
Date: Tue May 13 18:12:37 2014 -0400
fec: wip: cleaning up tagged decoder, rep code.
---
gr-fec/doc/fec.dox | 154 +++-
gr-fec/examples/ber_curve_gen.grc | 296 ++++----
gr-fec/examples/fecapi_decoders.grc | 804 +++++++++++++++-----
gr-fec/examples/fecapi_tagged_decoders.grc | 1137 +++++++++++++++++-----------
gr-fec/lib/repetition_decoder_impl.cc | 2 +-
gr-fec/lib/repetition_encoder_impl.cc | 2 +-
gr-fec/lib/tagged_decoder_impl.cc | 9 +-
gr-fec/lib/tagged_decoder_impl.h | 1 -
gr-fec/lib/tagged_encoder_impl.cc | 2 +
gr-fec/python/fec/extended_decoder.py | 7 +-
gr-fec/python/fec/fec_test.py | 8 +-
11 files changed, 1612 insertions(+), 810 deletions(-)
diff --git a/gr-fec/doc/fec.dox b/gr-fec/doc/fec.dox
index 3f8850e..eddf1b1 100644
--- a/gr-fec/doc/fec.dox
+++ b/gr-fec/doc/fec.dox
@@ -22,8 +22,112 @@ by using:
\endcode
+\section fec_using Using the FEC Encoders and Decoders
+
+The FECAPI consists of two layers, the coding blocks themselves and
+the coder objects. The coding blocks are the encoders or decoders that
+fit into the GNU Radio flowgraph and act as shells to move data to and
+from the coder objects. It is in the objects that the actual
+coding/decoding gets done. The coding blocks use the API of the coder
+objects to interact with the scheduler and set up the input/output
+item buffers that move data between blocks.
+
+The gr::fec::encoder block is a relatively simple wrapper for the
+encoding objects. It uses the encoding object information about the
+input/output sizes and input/output item sizes to set up the
+interaction with the scheduler. Typically, a coder will add redundancy
+to the stream making the output longer by some amount than the input
+stream. This block simply takes in an encoder object, specifically an
+object that derives from gr::fec::generic_encoder. It also takes in
+the input and output items sizes that the encoder will expect, which
+we can just ask the encoder for. Typically, the encodes expect
+unpacked bytes in and unpacked bytes out.
+
+The gr::fec::decoder block is similarly simple to wrap the decoding
+objects. It uses the decoding object information about the
+input/output sizes and input/output item sizes to set up the
+interaction with the scheduler. Since a decoder typically uses the
+redundancy from the input stream to correct for errors, the input
+stream will be longer than the output stream by the rate of the
+code. This block simply takes in an decoder object, specifically an
+object that derives from gr::fec::generic_decoder. It also takes in
+the input and output items sizes that the decoder will expect, which
+we can just ask the encoder for. The decoders may take a float input
+or a byte. The byte may be a hard decision or a quantized soft
+decision, depending on how the decoder object behaves.
+
+Normally, though, we don't work directly with the encoder() or
+decoder() blocks but a wrapper around those blocks. GNU Radio's gr-fec
+package comes with Python classes, fec.extended_encoder and
+fec.extended_decoder, to make things easier. For one thing, these
+extended hier_block2 blocks take care of the puncturing and
+depuncturing operations often found in FEC codes. The other thing that
+these blocks do for us is reads the API of the encoder/decoder objects
+to properly convert the data in or out, depending on how the coding
+object works.
+
+For instance, a generic_decoder takes in floating point values (which
+should be soft decisions). However, a decoder might instead want to
+work on 8-bit quantized soft decisions and so expects unsigned
+chars. Specifying 'uchar' as the
+gr::fec::generic_decoder::get_input_conversion() of the decoder block tells the
+fec.extended_decoder to convert the float to a byte.
+
+In GRC, we would add an "FEC Extended Encoder" to our transmitter or
+an "FEC Extended Decoder" to the receiver. We would then use one of
+the encoder or decoder FEC variable blocks to define the parameters of
+the particular code we want to use. We can find these codes under the
+[Error Coding] category in GRC. The encoders are found under
+[Encoders] and similarly the decoders under the [Decoders]
+categories. Putting these onto the canvas creates a variable that we
+can then pass to the extended encoder or decoder blocks.
+
+Most of the parameters of the encoder and decoder definitions should
+be fairly obvious based on the type of code. See the documentation for
+each coding object for more details. In the following section \ref
+fec_parallelism, we explain the Parallelism and Dimension properties.
+
+
\section fec_coding_vars Encoding/Decoding Variables
+GNU Radio currently has a minor subset of coders available:
+
+Coders:
+
+\li gr::fec::code::dummy_encoder
+\li gr::fec::code::repetition_encoder
+\li gr::fec::code::cc_encoder
+\li gr::fec::code::ccsds_encoder
+
+Decoders:
+\li gr::fec::code::dummy_decoder
+\li gr::fec::code::repetition_decoder
+\li gr::fec::code::cc_decoder
+
+
+When building a new FECAPI encoder or decoder, the dummy
+encoder/decoder block would be a good place to start. This coding set
+does no processing on the data. For the encoder, each bit is simply
+passed through directly. For the dummy decoder, the input data are
+floats, so -1's become 0 and 1's stay as 1, but nothing else is done
+to the data. Mainly, these blocks are used for references and to make
+it easy to compare implementations with and without codes by easily
+dropping in these objects instead of restructuring the entire
+flowgraph. The ber_curve_gen.grc example file uses the dummy codes to
+show the curve to compare against the actual codes.
+
+Although mentioned in the convolutional coder and decoder classes, it
+is worth another mention. The cc_encoder is a generic convolutional
+encoder that can take any value of K, rate, and polynomials to encode
+a data stream. However, the cc_decoder is not as general, even though
+it is technically parameterized as such. The cc_decoder block
+currently <i>only</i> uses K=7, rate=2, and two polynomials (because
+the rate is two). We can, in fact, alter the polynomials, but a
+default of [109, 79] is typically. Eventually, we will make this block
+more generic for different rates and constraint lengths and take this
+particular code implementation as the set CCSDS decoder, much like we
+have the ccsds_encoder class.
+
\subsection fec_parallelism Parallelism
The code variables in GNU Radio Companion have the ability to create
@@ -41,7 +145,7 @@ 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
+fec.extended_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:
@@ -78,4 +182,52 @@ 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.
+
+\section fec_api The API of the FECAPI
+
+The FECAPI defined by the parent generic_encoder and generic_decoder
+classes defines a set of virtual functions, some pure virtual, to
+allow the encoders/decoders to interact with the GNU Radio blocks. See
+the associated documentation of the generic_encoder and
+generic_decoder classes to know more about each of the API functions,
+some of which a child class is <i>required</i> to implement.
+
+The functions of the encoder and decoder are:
+
+\li double gr::fec::generic_encoder::rate()
+\li int gr::fec::generic_encoder::get_input_size()
+\li int gr::fec::generic_encoder::get_output_size()
+\li int gr::fec::generic_encoder::get_history()
+\li float gr::fec::generic_encoder::get_shift()
+\li const char* gr::fec::generic_encoder::get_input_conversion()
+\li const char* gr::fec::generic_encoder::get_output_conversion()
+\li bool gr::fec::generic_encoder::set_frame_size(unsigned int frame_size)
+
+Note: there is no get_input_item_size (or output) as the encoders
+always expect to work on bits.
+
+\li double gr::fec::generic_decoder::rate()
+\li int gr::fec::generic_decoder::get_input_size()
+\li int gr::fec::generic_decoder::get_output_size()
+\li int gr::fec::generic_decoder::get_history()
+\li float gr::fec::generic_decoder::get_shift()
+\li int gr::fec::generic_decoder::get_input_item_size()
+\li int gr::fec::generic_decoder::get_output_item_size()
+\li const char* gr::fec::generic_decoder::get_input_conversion()
+\li const char* gr::fec::generic_decoder::get_output_conversion()
+\li bool gr::fec::generic_decoder::set_frame_size(unsigned int frame_size)
+
+Whenever an FECAPI object refers to the frame size, it always means
+the number of bits in the uncoded frame. This means the number of bits
+going into an encoder and the number of bits coming out of a decoder.
+
+\section fec_examples FEC Examples
+
+\li ber_curve_gen.grc
+\li ber_test.grc
+\li fecapi_decoders.grc
+\li fecapi_encoders.grc
+\li fecapi_tagged_decoders.grc
+\li fecapi_tagged_encoders.grc
+
*/
diff --git a/gr-fec/examples/ber_curve_gen.grc
b/gr-fec/examples/ber_curve_gen.grc
index dfc57b3..455dca4 100644
--- a/gr-fec/examples/ber_curve_gen.grc
+++ b/gr-fec/examples/ber_curve_gen.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Tue May 13 14:23:51 2014</timestamp>
+ <timestamp>Tue May 13 19:32:00 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -68,7 +68,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>esno_0</value>
+ <value>samp_rate_0</value>
</param>
<param>
<key>_enabled</key>
@@ -76,7 +76,7 @@
</param>
<param>
<key>value</key>
- <value>numpy.arange(0, 8, .5) </value>
+ <value>35000000</value>
</param>
<param>
<key>alias</key>
@@ -84,7 +84,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(13, 193)</value>
+ <value>(12, 99)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +95,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>framebits</value>
+ <value>k</value>
</param>
<param>
<key>_enabled</key>
@@ -103,7 +103,7 @@
</param>
<param>
<key>value</key>
- <value>4096</value>
+ <value>7</value>
</param>
<param>
<key>alias</key>
@@ -111,7 +111,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(160, 101)</value>
+ <value>(16, 370)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +122,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rate</value>
+ <value>polys</value>
</param>
<param>
<key>_enabled</key>
@@ -130,7 +130,7 @@
</param>
<param>
<key>value</key>
- <value>2</value>
+ <value>[79, 109]</value>
</param>
<param>
<key>alias</key>
@@ -138,7 +138,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(249, 373)</value>
+ <value>(110, 371)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +149,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>polys</value>
+ <value>rate</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +157,7 @@
</param>
<param>
<key>value</key>
- <value>[79, 109]</value>
+ <value>2</value>
</param>
<param>
<key>alias</key>
@@ -165,7 +165,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(110, 371)</value>
+ <value>(249, 373)</value>
</param>
<param>
<key>_rotation</key>
@@ -176,7 +176,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>k</value>
+ <value>framebits</value>
</param>
<param>
<key>_enabled</key>
@@ -184,7 +184,7 @@
</param>
<param>
<key>value</key>
- <value>7</value>
+ <value>4096</value>
</param>
<param>
<key>alias</key>
@@ -192,7 +192,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(16, 370)</value>
+ <value>(160, 101)</value>
</param>
<param>
<key>_rotation</key>
@@ -203,7 +203,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>samp_rate_0</value>
+ <value>esno_0</value>
</param>
<param>
<key>_enabled</key>
@@ -211,7 +211,7 @@
</param>
<param>
<key>value</key>
- <value>35000000</value>
+ <value>numpy.arange(0, 8, .5) </value>
</param>
<param>
<key>alias</key>
@@ -219,7 +219,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(12, 99)</value>
+ <value>(13, 193)</value>
</param>
<param>
<key>_rotation</key>
@@ -605,6 +605,134 @@
<bus_source>1</bus_source>
</block>
<block>
+ <key>fec_bercurve_generator</key>
+ <param>
+ <key>id</key>
+ <value>fec_bercurve_generator_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_rep</value>
+ </param>
+ <param>
+ <key>decoder_list</key>
+ <value>dec_rep</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, 132)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <bus_source>1</bus_source>
+ </block>
+ <block>
+ <key>fec_bercurve_generator</key>
+ <param>
+ <key>id</key>
+ <value>fec_bercurve_generator_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_cc</value>
+ </param>
+ <param>
+ <key>decoder_list</key>
+ <value>dec_cc</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, 260)</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>
@@ -624,7 +752,7 @@
</param>
<param>
<key>berlimit</key>
- <value>-15</value>
+ <value>-10</value>
</param>
<param>
<key>num_curves</key>
@@ -908,134 +1036,6 @@
</param>
<bus_sink>1</bus_sink>
</block>
- <block>
- <key>fec_bercurve_generator</key>
- <param>
- <key>id</key>
- <value>fec_bercurve_generator_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_rep</value>
- </param>
- <param>
- <key>decoder_list</key>
- <value>dec_rep</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, 132)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <bus_source>1</bus_source>
- </block>
- <block>
- <key>fec_bercurve_generator</key>
- <param>
- <key>id</key>
- <value>fec_bercurve_generator_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_cc</value>
- </param>
- <param>
- <key>decoder_list</key>
- <value>dec_cc</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, 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_0</source_block_id>
<sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
diff --git a/gr-fec/examples/fecapi_decoders.grc
b/gr-fec/examples/fecapi_decoders.grc
index 41692d3..403eca0 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>Tue May 13 17:26:19 2014</timestamp>
+ <timestamp>Tue May 13 17:44:52 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -798,49 +798,6 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
- <param>
- <key>id</key>
- <value>blocks_char_to_float_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>
- </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>(1466, 435)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>fec_extended_decoder</key>
<param>
<key>id</key>
@@ -943,49 +900,6 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
- <param>
- <key>id</key>
- <value>blocks_char_to_float_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>(1465, 584)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>fec_extended_decoder</key>
<param>
<key>id</key>
@@ -1147,57 +1061,6 @@
</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>blocks_vector_source_x</key>
<param>
<key>id</key>
@@ -1606,141 +1469,652 @@
</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_0_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>(1466, 435)</value>
</param>
<param>
- <key>nconnections</key>
- <value>4</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
<param>
- <key>update_time</key>
- <value>0.10</value>
+ <key>id</key>
+ <value>blocks_char_to_float_0_0</value>
</param>
<param>
- <key>entags</key>
+ <key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_FREE</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
+ <key>alias</key>
+ <value></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>""</value>
+ <key>_coordinate</key>
+ <value>(1465, 584)</value>
</param>
<param>
- <key>label1</key>
- <value>Input</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_sub_xx</key>
<param>
- <key>width1</key>
- <value>1</value>
+ <key>id</key>
+ <value>blocks_sub_xx_0</value>
</param>
<param>
- <key>color1</key>
- <value>"blue"</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style1</key>
- <value>1</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>marker1</key>
- <value>-1</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>alpha1</key>
- <value>1.0</value>
+ <key>num_inputs</key>
+ <value>2</value>
</param>
<param>
- <key>label2</key>
- <value>Dummy</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>width2</key>
- <value>1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>color2</key>
- <value>"red"</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>style2</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>marker2</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(1836, 569)</value>
</param>
<param>
- <key>alpha2</key>
- <value>0.6</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_abs_xx</key>
<param>
- <key>label3</key>
- <value>Rep. (Rate=3)</value>
+ <key>id</key>
+ <value>blocks_abs_xx_0</value>
</param>
<param>
- <key>width3</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color3</key>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>num_inputs</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>(1434, 834)</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_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>1024</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.01</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_NORM</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.1</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>""</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></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></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>1.0</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>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</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>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>style9</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>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1587, 793)</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</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>4</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.01</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>""</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value>Input</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>Dummy</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>Rep. (Rate=3)</value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
<value>"green"</value>
</param>
<param>
@@ -1971,12 +2345,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_0_1</source_block_id>
- <sink_block_id>blocks_delay_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>digital_map_bb_0_0</source_block_id>
<sink_block_id>blocks_char_to_float_0</sink_block_id>
<source_key>0</source_key>
@@ -2084,4 +2452,28 @@
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_0_0_0</source_block_id>
+ <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_0_0</source_block_id>
+ <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_sub_xx_0</source_block_id>
+ <sink_block_id>blocks_abs_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_abs_xx_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
</flow_graph>
diff --git a/gr-fec/examples/fecapi_tagged_decoders.grc
b/gr-fec/examples/fecapi_tagged_decoders.grc
index 9779709..8d038e1 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>Tue May 13 16:28:59 2014</timestamp>
+ <timestamp>Tue May 13 18:15:54 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -68,15 +68,15 @@
<key>variable</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>polys</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
<key>value</key>
- <value>50000</value>
+ <value>[79, 109]</value>
</param>
<param>
<key>alias</key>
@@ -84,7 +84,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(9, 95)</value>
+ <value>(368, 684)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +95,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>length_tag</value>
+ <value>rate</value>
</param>
<param>
<key>_enabled</key>
@@ -103,7 +103,7 @@
</param>
<param>
<key>value</key>
- <value>"packet_len"</value>
+ <value>2</value>
</param>
<param>
<key>alias</key>
@@ -111,7 +111,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(202, 112)</value>
+ <value>(410, 599)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +122,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>k</value>
+ <value>polys</value>
</param>
<param>
<key>_enabled</key>
@@ -130,7 +130,7 @@
</param>
<param>
<key>value</key>
- <value>7</value>
+ <value>[109, 79]</value>
</param>
<param>
<key>alias</key>
@@ -138,7 +138,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(352, 1017)</value>
+ <value>(226, 687)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +149,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>polys</value>
+ <value>k</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +157,7 @@
</param>
<param>
<key>value</key>
- <value>[109, 79]</value>
+ <value>7</value>
</param>
<param>
<key>alias</key>
@@ -165,7 +165,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(269, 1102)</value>
+ <value>(309, 602)</value>
</param>
<param>
<key>_rotation</key>
@@ -176,15 +176,15 @@
<key>variable</key>
<param>
<key>id</key>
- <value>polys</value>
+ <value>length_tag</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>value</key>
- <value>[79, 109]</value>
+ <value>"packet_len"</value>
</param>
<param>
<key>alias</key>
@@ -192,7 +192,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(411, 1099)</value>
+ <value>(202, 112)</value>
</param>
<param>
<key>_rotation</key>
@@ -203,7 +203,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rate</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -211,7 +211,7 @@
</param>
<param>
<key>value</key>
- <value>2</value>
+ <value>50000</value>
</param>
<param>
<key>alias</key>
@@ -219,7 +219,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(453, 1014)</value>
+ <value>(9, 95)</value>
</param>
<param>
<key>_rotation</key>
@@ -227,38 +227,77 @@
</param>
</block>
<block>
- <key>blocks_unpack_k_bits_bb</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>blocks_unpack_k_bits_bb_0_0</value>
+ <value>puncpat</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>k</key>
- <value>8</value>
+ <key>label</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
+ <key>value</key>
+ <value>'11'</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>short_id</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(248, 9)</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <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>(359, 341)</value>
+ <value>(484, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -266,34 +305,57 @@
</param>
</block>
<block>
- <key>blocks_vector_source_x</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>blocks_vector_source_x_0_1_0</value>
+ <value>MTU</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>
+ </param>
+ <param>
<key>type</key>
- <value>byte</value>
+ <value>intx</value>
</param>
<param>
- <key>vector</key>
- <value>4*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 127]</value>
+ <key>short_id</key>
+ <value></value>
</param>
<param>
- <key>tags</key>
- <value>[]</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>repeat</key>
+ <key>_coordinate</key>
+ <value>(365, 9)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_unpack_k_bits_bb</key>
+ <param>
+ <key>id</key>
+ <value>blocks_unpack_k_bits_bb_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>k</key>
+ <value>8</value>
</param>
<param>
<key>alias</key>
@@ -313,7 +375,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(123, 218)</value>
+ <value>(99, 404)</value>
</param>
<param>
<key>_rotation</key>
@@ -364,73 +426,62 @@
</param>
<param>
<key>_coordinate</key>
- <value>(100, 341)</value>
+ <value>(358, 404)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>blocks_ctrlport_monitor_performance</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>blocks_ctrlport_monitor_performance_0</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>False</value>
</param>
<param>
- <key>en</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(651, 15)</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>max</key>
+ <value>256</value>
</param>
- </block>
- <block>
- <key>parameter</key>
<param>
- <key>id</key>
- <value>puncpat</value>
+ <key>num_samps</key>
+ <value>1000</value>
</param>
<param>
- <key>_enabled</key>
+ <key>repeat</key>
<value>True</value>
</param>
<param>
- <key>label</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>value</key>
- <value>'11'</value>
- </param>
- <param>
- <key>type</key>
- <value>string</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>short_id</key>
- <value></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>(248, 9)</value>
+ <value>(30, 271)</value>
</param>
<param>
<key>_rotation</key>
@@ -438,77 +489,54 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>blocks_vector_source_x</key>
<param>
<key>id</key>
- <value>frame_size</value>
+ <value>blocks_vector_source_x_0_1_0</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>(484, 10)</value>
+ <value>byte</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>vector</key>
+ <value>4*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 127]</value>
</param>
- </block>
- <block>
- <key>parameter</key>
<param>
- <key>id</key>
- <value>MTU</value>
+ <key>tags</key>
+ <value>[]</value>
</param>
<param>
- <key>_enabled</key>
+ <key>repeat</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>MTU</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>value</key>
- <value>1000</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>type</key>
- <value>intx</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>short_id</key>
- <value></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>(365, 9)</value>
+ <value>(271, 211)</value>
</param>
<param>
<key>_rotation</key>
@@ -559,7 +587,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(595, 331)</value>
+ <value>(281, 473)</value>
</param>
<param>
<key>_rotation</key>
@@ -567,34 +595,30 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>fec_extended_encoder_2</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>encoder_list</key>
+ <value>enc_cc</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>threadtype</key>
+ <value>none</value>
</param>
<param>
- <key>max</key>
- <value>256</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
<key>alias</key>
@@ -614,18 +638,18 @@
</param>
<param>
<key>_coordinate</key>
- <value>(387, 203)</value>
+ <value>(705, 453)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
<key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1_0</value>
+ <value>blocks_char_to_float_1_2</value>
</param>
<param>
<key>_enabled</key>
@@ -657,7 +681,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1242, 536)</value>
+ <value>(1235, 186)</value>
</param>
<param>
<key>_rotation</key>
@@ -665,22 +689,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_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>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
<key>alias</key>
@@ -700,7 +720,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(678, 536)</value>
+ <value>(1050, 186)</value>
</param>
<param>
<key>_rotation</key>
@@ -708,18 +728,30 @@
</param>
</block>
<block>
- <key>digital_map_bb</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>digital_map_bb_0</value>
+ <value>fec_extended_encoder_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <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>
@@ -739,7 +771,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(493, 536)</value>
+ <value>(705, 155)</value>
</param>
<param>
<key>_rotation</key>
@@ -747,22 +779,38 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>blocks_char_to_float_1_0_0</value>
+ <value>fec_extended_decoder_2</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_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>length_tag</value>
</param>
<param>
<key>alias</key>
@@ -782,7 +830,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1231, 689)</value>
+ <value>(1455, 443)</value>
</param>
<param>
<key>_rotation</key>
@@ -790,32 +838,24 @@
</param>
</block>
<block>
- <key>fec_extended_decoder</key>
+ <key>fec_extended_encoder</key>
<param>
<key>id</key>
- <value>fec_extended_decoder_0_0_0</value>
+ <value>fec_extended_encoder_1</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>
+ <key>encoder_list</key>
+ <value>enc_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>
@@ -841,7 +881,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(899, 647)</value>
+ <value>(704, 301)</value>
</param>
<param>
<key>_rotation</key>
@@ -849,22 +889,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_1</value>
+ <value>digital_map_bb_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>
@@ -884,7 +920,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(685, 689)</value>
+ <value>(1049, 332)</value>
</param>
<param>
<key>_rotation</key>
@@ -892,18 +928,22 @@
</param>
</block>
<block>
- <key>digital_map_bb</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>digital_map_bb_0_0</value>
+ <value>blocks_char_to_float_1</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>
@@ -923,7 +963,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(502, 689)</value>
+ <value>(1234, 332)</value>
</param>
<param>
<key>_rotation</key>
@@ -931,50 +971,42 @@
</param>
</block>
<block>
- <key>variable_ccsds_encoder_def</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>enc_ccsds</value>
+ <value>blocks_char_to_float_1_1</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>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>framebits</key>
- <value>frame_size*8</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>state_start</key>
+ <key>minoutbuf</key>
<value>0</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>(1172, 822)</value>
+ <value>(1241, 483)</value>
</param>
<param>
<key>_rotation</key>
@@ -982,46 +1014,38 @@
</param>
</block>
<block>
- <key>variable_repetition_encoder_def</key>
+ <key>digital_map_bb</key>
<param>
<key>id</key>
- <value>enc_rep</value>
+ <value>digital_map_bb_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>1</value>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*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>(874, 869)</value>
+ <value>(1058, 485)</value>
</param>
<param>
<key>_rotation</key>
@@ -1029,10 +1053,10 @@
</param>
</block>
<block>
- <key>variable_repetition_decoder_def</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>dec_rep</value>
+ <value>fec_extended_decoder_1</value>
</param>
<param>
<key>_enabled</key>
@@ -1040,39 +1064,47 @@
</param>
<param>
<key>value</key>
- <value>"ok"</value>
+ <value>fec_extended_decoder</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>decoder_list</key>
+ <value>dec_rep</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>threadtype</key>
+ <value>none</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>ann</key>
+ <value>None</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>rep</key>
- <value>3</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>prob</key>
- <value>0.5</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>(874, 1011)</value>
+ <value>(1454, 290)</value>
</param>
<param>
<key>_rotation</key>
@@ -1080,10 +1112,10 @@
</param>
</block>
<block>
- <key>variable_ccsds_decoder_def</key>
+ <key>fec_extended_decoder</key>
<param>
<key>id</key>
- <value>dec_ccsds</value>
+ <value>fec_extended_decoder_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1091,43 +1123,47 @@
</param>
<param>
<key>value</key>
- <value>"ok"</value>
+ <value>fec_extended_decoder</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>decoder_list</key>
+ <value>dec_dummy</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>threadtype</key>
+ <value>none</value>
</param>
<param>
- <key>dim2</key>
- <value>4</value>
+ <key>ann</key>
+ <value>None</value>
</param>
<param>
- <key>framebits</key>
- <value>frame_size*8</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>state_start</key>
- <value>0</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>end_state</key>
- <value>-1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_STREAMING</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>(1171, 988)</value>
+ <value>(1455, 143)</value>
</param>
<param>
<key>_rotation</key>
@@ -1135,129 +1171,42 @@
</param>
</block>
<block>
- <key>variable_cc_encoder_def</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>enc_cc</value>
+ <value>blocks_char_to_float_1_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>ndim</key>
+ <key>scale</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>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>
- </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>(567, 843)</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
+ <key>minoutbuf</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>1</value>
- </param>
- <param>
- <key>dim1</key>
- <value>1</value>
- </param>
- <param>
- <key>dim2</key>
- <value>4</value>
- </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>
- </param>
<param>
- <key>state_start</key>
+ <key>maxoutbuf</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>(563, 1076)</value>
+ <value>(1802, 485)</value>
</param>
<param>
<key>_rotation</key>
@@ -1265,30 +1214,22 @@
</param>
</block>
<block>
- <key>fec_extended_encoder</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>fec_extended_encoder_0_0</value>
+ <value>blocks_char_to_float_1_0</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>none</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -1308,7 +1249,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(138, 658)</value>
+ <value>(1798, 332)</value>
</param>
<param>
<key>_rotation</key>
@@ -1316,38 +1257,22 @@
</param>
</block>
<block>
- <key>fec_extended_decoder</key>
+ <key>blocks_char_to_float</key>
<param>
<key>id</key>
- <value>fec_extended_decoder_0_0</value>
+ <value>blocks_char_to_float_1_0_1</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>none</value>
- </param>
- <param>
- <key>ann</key>
- <value>None</value>
- </param>
- <param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -1367,7 +1292,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(900, 494)</value>
+ <value>(1799, 186)</value>
</param>
<param>
<key>_rotation</key>
@@ -1378,7 +1303,7 @@
<key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>qtgui_time_sink_x_0</value>
+ <value>qtgui_time_sink_x_1</value>
</param>
<param>
<key>_enabled</key>
@@ -1414,11 +1339,11 @@
</param>
<param>
<key>nconnections</key>
- <value>2</value>
+ <value>3</value>
</param>
<param>
<key>update_time</key>
- <value>0.10</value>
+ <value>0.01</value>
</param>
<param>
<key>entags</key>
@@ -1430,7 +1355,7 @@
</param>
<param>
<key>tr_mode</key>
- <value>qtgui.TRIG_MODE_FREE</value>
+ <value>qtgui.TRIG_MODE_NORM</value>
</param>
<param>
<key>tr_slope</key>
@@ -1438,7 +1363,7 @@
</param>
<param>
<key>tr_level</key>
- <value>0.0</value>
+ <value>0.1</value>
</param>
<param>
<key>tr_delay</key>
@@ -1454,7 +1379,7 @@
</param>
<param>
<key>label1</key>
- <value></value>
+ <value>None</value>
</param>
<param>
<key>width1</key>
@@ -1478,7 +1403,7 @@
</param>
<param>
<key>label2</key>
- <value></value>
+ <value>Rep (Rate=3)</value>
</param>
<param>
<key>width2</key>
@@ -1498,11 +1423,11 @@
</param>
<param>
<key>alpha2</key>
- <value>0.6</value>
+ <value>1.0</value>
</param>
<param>
<key>label3</key>
- <value></value>
+ <value>CC (K=7, Rate=2)</value>
</param>
<param>
<key>width3</key>
@@ -1702,7 +1627,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1478, 577)</value>
+ <value>(2061, 300)</value>
</param>
<param>
<key>_rotation</key>
@@ -1710,62 +1635,346 @@
</param>
</block>
<block>
- <key>fec_extended_encoder</key>
+ <key>variable_cc_encoder_def</key>
<param>
<key>id</key>
- <value>fec_extended_encoder_0</value>
+ <value>enc_cc</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_ccsds</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>threadtype</key>
- <value>none</value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>dim2</key>
+ <value>1</value>
+ </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>
+ </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>affinity</key>
+ <key>_coordinate</key>
+ <value>(509, 598)</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>1</value>
+ </param>
+ <param>
+ <key>dim1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>dim2</key>
+ <value>4</value>
+ </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>
+ </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>minoutbuf</key>
+ <key>_coordinate</key>
+ <value>(505, 831)</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>maxoutbuf</key>
+ <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>MTU*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>_coordinate</key>
+ <value>(799, 741)</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>1</value>
+ </param>
+ <param>
+ <key>dim1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>dim2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>MTU*8</value>
+ </param>
+ <param>
+ <key>rep</key>
+ <value>3</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
<param>
<key>_coordinate</key>
- <value>(138, 505)</value>
+ <value>(799, 599)</value>
+ </param>
+ <param>
+ <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>_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>MTU*8</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1094, 722)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_dummy_encoder_def</key>
+ <param>
+ <key>id</key>
+ <value>enc_dummy</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>MTU*8</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1092, 599)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_ctrlport_monitor_performance</key>
+ <param>
+ <key>id</key>
+ <value>blocks_ctrlport_monitor_performance_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>en</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(651, 15)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
- <connection>
- <source_block_id>analog_random_source_x_0</source_block_id>
- <sink_block_id>blocks_throttle_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
<connection>
<source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
<sink_block_id>blocks_throttle_0</sink_block_id>
@@ -1774,7 +1983,7 @@
</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>
+ <sink_block_id>fec_extended_encoder_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -1791,50 +2000,62 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <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_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+ <sink_block_id>fec_extended_encoder_2</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <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_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>blocks_throttle_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>digital_map_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</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</sink_block_id>
+ <source_block_id>digital_map_bb_0_1</source_block_id>
+ <sink_block_id>blocks_char_to_float_1_2</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</sink_block_id>
+ <source_block_id>blocks_char_to_float_1_2</source_block_id>
+ <sink_block_id>fec_extended_decoder_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_1_0_1</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_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_extended_encoder_1</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>
+ <source_block_id>fec_extended_decoder_1</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>
+ <sink_block_id>fec_extended_decoder_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -1845,14 +2066,44 @@
<sink_key>0</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>
+ <connection>
+ <source_block_id>fec_extended_encoder_2</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_char_to_float_1_1</source_block_id>
+ <sink_block_id>fec_extended_decoder_2</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fec_extended_decoder_2</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_char_to_float_1_0_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>2</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_1_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</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_block_id>blocks_char_to_float_1_0_1</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-fec/lib/repetition_decoder_impl.cc
b/gr-fec/lib/repetition_decoder_impl.cc
index b7b3f00..bce41de 100644
--- a/gr-fec/lib/repetition_decoder_impl.cc
+++ b/gr-fec/lib/repetition_decoder_impl.cc
@@ -125,7 +125,7 @@ namespace gr {
repetition_decoder_impl::generic_work(void *inbuffer, void *outbuffer)
{
const float *in = (const float*)inbuffer;
- int8_t *out = (int8_t*)outbuffer;
+ unsigned char *out = (unsigned char *) outbuffer;
for(unsigned int i = 0; i < d_frame_size; i++) {
for(unsigned int r = 0; r < d_rep; r++) {
diff --git a/gr-fec/lib/repetition_encoder_impl.cc
b/gr-fec/lib/repetition_encoder_impl.cc
index a608ed6..dd6bc01 100644
--- a/gr-fec/lib/repetition_encoder_impl.cc
+++ b/gr-fec/lib/repetition_encoder_impl.cc
@@ -87,7 +87,7 @@ namespace gr {
double
repetition_encoder_impl::rate()
{
- return 1.0/static_cast<double>(d_rep);
+ return static_cast<double>(d_rep);
}
void
diff --git a/gr-fec/lib/tagged_decoder_impl.cc
b/gr-fec/lib/tagged_decoder_impl.cc
index 595537c..bccf514 100644
--- a/gr-fec/lib/tagged_decoder_impl.cc
+++ b/gr-fec/lib/tagged_decoder_impl.cc
@@ -52,7 +52,6 @@ namespace gr {
lengthtagname),
d_input_item_size(input_item_size),
d_output_item_size(output_item_size)
{
- d_inbuf = buf_sptr(new unsigned char[(my_decoder->get_input_size() +
my_decoder->get_history())*input_item_size]);
d_decoder = my_decoder;
set_relative_rate(d_decoder->rate());
@@ -77,18 +76,14 @@ namespace gr {
const unsigned char *in = (unsigned char*)input_items[0];
unsigned char *out = (unsigned char *)output_items[0];
- d_decoder->set_frame_size(ninput_items[0]/2);
+ d_decoder->set_frame_size(ninput_items[0]*d_decoder->rate());
if(noutput_items < d_decoder->get_output_size())
return 0;
GR_LOG_DEBUG(d_debug_logger, boost::format("%1%, %2%, %3%") \
% noutput_items % ninput_items[0] %
d_decoder->get_output_size());
- memcpy((void *)d_inbuf.get(),
- in+(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(), (void*)(out));
+ d_decoder->generic_work((void*)in, (void*)out);
add_item_tag(0, nitems_written(0) +
d_decoder->get_output_size()*d_output_item_size,
pmt::intern(d_decoder->alias()), pmt::PMT_T,
pmt::intern(alias()));
diff --git a/gr-fec/lib/tagged_decoder_impl.h b/gr-fec/lib/tagged_decoder_impl.h
index 4eeab25..ec81a4f 100644
--- a/gr-fec/lib/tagged_decoder_impl.h
+++ b/gr-fec/lib/tagged_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:
tagged_decoder_impl(generic_decoder::sptr my_decoder,
diff --git a/gr-fec/lib/tagged_encoder_impl.cc
b/gr-fec/lib/tagged_encoder_impl.cc
index f914866..4d19e4c 100644
--- a/gr-fec/lib/tagged_encoder_impl.cc
+++ b/gr-fec/lib/tagged_encoder_impl.cc
@@ -54,6 +54,8 @@ namespace gr {
d_input_item_size(input_item_size),
d_output_item_size(output_item_size)
{
d_encoder = my_encoder;
+
+ set_relative_rate(d_encoder->rate());
}
tagged_encoder_impl::~tagged_encoder_impl()
diff --git a/gr-fec/python/fec/extended_decoder.py
b/gr-fec/python/fec/extended_decoder.py
index 072adcd..792d7df 100644
--- a/gr-fec/python/fec/extended_decoder.py
+++ b/gr-fec/python/fec/extended_decoder.py
@@ -20,11 +20,16 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, blocks, digital
+from gnuradio import gr, blocks
import fec_swig as fec
from bitflip import *
import sys
+if sys.modules.has_key("gnuradio.digital"):
+ digital = sys.modules["gnuradio.digital"]
+else:
+ from gnuradio import digital
+
from threaded_decoder import threaded_decoder
from capillary_threaded_decoder import capillary_threaded_decoder
diff --git a/gr-fec/python/fec/fec_test.py b/gr-fec/python/fec/fec_test.py
index 0a7524a..6466a0b 100644
--- a/gr-fec/python/fec/fec_test.py
+++ b/gr-fec/python/fec/fec_test.py
@@ -21,8 +21,14 @@
#
from gnuradio.fec.bitflip import read_bitlist
-from gnuradio import gr, blocks, analog, digital
+from gnuradio import gr, blocks, analog
import math
+import sys
+
+if sys.modules.has_key("gnuradio.digital"):
+ digital = sys.modules["gnuradio.digital"]
+else:
+ from gnuradio import digital
from extended_encoder import extended_encoder
from extended_decoder import extended_decoder
- [Commit-gnuradio] [gnuradio] 46/57: blocks: adding an option to swap the order of the output bits of a repack_bits block., (continued)
- [Commit-gnuradio] [gnuradio] 46/57: blocks: adding an option to swap the order of the output bits of a repack_bits block., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 45/57: fec: wip: using unpack/pack k bits kernels instead of copying logic in here., git, 2014/05/20
- [Commit-gnuradio] [gnuradio] 56/57: Merge branch 'fecapi', git, 2014/05/20
- [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 <=
- [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, 2014/05/20
- [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