[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 01/04: fec: Adds MTU parameter to async and
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 01/04: fec: Adds MTU parameter to async and tagged stream blocks. |
Date: |
Fri, 25 Sep 2015 15:38:52 +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 cbd70793b710abe4e92e960f23c3286f7270dd65
Author: Tom Rondeau <address@hidden>
Date: Thu Sep 24 21:59:36 2015 -0400
fec: Adds MTU parameter to async and tagged stream blocks.
The maximum transmission unit (MTU, in bytes) sets up the encoders and
decoders with enough internal buffer space to accommodate frames of
varying sizes up to the MTU. Proections placed to make sure incoming
tagged streams and PDUs don't exceed this.
This also fixes a bug in the tagged stream encoder and decoder blocks
to properly use calculate_output_stream_length.
---
gr-fec/examples/fecapi_async_decoders.grc | 79 +-
gr-fec/examples/fecapi_async_encoders.grc | 32 +-
gr-fec/examples/fecapi_tagged_decoders.grc | 1941 ++++++++++++++------------
gr-fec/grc/fec_async_decoder.xml | 9 +-
gr-fec/grc/fec_async_encoder.xml | 9 +-
gr-fec/grc/fec_extended_tagged_decoder.xml | 9 +-
gr-fec/grc/fec_extended_tagged_encoder.xml | 9 +-
gr-fec/grc/fec_tagged_decoder.xml | 9 +-
gr-fec/grc/fec_tagged_encoder.xml | 9 +-
gr-fec/include/gnuradio/fec/async_decoder.h | 6 +-
gr-fec/include/gnuradio/fec/async_encoder.h | 6 +-
gr-fec/include/gnuradio/fec/tagged_decoder.h | 6 +-
gr-fec/include/gnuradio/fec/tagged_encoder.h | 6 +-
gr-fec/lib/async_decoder_impl.cc | 44 +-
gr-fec/lib/async_decoder_impl.h | 4 +-
gr-fec/lib/async_encoder_impl.cc | 21 +-
gr-fec/lib/async_encoder_impl.h | 4 +-
gr-fec/lib/tagged_decoder_impl.cc | 21 +-
gr-fec/lib/tagged_decoder_impl.h | 4 +-
gr-fec/lib/tagged_encoder_impl.cc | 20 +-
gr-fec/lib/tagged_encoder_impl.h | 4 +-
gr-fec/python/fec/extended_tagged_decoder.py | 5 +-
gr-fec/python/fec/extended_tagged_encoder.py | 4 +-
23 files changed, 1276 insertions(+), 985 deletions(-)
diff --git a/gr-fec/examples/fecapi_async_decoders.grc
b/gr-fec/examples/fecapi_async_decoders.grc
index 985d996..e4df315 100644
--- a/gr-fec/examples/fecapi_async_decoders.grc
+++ b/gr-fec/examples/fecapi_async_decoders.grc
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.8rc1'?>
+<?grc format='1' created='3.7.9'?>
<flow_graph>
<timestamp>Tue May 20 15:23:14 2014</timestamp>
<block>
@@ -105,7 +105,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -164,7 +164,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -207,7 +207,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -266,7 +266,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -321,7 +321,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -368,7 +368,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -407,7 +407,7 @@
</param>
<param>
<key>framebits</key>
- <value>8000</value>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
@@ -566,6 +566,49 @@
</param>
</block>
<block>
+ <key>parameter</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(568, 11)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>MTU</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>MTU</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value></value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>intx</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1500</value>
+ </param>
+ </block>
+ <block>
<key>analog_random_source_x</key>
<param>
<key>alias</key>
@@ -644,7 +687,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(865, 308)</value>
+ <value>(872, 307)</value>
</param>
<param>
<key>_rotation</key>
@@ -816,7 +859,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(411, 239)</value>
+ <value>(368, 235)</value>
</param>
<param>
<key>_rotation</key>
@@ -863,7 +906,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(860, 224)</value>
+ <value>(872, 235)</value>
</param>
<param>
<key>_rotation</key>
@@ -1024,7 +1067,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(364, 143)</value>
+ <value>(344, 147)</value>
</param>
<param>
<key>_rotation</key>
@@ -1279,7 +1322,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(852, 142)</value>
+ <value>(864, 139)</value>
</param>
<param>
<key>_rotation</key>
@@ -1290,6 +1333,10 @@
<value>fec_async_decoder_0</value>
</param>
<param>
+ <key>mtu</key>
+ <value>MTU</value>
+ </param>
+ <param>
<key>maxoutbuf</key>
<value>0</value>
</param>
@@ -1330,7 +1377,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(600, 143)</value>
+ <value>(552, 139)</value>
</param>
<param>
<key>_rotation</key>
@@ -1341,6 +1388,10 @@
<value>fec_async_encoder_0</value>
</param>
<param>
+ <key>mtu</key>
+ <value>MTU</value>
+ </param>
+ <param>
<key>maxoutbuf</key>
<value>0</value>
</param>
diff --git a/gr-fec/examples/fecapi_async_encoders.grc
b/gr-fec/examples/fecapi_async_encoders.grc
index d0cef07..c78f937 100644
--- a/gr-fec/examples/fecapi_async_encoders.grc
+++ b/gr-fec/examples/fecapi_async_encoders.grc
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.8rc1'?>
+<?grc format='1' created='3.7.9'?>
<flow_graph>
<timestamp>Mon May 19 16:19:57 2014</timestamp>
<block>
@@ -168,7 +168,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(378, 490)</value>
+ <value>(376, 547)</value>
</param>
<param>
<key>_rotation</key>
@@ -262,7 +262,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(575, 490)</value>
+ <value>(576, 547)</value>
</param>
<param>
<key>_rotation</key>
@@ -344,7 +344,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(575, 570)</value>
+ <value>(576, 627)</value>
</param>
<param>
<key>_rotation</key>
@@ -550,7 +550,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1034, 297)</value>
+ <value>(1024, 291)</value>
</param>
<param>
<key>_rotation</key>
@@ -597,7 +597,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(950, 400)</value>
+ <value>(936, 403)</value>
</param>
<param>
<key>_rotation</key>
@@ -675,7 +675,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(577, 297)</value>
+ <value>(584, 291)</value>
</param>
<param>
<key>_rotation</key>
@@ -734,7 +734,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(804, 273)</value>
+ <value>(808, 283)</value>
</param>
<param>
<key>_rotation</key>
@@ -793,7 +793,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(331, 376)</value>
+ <value>(328, 395)</value>
</param>
<param>
<key>_rotation</key>
@@ -1060,7 +1060,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(349, 296)</value>
+ <value>(344, 283)</value>
</param>
<param>
<key>_rotation</key>
@@ -1071,6 +1071,10 @@
<value>fec_async_encoder_0</value>
</param>
<param>
+ <key>mtu</key>
+ <value>1500</value>
+ </param>
+ <param>
<key>maxoutbuf</key>
<value>0</value>
</param>
@@ -1080,7 +1084,7 @@
</param>
<param>
<key>packed</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>rev_pack</key>
@@ -1115,7 +1119,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(553, 384)</value>
+ <value>(560, 387)</value>
</param>
<param>
<key>_rotation</key>
@@ -1292,7 +1296,7 @@
</param>
<param>
<key>label1</key>
- <value></value>
+ <value>Async Encoder</value>
</param>
<param>
<key>marker1</key>
@@ -1340,7 +1344,7 @@
</param>
<param>
<key>label2</key>
- <value></value>
+ <value>Tagged Encoder</value>
</param>
<param>
<key>marker2</key>
diff --git a/gr-fec/examples/fecapi_tagged_decoders.grc
b/gr-fec/examples/fecapi_tagged_decoders.grc
index 8bae5bd..27cda3a 100644
--- a/gr-fec/examples/fecapi_tagged_decoders.grc
+++ b/gr-fec/examples/fecapi_tagged_decoders.grc
@@ -1,22 +1,27 @@
-<?xml version='1.0' encoding='ASCII'?>
+<?xml version='1.0' encoding='utf-8'?>
+<?grc format='1' created='3.7.9'?>
<flow_graph>
<timestamp>Tue May 20 15:45:42 2014</timestamp>
<block>
<key>options</key>
<param>
- <key>id</key>
- <value>fecapi_tagged_decoders</value>
+ <key>author</key>
+ <value></value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>title</key>
- <value></value>
+ <key>window_size</key>
+ <value>3000,2000</value>
</param>
<param>
- <key>author</key>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>comment</key>
<value></value>
</param>
<param>
@@ -24,16 +29,32 @@
<value></value>
</param>
<param>
- <key>window_size</key>
- <value>3000,2000</value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(10, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
<key>generate_options</key>
<value>qt_gui</value>
</param>
<param>
- <key>category</key>
- <value>Custom</value>
+ <key>id</key>
+ <value>fecapi_tagged_decoders</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
</param>
<param>
<key>run_options</key>
@@ -44,1365 +65,1510 @@
<value>True</value>
</param>
<param>
- <key>max_nouts</key>
- <value>0</value>
+ <key>thread_safe_setters</key>
+ <value></value>
</param>
<param>
- <key>realtime_scheduling</key>
+ <key>title</key>
<value></value>
</param>
+ </block>
+ <block>
+ <key>variable_cc_decoder_def</key>
+ <param>
+ <key>padding</key>
+ <value>True</value>
+ </param>
<param>
- <key>alias</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(10, 10)</value>
+ <key>k</key>
+ <value>k</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>polys</value>
+ <key>dim2</key>
+ <value>4</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>[109, 79]</value>
+ <key>state_end</key>
+ <value>-1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
- <value>(72, 584)</value>
+ <value>(168, 715)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
<key>id</key>
- <value>rate</value>
+ <value>dec_cc</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>value</key>
+ <value>"ok"</value>
</param>
<param>
- <key>value</key>
- <value>2</value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>polys</key>
+ <value>polys</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(97, 520)</value>
+ <key>rate</key>
+ <value>rate</value>
</param>
<param>
- <key>_rotation</key>
+ <key>state_start</key>
<value>0</value>
</param>
+ <param>
+ <key>mode</key>
+ <value>fec.CC_TERMINATED</value>
+ </param>
</block>
<block>
- <key>variable</key>
+ <key>variable_dummy_decoder_def</key>
<param>
- <key>id</key>
- <value>samp_rate</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>value</key>
- <value>50000</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
- <value>(12, 73)</value>
+ <value>(560, 635)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
<key>id</key>
- <value>length_tag</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
+ <value>dec_dummy</value>
</param>
<param>
<key>value</key>
- <value>"packet_len"</value>
+ <value>"ok"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>ndim</key>
+ <value>1</value>
</param>
+ </block>
+ <block>
+ <key>variable_repetition_decoder_def</key>
<param>
- <key>_coordinate</key>
- <value>(101, 73)</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>k</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>7</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
- <value>(30, 520)</value>
+ <value>(360, 659)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
<key>id</key>
- <value>rep</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
+ <value>dec_rep</value>
</param>
<param>
<key>value</key>
- <value>3</value>
+ <value>"ok"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(365, 759)</value>
+ <key>rep</key>
+ <value>rep</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>prob</key>
+ <value>0.5</value>
</param>
</block>
<block>
- <key>parameter</key>
- <param>
- <key>id</key>
- <value>puncpat</value>
- </param>
+ <key>variable_cc_encoder_def</key>
<param>
- <key>_enabled</key>
+ <key>padding</key>
<value>True</value>
</param>
<param>
- <key>label</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>value</key>
- <value>'11'</value>
+ <key>k</key>
+ <value>k</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>short_id</key>
- <value></value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
<key>_coordinate</key>
- <value>(211, 11)</value>
+ <value>(168, 547)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>parameter</key>
<param>
<key>id</key>
- <value>MTU</value>
+ <value>enc_cc</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>ndim</key>
+ <value>0</value>
</param>
<param>
- <key>label</key>
- <value>MTU</value>
+ <key>polys</key>
+ <value>polys</value>
</param>
<param>
- <key>value</key>
- <value>1000</value>
+ <key>rate</key>
+ <value>rate</value>
</param>
<param>
- <key>type</key>
- <value>intx</value>
+ <key>state_start</key>
+ <value>0</value>
</param>
<param>
- <key>short_id</key>
- <value></value>
+ <key>mode</key>
+ <value>fec.CC_TERMINATED</value>
</param>
+ </block>
+ <block>
+ <key>variable_dummy_encoder_def</key>
<param>
- <key>alias</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(291, 11)</value>
+ <key>dim1</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>parameter</key>
- <param>
- <key>id</key>
- <value>frame_size</value>
+ <key>dim2</key>
+ <value>1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Frame Size</value>
+ <key>framebits</key>
+ <value>MTU*8</value>
</param>
<param>
- <key>value</key>
- <value>30</value>
+ <key>_coordinate</key>
+ <value>(560, 547)</value>
</param>
<param>
- <key>type</key>
- <value>intx</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>short_id</key>
- <value></value>
+ <key>id</key>
+ <value>enc_dummy</value>
</param>
<param>
- <key>alias</key>
+ <key>ndim</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_repetition_encoder_def</key>
+ <param>
+ <key>comment</key>
<value></value>
</param>
<param>
+ <key>dim1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>dim2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>framebits</key>
+ <value>MTU*8</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(371, 11)</value>
+ <value>(360, 547)</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>
+ <value>enc_rep</value>
</param>
<param>
- <key>_enabled</key>
- <value>False</value>
+ <key>ndim</key>
+ <value>1</value>
</param>
<param>
- <key>en</key>
- <value>True</value>
+ <key>rep</key>
+ <value>rep</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>alias</key>
+ <key>comment</key>
<value></value>
</param>
<param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(487, 12)</value>
+ <value>(32, 547)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
+ <param>
+ <key>id</key>
+ <value>k</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>7</value>
+ </param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable</key>
<param>
- <key>id</key>
- <value>analog_random_source_x_0</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>_coordinate</key>
+ <value>(101, 73)</value>
</param>
<param>
- <key>min</key>
+ <key>_rotation</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>256</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>id</key>
+ <value>length_tag</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>value</key>
+ <value>"packet_len"</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>alias</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(72, 611)</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(12, 142)</value>
+ <key>id</key>
+ <value>polys</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>value</key>
+ <value>[109, 79]</value>
</param>
</block>
<block>
- <key>blocks_vector_source_x</key>
+ <key>variable</key>
<param>
- <key>id</key>
- <value>blocks_vector_source_x_0_1_0</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</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>_coordinate</key>
+ <value>(96, 547)</value>
</param>
<param>
- <key>tags</key>
- <value>[]</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>id</key>
+ <value>rate</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>2</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>alias</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(368, 787)</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(149, 152)</value>
+ <key>id</key>
+ <value>rep</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>value</key>
+ <value>3</value>
</param>
</block>
<block>
- <key>blocks_throttle</key>
+ <key>variable</key>
<param>
- <key>id</key>
- <value>blocks_throttle_0</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>_coordinate</key>
+ <value>(12, 73)</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>id</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>ignoretag</key>
- <value>True</value>
+ <key>value</key>
+ <value>50000</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(365, 168)</value>
+ <value>(291, 11)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>blocks_stream_to_tagged_stream</key>
<param>
<key>id</key>
- <value>blocks_stream_to_tagged_stream_0_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
+ <value>MTU</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>MTU</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>short_id</key>
+ <value></value>
</param>
<param>
- <key>packet_len</key>
- <value>frame_size</value>
+ <key>type</key>
+ <value>intx</value>
</param>
<param>
- <key>len_tag_key</key>
- <value>length_tag</value>
+ <key>value</key>
+ <value>1500</value>
</param>
+ </block>
+ <block>
+ <key>analog_random_source_x</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(551, 160)</value>
+ <value>(12, 142)</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>
+ <value>analog_random_source_x_0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>max</key>
+ <value>256</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>num_samps</key>
+ <value>1000</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
</param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(561, 614)</value>
+ <value>(816, 371)</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>
+ <value>blocks_char_to_float_1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ndim</key>
+ <key>scale</key>
<value>1</value>
</param>
<param>
- <key>dim1</key>
+ <key>vlen</key>
<value>1</value>
</param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(561, 519)</value>
+ <value>(1256, 371)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>fec_extended_tagged_decoder</key>
<param>
<key>id</key>
- <value>fec_extended_tagged_decoder_0_1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>fec_extended_decoder</value>
+ <value>blocks_char_to_float_1_0</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_cc</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ann</key>
- <value>None</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>scale</key>
+ <value>1</value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(991, 440)</value>
+ <value>(1256, 483)</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>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>scale</key>
<value>1</value>
</param>
<param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
+ <param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1257, 464)</value>
+ <value>(1256, 259)</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</value>
+ <value>blocks_char_to_float_1_0_1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>scale</key>
<value>1</value>
</param>
<param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
+ <param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1256, 363)</value>
+ <value>(816, 467)</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_1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>scale</key>
<value>1</value>
</param>
<param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
+ <param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(813, 443)</value>
+ <value>(816, 275)</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</value>
+ <value>blocks_char_to_float_1_2</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>scale</key>
<value>1</value>
</param>
<param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_ctrlport_monitor_performance</key>
+ <param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>False</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>en</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(811, 363)</value>
+ <value>(487, 12)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>fec_extended_tagged_decoder</key>
<param>
<key>id</key>
- <value>fec_extended_tagged_decoder_0</value>
+ <value>blocks_ctrlport_monitor_performance_0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_repack_bits_bb</key>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>k</key>
+ <value>8</value>
</param>
<param>
- <key>value</key>
- <value>fec_extended_decoder</value>
+ <key>l</key>
+ <value>1</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_dummy</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>ann</key>
- <value>None</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>endianness</key>
+ <value>gr.GR_LSB_FIRST</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(64, 276)</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
<param>
+ <key>id</key>
+ <value>blocks_repack_bits_bb_0</value>
+ </param>
+ <param>
+ <key>len_tag_key</key>
+ <value>packet_len</value>
+ </param>
+ <param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(990, 238)</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>align_output</key>
+ <value>False</value>
</param>
</block>
<block>
- <key>qtgui_time_sink_x</key>
+ <key>blocks_stream_to_tagged_stream</key>
<param>
- <key>id</key>
- <value>qtgui_time_sink_x_1</value>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>_coordinate</key>
+ <value>(551, 160)</value>
</param>
<param>
- <key>name</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>size</key>
- <value>2048</value>
+ <key>id</key>
+ <value>blocks_stream_to_tagged_stream_0_0_0</value>
</param>
<param>
- <key>srate</key>
- <value>samp_rate</value>
+ <key>len_tag_key</key>
+ <value>length_tag</value>
</param>
<param>
- <key>autoscale</key>
- <value>False</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ymin</key>
- <value>-0.5</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ymax</key>
- <value>1.5</value>
+ <key>packet_len</key>
+ <value>frame_size</value>
</param>
<param>
- <key>nconnections</key>
- <value>3</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>update_time</key>
- <value>0.01</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
+ </block>
+ <block>
+ <key>blocks_throttle</key>
<param>
- <key>entags</key>
- <value>True</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>gui_hint</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_NORM</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>tr_level</key>
- <value>0.1</value>
+ <key>_coordinate</key>
+ <value>(365, 168)</value>
</param>
<param>
- <key>tr_delay</key>
+ <key>_rotation</key>
<value>0</value>
</param>
<param>
- <key>tr_chan</key>
- <value>0</value>
+ <key>id</key>
+ <value>blocks_throttle_0</value>
</param>
<param>
- <key>tr_tag</key>
- <value>""</value>
+ <key>ignoretag</key>
+ <value>True</value>
</param>
<param>
- <key>label1</key>
- <value>None</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>width1</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>color1</key>
- <value>"blue"</value>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>style1</key>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>vlen</key>
<value>1</value>
</param>
+ </block>
+ <block>
+ <key>blocks_vector_source_x</key>
<param>
- <key>marker1</key>
- <value>-1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>alpha1</key>
- <value>1.0</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>label2</key>
- <value>Rep (Rate=3)</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>width2</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color2</key>
- <value>"red"</value>
+ <key>_coordinate</key>
+ <value>(149, 152)</value>
</param>
<param>
- <key>style2</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>marker2</key>
- <value>-1</value>
+ <key>id</key>
+ <value>blocks_vector_source_x_0_1_0</value>
</param>
<param>
- <key>alpha2</key>
- <value>1.0</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label3</key>
- <value>CC (K=7, Rate=2)</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>width3</key>
- <value>1</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>color3</key>
- <value>"green"</value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
- <key>style3</key>
+ <key>tags</key>
+ <value>[]</value>
+ </param>
+ <param>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>marker3</key>
- <value>-1</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>digital_map_bb</key>
<param>
- <key>alpha3</key>
- <value>1.0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>label4</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>width4</key>
- <value>1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>color4</key>
- <value>"black"</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style4</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(672, 371)</value>
</param>
<param>
- <key>marker4</key>
- <value>-1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>alpha4</key>
- <value>1.0</value>
+ <key>id</key>
+ <value>digital_map_bb_0</value>
</param>
<param>
- <key>label5</key>
+ <key>map</key>
+ <value>[-1, 1]</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_map_bb</key>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>width5</key>
- <value>1</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>color5</key>
- <value>"cyan"</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>style5</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>marker5</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(672, 467)</value>
</param>
<param>
- <key>alpha5</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>label6</key>
- <value></value>
+ <key>id</key>
+ <value>digital_map_bb_0_0</value>
</param>
<param>
- <key>width6</key>
- <value>1</value>
+ <key>map</key>
+ <value>[-1, 1]</value>
</param>
<param>
- <key>color6</key>
- <value>"magenta"</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>style6</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_map_bb</key>
<param>
- <key>marker6</key>
- <value>-1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>alpha6</key>
- <value>1.0</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>label7</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>width7</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color7</key>
- <value>"yellow"</value>
+ <key>_coordinate</key>
+ <value>(672, 275)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>digital_map_bb_0_1</value>
+ </param>
+ <param>
+ <key>map</key>
+ <value>[-1, 1]</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>fec_extended_tagged_decoder</key>
+ <param>
+ <key>ann</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>style7</key>
- <value>1</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>marker7</key>
- <value>-1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>alpha7</key>
- <value>1.0</value>
+ <key>decoder_list</key>
+ <value>dec_dummy</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>width8</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(992, 227)</value>
</param>
<param>
- <key>color8</key>
- <value>"dark red"</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>style8</key>
- <value>1</value>
+ <key>id</key>
+ <value>fec_extended_tagged_decoder_0</value>
</param>
<param>
- <key>marker8</key>
- <value>-1</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>alpha8</key>
- <value>1.0</value>
+ <key>mtu</key>
+ <value>MTU</value>
</param>
<param>
- <key>label9</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>width9</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>color9</key>
- <value>"dark green"</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>style9</key>
- <value>1</value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
</param>
+ </block>
+ <block>
+ <key>fec_extended_tagged_decoder</key>
<param>
- <key>marker9</key>
- <value>-1</value>
+ <key>ann</key>
+ <value>None</value>
</param>
<param>
- <key>alpha9</key>
- <value>1.0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>label10</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>width10</key>
- <value>1</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>color10</key>
- <value>"blue"</value>
+ <key>decoder_list</key>
+ <value>dec_rep</value>
</param>
<param>
- <key>style10</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>marker10</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(992, 339)</value>
</param>
<param>
- <key>alpha10</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>fec_extended_tagged_decoder_0_0</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(1465, 333)</value>
+ <key>mtu</key>
+ <value>MTU</value>
</param>
<param>
- <key>_rotation</key>
+ <key>maxoutbuf</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>blocks_char_to_float</key>
<param>
- <key>id</key>
- <value>blocks_char_to_float_1_0_1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
</param>
+ </block>
+ <block>
+ <key>fec_extended_tagged_decoder</key>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>ann</key>
+ <value>None</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>decoder_list</key>
+ <value>dec_cc</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1258, 262)</value>
+ <value>(992, 451)</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_2</value>
+ <value>fec_extended_tagged_decoder_0_1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>mtu</key>
+ <value>MTU</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>puncpat</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
</param>
+ </block>
+ <block>
+ <key>fec_extended_tagged_encoder</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>encoder_list</key>
+ <value>enc_dummy</value>
</param>
<param>
<key>_coordinate</key>
- <value>(810, 284)</value>
+ <value>(328, 251)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>fec_extended_tagged_decoder</key>
<param>
<key>id</key>
- <value>fec_extended_tagged_decoder_0_0</value>
+ <value>fec_extended_tagged_encoder_0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>value</key>
- <value>fec_extended_decoder</value>
+ <key>mtu</key>
+ <value>MTU</value>
</param>
<param>
- <key>decoder_list</key>
- <value>dec_rep</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>ann</key>
- <value>None</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>puncpat</key>
<value>puncpat</value>
</param>
+ </block>
+ <block>
+ <key>fec_extended_tagged_encoder</key>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
+ <key>comment</key>
<value></value>
</param>
<param>
@@ -1410,600 +1576,573 @@
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>encoder_list</key>
+ <value>enc_rep</value>
</param>
<param>
<key>_coordinate</key>
- <value>(991, 339)</value>
+ <value>(328, 347)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>digital_map_bb</key>
<param>
<key>id</key>
- <value>digital_map_bb_0_1</value>
+ <value>fec_extended_tagged_encoder_0_0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <key>mtu</key>
+ <value>MTU</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>puncpat</key>
+ <value>puncpat</value>
</param>
+ </block>
+ <block>
+ <key>fec_extended_tagged_encoder</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>encoder_list</key>
+ <value>enc_cc</value>
</param>
<param>
<key>_coordinate</key>
- <value>(673, 284)</value>
+ <value>(328, 443)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>fec_extended_tagged_encoder</key>
<param>
<key>id</key>
- <value>fec_extended_tagged_encoder_0</value>
+ <value>fec_extended_tagged_encoder_0_1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>lentagname</key>
+ <value>length_tag</value>
+ </param>
+ <param>
+ <key>mtu</key>
+ <value>MTU</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_dummy</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>puncpat</key>
<value>puncpat</value>
</param>
- <param>
- <key>lentagname</key>
- <value>length_tag</value>
- </param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(332, 268)</value>
+ <value>(371, 11)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>blocks_repack_bits_bb</key>
<param>
<key>id</key>
- <value>blocks_repack_bits_bb_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
+ <value>frame_size</value>
</param>
<param>
- <key>k</key>
- <value>8</value>
+ <key>label</key>
+ <value>Frame Size</value>
</param>
<param>
- <key>l</key>
- <value>1</value>
+ <key>short_id</key>
+ <value></value>
</param>
<param>
- <key>len_tag_key</key>
- <value>packet_len</value>
+ <key>type</key>
+ <value>intx</value>
</param>
<param>
- <key>align_output</key>
- <value>False</value>
+ <key>value</key>
+ <value>30</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>comment</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(64, 276)</value>
+ <value>(211, 11)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>digital_map_bb</key>
<param>
<key>id</key>
- <value>digital_map_bb_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <value>puncpat</value>
</param>
<param>
- <key>alias</key>
+ <key>label</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>short_id</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>(674, 363)</value>
+ <key>type</key>
+ <value>string</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>value</key>
+ <value>'11'</value>
</param>
</block>
<block>
- <key>digital_map_bb</key>
+ <key>qtgui_time_sink_x</key>
<param>
- <key>id</key>
- <value>digital_map_bb_0_0</value>
+ <key>autoscale</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>map</key>
- <value>[-1, 1]</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>ctrlpanel</key>
+ <value>False</value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>entags</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(674, 443)</value>
+ <value>(1456, 345)</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>gui_hint</key>
+ <value></value>
</param>
- </block>
- <block>
- <key>fec_extended_tagged_encoder</key>
<param>
- <key>id</key>
- <value>fec_extended_tagged_encoder_0_1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>grid</key>
+ <value>False</value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_cc</value>
+ <key>id</key>
+ <value>qtgui_time_sink_x_1</value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>legend</key>
+ <value>True</value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>alpha1</key>
+ <value>1.0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>color1</key>
+ <value>"blue"</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>label1</key>
+ <value>None</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>marker1</key>
+ <value>-1</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>style1</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(332, 427)</value>
+ <key>width1</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>alpha10</key>
+ <value>1.0</value>
</param>
- </block>
- <block>
- <key>fec_extended_tagged_encoder</key>
<param>
- <key>id</key>
- <value>fec_extended_tagged_encoder_0_0</value>
+ <key>color10</key>
+ <value>"blue"</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>label10</key>
+ <value></value>
</param>
<param>
- <key>encoder_list</key>
- <value>enc_rep</value>
+ <key>marker10</key>
+ <value>-1</value>
</param>
<param>
- <key>puncpat</key>
- <value>puncpat</value>
+ <key>style10</key>
+ <value>1</value>
</param>
<param>
- <key>lentagname</key>
- <value>length_tag</value>
+ <key>width10</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>color2</key>
+ <value>"red"</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>label2</key>
+ <value>Rep (Rate=3)</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>marker2</key>
+ <value>-1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(332, 347)</value>
+ <key>style2</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>width2</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable_repetition_encoder_def</key>
<param>
- <key>id</key>
- <value>enc_rep</value>
+ <key>alpha3</key>
+ <value>1.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>color3</key>
+ <value>"green"</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>label3</key>
+ <value>CC (K=7, Rate=2)</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>marker3</key>
+ <value>-1</value>
</param>
<param>
- <key>dim1</key>
+ <key>style3</key>
<value>1</value>
</param>
<param>
- <key>dim2</key>
+ <key>width3</key>
<value>1</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>alpha4</key>
+ <value>1.0</value>
</param>
<param>
- <key>rep</key>
- <value>rep</value>
+ <key>color4</key>
+ <value>"black"</value>
</param>
<param>
- <key>alias</key>
+ <key>label4</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(362, 519)</value>
+ <key>marker4</key>
+ <value>-1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable_cc_encoder_def</key>
<param>
- <key>id</key>
- <value>enc_cc</value>
+ <key>alpha5</key>
+ <value>1.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>color5</key>
+ <value>"cyan"</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>label5</key>
+ <value></value>
</param>
<param>
- <key>ndim</key>
- <value>0</value>
+ <key>marker5</key>
+ <value>-1</value>
</param>
<param>
- <key>dim1</key>
+ <key>style5</key>
<value>1</value>
</param>
<param>
- <key>dim2</key>
+ <key>width5</key>
<value>1</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>alpha6</key>
+ <value>1.0</value>
</param>
<param>
- <key>k</key>
- <value>k</value>
+ <key>color6</key>
+ <value>"magenta"</value>
</param>
<param>
- <key>rate</key>
- <value>rate</value>
+ <key>label6</key>
+ <value></value>
</param>
<param>
- <key>polys</key>
- <value>polys</value>
+ <key>marker6</key>
+ <value>-1</value>
</param>
<param>
- <key>state_start</key>
- <value>0</value>
+ <key>style6</key>
+ <value>1</value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_TERMINATED</value>
+ <key>width6</key>
+ <value>1</value>
</param>
<param>
- <key>padding</key>
- <value>True</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
<param>
- <key>alias</key>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>label7</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(166, 519)</value>
+ <key>marker7</key>
+ <value>-1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>style7</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable_repetition_decoder_def</key>
<param>
- <key>id</key>
- <value>dec_rep</value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alpha8</key>
+ <value>1.0</value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>color8</key>
+ <value>"dark red"</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>label8</key>
+ <value></value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>marker8</key>
+ <value>-1</value>
</param>
<param>
- <key>dim2</key>
+ <key>style8</key>
<value>1</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>width8</key>
+ <value>1</value>
</param>
<param>
- <key>rep</key>
- <value>rep</value>
+ <key>alpha9</key>
+ <value>1.0</value>
</param>
<param>
- <key>prob</key>
- <value>0.5</value>
+ <key>color9</key>
+ <value>"dark green"</value>
</param>
<param>
- <key>alias</key>
+ <key>label9</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(362, 631)</value>
+ <key>marker9</key>
+ <value>-1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>style9</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable_cc_decoder_def</key>
<param>
- <key>id</key>
- <value>dec_cc</value>
+ <key>width9</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>name</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>"ok"</value>
+ <key>nconnections</key>
+ <value>3</value>
</param>
<param>
- <key>ndim</key>
- <value>1</value>
+ <key>size</key>
+ <value>2048</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>srate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>dim2</key>
- <value>4</value>
+ <key>tr_chan</key>
+ <value>0</value>
</param>
<param>
- <key>framebits</key>
- <value>MTU*8</value>
+ <key>tr_delay</key>
+ <value>0</value>
</param>
<param>
- <key>k</key>
- <value>k</value>
+ <key>tr_level</key>
+ <value>0.1</value>
</param>
<param>
- <key>rate</key>
- <value>rate</value>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_NORM</value>
</param>
<param>
- <key>polys</key>
- <value>polys</value>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
</param>
<param>
- <key>state_start</key>
- <value>0</value>
+ <key>tr_tag</key>
+ <value>""</value>
</param>
<param>
- <key>state_end</key>
- <value>-1</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_TERMINATED</value>
+ <key>update_time</key>
+ <value>0.01</value>
</param>
<param>
- <key>padding</key>
- <value>True</value>
+ <key>ylabel</key>
+ <value>Amplitude</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>yunit</key>
+ <value>""</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(166, 693)</value>
+ <key>ymax</key>
+ <value>1.5</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>ymin</key>
+ <value>-0.5</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>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <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_throttle_0</source_block_id>
- <sink_block_id>blocks_stream_to_tagged_stream_0_0_0</sink_block_id>
+ <source_block_id>blocks_char_to_float_1</source_block_id>
+ <sink_block_id>fec_extended_tagged_decoder_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_0</source_block_id>
- <sink_block_id>blocks_repack_bits_bb_0</sink_block_id>
+ <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>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_tagged_decoder_0_1</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
+ <source_block_id>blocks_char_to_float_1_0_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>
+ <sink_key>2</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_tagged_decoder_0_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0</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>
@@ -2014,44 +2153,44 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_1</source_block_id>
- <sink_block_id>fec_extended_tagged_decoder_0_0</sink_block_id>
+ <source_block_id>blocks_char_to_float_1_2</source_block_id>
+ <sink_block_id>fec_extended_tagged_decoder_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_1</sink_block_id>
+ <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+ <sink_block_id>fec_extended_tagged_encoder_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>2</sink_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_1</sink_block_id>
+ <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+ <sink_block_id>fec_extended_tagged_encoder_0_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <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_block_id>blocks_repack_bits_bb_0</source_block_id>
+ <sink_block_id>fec_extended_tagged_encoder_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_extended_tagged_decoder_0</source_block_id>
- <sink_block_id>blocks_char_to_float_1_0_1</sink_block_id>
+ <source_block_id>blocks_stream_to_tagged_stream_0_0_0</source_block_id>
+ <sink_block_id>blocks_repack_bits_bb_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_1_2</source_block_id>
- <sink_block_id>fec_extended_tagged_decoder_0</sink_block_id>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>blocks_stream_to_tagged_stream_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_map_bb_0_1</source_block_id>
- <sink_block_id>blocks_char_to_float_1_2</sink_block_id>
+ <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
+ <sink_block_id>blocks_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -2068,26 +2207,32 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_repack_bits_bb_0</source_block_id>
- <sink_block_id>fec_extended_tagged_encoder_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>fec_extended_tagged_encoder_0</source_block_id>
- <sink_block_id>digital_map_bb_0_1</sink_block_id>
+ <source_block_id>fec_extended_tagged_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>blocks_repack_bits_bb_0</source_block_id>
- <sink_block_id>fec_extended_tagged_encoder_0_0</sink_block_id>
+ <source_block_id>fec_extended_tagged_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_repack_bits_bb_0</source_block_id>
- <sink_block_id>fec_extended_tagged_encoder_0_1</sink_block_id>
+ <source_block_id>fec_extended_tagged_decoder_0_1</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>fec_extended_tagged_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>
diff --git a/gr-fec/grc/fec_async_decoder.xml b/gr-fec/grc/fec_async_decoder.xml
index 30bf0d1..9b67d86 100644
--- a/gr-fec/grc/fec_async_decoder.xml
+++ b/gr-fec/grc/fec_async_decoder.xml
@@ -3,7 +3,7 @@
<name>FEC Async Decoder</name>
<key>fec_async_decoder</key>
<import>from gnuradio import fec</import>
- <make>fec.async_decoder($decoder, $packed, $rev_pack)</make>
+ <make>fec.async_decoder($decoder, $packed, $rev_pack, $mtu)</make>
<param>
<name>Decoder Obj.</name>
@@ -12,6 +12,13 @@
</param>
<param>
+ <name>MTU (bytes)</name>
+ <key>mtu</key>
+ <value>1500</value>
+ <type>int</type>
+ </param>
+
+ <param>
<name>Packed</name>
<key>packed</key>
<value>False</value>
diff --git a/gr-fec/grc/fec_async_encoder.xml b/gr-fec/grc/fec_async_encoder.xml
index 55b1acd..68d516f 100644
--- a/gr-fec/grc/fec_async_encoder.xml
+++ b/gr-fec/grc/fec_async_encoder.xml
@@ -3,7 +3,7 @@
<name>FEC Async Encoder</name>
<key>fec_async_encoder</key>
<import>from gnuradio import fec</import>
- <make>fec.async_encoder($encoder, $packed, $rev_unpack, $rev_pack)</make>
+ <make>fec.async_encoder($encoder, $packed, $rev_unpack, $rev_pack,
$mtu)</make>
<param>
<name>Encoder Obj.</name>
@@ -12,6 +12,13 @@
</param>
<param>
+ <name>MTU (bytes)</name>
+ <key>mtu</key>
+ <value>1500</value>
+ <type>int</type>
+ </param>
+
+ <param>
<name>Packed</name>
<key>packed</key>
<value>False</value>
diff --git a/gr-fec/grc/fec_extended_tagged_decoder.xml
b/gr-fec/grc/fec_extended_tagged_decoder.xml
index b198da2..59f34d4 100644
--- a/gr-fec/grc/fec_extended_tagged_decoder.xml
+++ b/gr-fec/grc/fec_extended_tagged_decoder.xml
@@ -3,7 +3,7 @@
<name>FEC Extended Tagged Decoder</name>
<key>fec_extended_tagged_decoder</key>
<import>from gnuradio import fec</import>
- <make>self.$(id) = $(id) =
fec.extended_tagged_decoder(decoder_obj_list=$decoder_list, ann=$ann,
puncpat=$puncpat, integration_period=10000, lentagname=$lentagname)</make>
+ <make>self.$(id) = $(id) =
fec.extended_tagged_decoder(decoder_obj_list=$decoder_list, ann=$ann,
puncpat=$puncpat, integration_period=10000, lentagname=$lentagname,
mtu=$mtu)</make>
<param>
<name>fake val</name>
@@ -21,6 +21,13 @@
</param>
<param>
+ <name>MTU (bytes)</name>
+ <key>mtu</key>
+ <value>1500</value>
+ <type>int</type>
+ </param>
+
+ <param>
<name>Annihilator</name>
<key>ann</key>
<value>None</value>
diff --git a/gr-fec/grc/fec_extended_tagged_encoder.xml
b/gr-fec/grc/fec_extended_tagged_encoder.xml
index b525329..92df080 100644
--- a/gr-fec/grc/fec_extended_tagged_encoder.xml
+++ b/gr-fec/grc/fec_extended_tagged_encoder.xml
@@ -3,7 +3,7 @@
<name>FEC Extended Tagged Encoder</name>
<key>fec_extended_tagged_encoder</key>
<import>from gnuradio import fec</import>
- <make>fec.extended_tagged_encoder(encoder_obj_list=$encoder_list,
puncpat=$puncpat, lentagname=$lentagname)</make>
+ <make>fec.extended_tagged_encoder(encoder_obj_list=$encoder_list,
puncpat=$puncpat, lentagname=$lentagname, mtu=$mtu)</make>
<param>
<name>Encoder Objects</name>
@@ -13,6 +13,13 @@
</param>
<param>
+ <name>MTU (bytes)</name>
+ <key>mtu</key>
+ <value>1500</value>
+ <type>int</type>
+ </param>
+
+ <param>
<name>Puncture Pattern</name>
<key>puncpat</key>
<value>'11'</value>
diff --git a/gr-fec/grc/fec_tagged_decoder.xml
b/gr-fec/grc/fec_tagged_decoder.xml
index 9f8cf25..1ea20bd 100644
--- a/gr-fec/grc/fec_tagged_decoder.xml
+++ b/gr-fec/grc/fec_tagged_decoder.xml
@@ -3,7 +3,7 @@
<name>FEC Tagged Decoder</name>
<key>fec_tagged_decoder</key>
<import>from gnuradio import fec</import>
- <make>fec.tagged_decoder($decoder, $itype.size, $otype.size,
$lentagname)</make>
+ <make>fec.tagged_decoder($decoder, $itype.size, $otype.size, $lentagname,
$mtu)</make>
<param>
<name>Constituent Decoder</name>
@@ -13,6 +13,13 @@
</param>
<param>
+ <name>MTU (bytes)</name>
+ <key>mtu</key>
+ <value>1500</value>
+ <type>int</type>
+ </param>
+
+ <param>
<name>Input Type</name>
<key>itype</key>
<type>enum</type>
diff --git a/gr-fec/grc/fec_tagged_encoder.xml
b/gr-fec/grc/fec_tagged_encoder.xml
index 300d186..30fa20e 100644
--- a/gr-fec/grc/fec_tagged_encoder.xml
+++ b/gr-fec/grc/fec_tagged_encoder.xml
@@ -3,7 +3,7 @@
<name>FEC Tagged Encoder</name>
<key>fec_tagged_encoder</key>
<import>from gnuradio import fec</import>
- <make>fec.tagged_encoder($encoder, $itype.size, $otype.size,
$lentagname)</make>
+ <make>fec.tagged_encoder($encoder, $itype.size, $otype.size, $lentagname,
$mtu)</make>
<param>
<name>Constituent Encoder</name>
@@ -13,6 +13,13 @@
</param>
<param>
+ <name>MTU (bytes)</name>
+ <key>mtu</key>
+ <value>1500</value>
+ <type>int</type>
+ </param>
+
+ <param>
<name>Input Type</name>
<key>itype</key>
<type>enum</type>
diff --git a/gr-fec/include/gnuradio/fec/async_decoder.h
b/gr-fec/include/gnuradio/fec/async_decoder.h
index 05eda2f..eda0915 100644
--- a/gr-fec/include/gnuradio/fec/async_decoder.h
+++ b/gr-fec/include/gnuradio/fec/async_decoder.h
@@ -87,9 +87,13 @@ namespace gr {
* \param my_decoder An FECAPI decoder object child of the
generic_decoder class.
* \param packed Sets output to packed bytes if true; otherwise, 1 bit
per byte.
* \param rev_pack If packing bits, should they be reversed?
+ * \param mtu The Maxium Transmission Unit (MTU) of the output
+ * frame that the block will be able to
+ * process. Specified in bytes and defaults to 1500.
*/
static sptr make(generic_decoder::sptr my_decoder,
- bool packed=false, bool rev_pack=true);
+ bool packed=false, bool rev_pack=true,
+ int mtu=1500);
virtual int general_work(int noutput_items,
gr_vector_int& ninput_items,
diff --git a/gr-fec/include/gnuradio/fec/async_encoder.h
b/gr-fec/include/gnuradio/fec/async_encoder.h
index 0d31bc4..ed68334 100644
--- a/gr-fec/include/gnuradio/fec/async_encoder.h
+++ b/gr-fec/include/gnuradio/fec/async_encoder.h
@@ -82,10 +82,14 @@ namespace gr {
* \param packed True if working on packed bytes (like PDUs).
* \param rev_unpack Reverse the unpacking order from input bytes to
bits.
* \param rev_pack Reverse the packing order from bits to output bytes.
+ * \param mtu The Maxium Transmission Unit (MTU) of the input
+ * frame that the block will be able to
+ * process. Specified in bytes and defaults to 1500.
*/
static sptr make(generic_encoder::sptr my_encoder,
bool packed=false,
- bool rev_unpack=true, bool rev_pack=true);
+ bool rev_unpack=true, bool rev_pack=true,
+ int mtu=1500);
virtual int general_work(int noutput_items,
gr_vector_int& ninput_items,
diff --git a/gr-fec/include/gnuradio/fec/tagged_decoder.h
b/gr-fec/include/gnuradio/fec/tagged_decoder.h
index 4eba17a..7c8058c 100644
--- a/gr-fec/include/gnuradio/fec/tagged_decoder.h
+++ b/gr-fec/include/gnuradio/fec/tagged_decoder.h
@@ -76,11 +76,15 @@ namespace gr {
* \param input_item_size The size of the input items (often the
my_decoder object can tell us this).
* \param output_item_size The size of the output items (often the
my_decoder object can tell us this).
* \param lengthtagname Key name of the tagged stream frame size.
+ * \param mtu The Maxium Transmission Unit (MTU) of the output
+ * frame that the block will be able to
+ * process. Specified in bytes and defaults to 1500.
*/
static sptr make(generic_decoder::sptr my_decoder,
size_t input_item_size,
size_t output_item_size,
- const std::string &lengthtagname="packet_len");
+ const std::string &lengthtagname="packet_len",
+ int mtu=1500);
virtual int work(int noutput_items,
gr_vector_int& ninput_items,
diff --git a/gr-fec/include/gnuradio/fec/tagged_encoder.h
b/gr-fec/include/gnuradio/fec/tagged_encoder.h
index 86c2603..435584d 100644
--- a/gr-fec/include/gnuradio/fec/tagged_encoder.h
+++ b/gr-fec/include/gnuradio/fec/tagged_encoder.h
@@ -56,11 +56,15 @@ namespace gr {
* \param input_item_size size of a block of data for the encoder.
* \param output_item_size size of a block of data the encoder will
produce.
* \param lengthtagname Key name of the tagged stream frame size.
+ * \param mtu The Maxium Transmission Unit (MTU) of the input
+ * frame that the block will be able to
+ * process. Specified in bytes and defaults to 1500.
*/
static sptr make(generic_encoder::sptr my_encoder,
size_t input_item_size,
size_t output_item_size,
- const std::string& lengthtagname="packet_len");
+ const std::string& lengthtagname="packet_len",
+ int mtu=1500);
virtual int work(int noutput_items,
gr_vector_int& ninput_items,
diff --git a/gr-fec/lib/async_decoder_impl.cc b/gr-fec/lib/async_decoder_impl.cc
index b5ae04b..ed709e8 100644
--- a/gr-fec/lib/async_decoder_impl.cc
+++ b/gr-fec/lib/async_decoder_impl.cc
@@ -34,14 +34,16 @@ namespace gr {
async_decoder::sptr
async_decoder::make(generic_decoder::sptr my_decoder,
- bool packed, bool rev_pack)
+ bool packed, bool rev_pack,
+ int mtu)
{
return gnuradio::get_initial_sptr
- (new async_decoder_impl(my_decoder, packed, rev_pack));
+ (new async_decoder_impl(my_decoder, packed, rev_pack, mtu));
}
async_decoder_impl::async_decoder_impl(generic_decoder::sptr my_decoder,
- bool packed, bool rev_pack)
+ bool packed, bool rev_pack,
+ int mtu)
: block("async_decoder",
io_signature::make(0,0,0),
io_signature::make(0,0,0)),
@@ -58,6 +60,7 @@ namespace gr {
d_packed = packed;
d_rev_pack = rev_pack;
+ d_mtu = mtu;
message_port_register_in(d_in_port);
message_port_register_out(d_out_port);
@@ -71,7 +74,7 @@ namespace gr {
}
// The maximum frame size is set by the initial frame size of the
decoder.
- d_max_bits_in = d_decoder->get_input_size();
+ d_max_bits_in = d_mtu*8 * 1.0/d_decoder->rate();
d_tmp_f32 = (float*)volk_malloc(d_max_bits_in*sizeof(float),
volk_get_alignment());
@@ -81,7 +84,7 @@ namespace gr {
}
if(d_packed) {
- int max_bits_out = d_decoder->get_output_size();
+ int max_bits_out = d_mtu*8;
d_bits_out = (uint8_t*)volk_malloc(max_bits_out*sizeof(uint8_t),
volk_get_alignment());
}
@@ -114,7 +117,7 @@ namespace gr {
int diff = d_decoder->rate()*d_decoder->get_input_size() -
d_decoder->get_output_size();
size_t nbits_in = pmt::length(bits);
- size_t nbits_out = 0;
+ size_t nbits_out = 0;
size_t nblocks = 1;
bool variable_frame_size = d_decoder->set_frame_size(nbits_out);
@@ -127,14 +130,14 @@ namespace gr {
// set up nbits_out
if(variable_frame_size){
nbits_out = nbits_in*d_decoder->rate() - diff;
- } else {
- nblocks = nbits_in / d_decoder->get_input_size();
- nbits_out = nblocks * d_decoder->get_output_size();
- if(nblocks * d_decoder->get_input_size() != nbits_in){
- throw std::runtime_error("bad block multiple in!");
- }
+ }
+ else {
+ nblocks = nbits_in / d_decoder->get_input_size();
+ nbits_out = nblocks * d_decoder->get_output_size();
+ if(nblocks * d_decoder->get_input_size() != nbits_in){
+ throw std::runtime_error("bad block multiple in!");
}
-
+ }
size_t o0(0);
const float* f32in = pmt::f32vector_elements(bits, o0);
@@ -148,11 +151,11 @@ namespace gr {
// grow d_tmp_f32 if needed
if(nbits_in > d_max_bits_in){
- d_max_bits_in = nbits_in;
- volk_free(d_tmp_f32);
- d_tmp_f32 = (float*)volk_malloc(d_max_bits_in*sizeof(float),
- volk_get_alignment());
- }
+ d_max_bits_in = nbits_in;
+ volk_free(d_tmp_f32);
+ d_tmp_f32 = (float*)volk_malloc(d_max_bits_in*sizeof(float),
+ volk_get_alignment());
+ }
memcpy(d_tmp_f32, f32in, nbits_in*sizeof(float));
}
@@ -170,8 +173,9 @@ namespace gr {
}
else {
for(size_t i=0; i<nblocks; i++){
-
d_decoder->generic_work((void*)&d_tmp_f32[i*d_decoder->get_input_size()],
(void*)&u8out[i*d_decoder->get_output_size()]);
- }
+
d_decoder->generic_work((void*)&d_tmp_f32[i*d_decoder->get_input_size()],
+
(void*)&u8out[i*d_decoder->get_output_size()]);
+ }
}
meta = pmt::dict_add(meta, pmt::mp("iterations"),
pmt::mp(d_decoder->get_iterations()) );
diff --git a/gr-fec/lib/async_decoder_impl.h b/gr-fec/lib/async_decoder_impl.h
index 53dc84f..abbe55e 100644
--- a/gr-fec/lib/async_decoder_impl.h
+++ b/gr-fec/lib/async_decoder_impl.h
@@ -43,6 +43,7 @@ namespace gr {
bool d_packed;
bool d_rev_pack;
+ int d_mtu;
size_t d_max_bits_in;
float *d_tmp_f32;
@@ -54,7 +55,8 @@ namespace gr {
public:
async_decoder_impl(generic_decoder::sptr my_decoder,
- bool packed=false, bool rev_pack=true);
+ bool packed=false, bool rev_pack=true,
+ int mtu=1500);
~async_decoder_impl();
int general_work(int noutput_items,
diff --git a/gr-fec/lib/async_encoder_impl.cc b/gr-fec/lib/async_encoder_impl.cc
index b3396e7..346160b 100644
--- a/gr-fec/lib/async_encoder_impl.cc
+++ b/gr-fec/lib/async_encoder_impl.cc
@@ -34,14 +34,16 @@ namespace gr {
async_encoder::sptr
async_encoder::make(generic_encoder::sptr my_encoder,
- bool packed, bool rev_unpack, bool rev_pack)
+ bool packed, bool rev_unpack, bool rev_pack,
+ int mtu)
{
return gnuradio::get_initial_sptr
- (new async_encoder_impl(my_encoder, packed, rev_unpack, rev_pack));
+ (new async_encoder_impl(my_encoder, packed, rev_unpack, rev_pack,
mtu));
}
async_encoder_impl::async_encoder_impl(generic_encoder::sptr my_encoder,
- bool packed, bool rev_unpack, bool
rev_pack)
+ bool packed, bool rev_unpack, bool
rev_pack,
+ int mtu)
: block("async_encoder",
io_signature::make(0,0,0),
io_signature::make(0,0,0)),
@@ -55,6 +57,7 @@ namespace gr {
d_packed = packed;
d_rev_unpack = rev_unpack;
d_rev_pack = rev_pack;
+ d_mtu = mtu;
message_port_register_in(d_in_port);
message_port_register_out(d_out_port);
@@ -64,7 +67,7 @@ namespace gr {
d_unpack = new blocks::kernel::unpack_k_bits(8);
- int max_bits_out = d_encoder->get_output_size();
+ int max_bits_out = d_encoder->rate() * d_mtu * 8;
d_bits_out = (uint8_t*)volk_malloc(max_bits_out*sizeof(uint8_t),
volk_get_alignment());
@@ -80,7 +83,7 @@ namespace gr {
// encode_unpacked: Holds packed bits in when input conversion is
packed
// encode_packed: holds the output bits of the encoder to be packed
- int max_bits_in = d_encoder->get_input_size();
+ int max_bits_in = d_mtu*8;
d_bits_in = (uint8_t*)volk_malloc(max_bits_in*sizeof(uint8_t),
volk_get_alignment());
}
@@ -108,6 +111,10 @@ namespace gr {
size_t o0 = 0;
int nbits_in = pmt::length(bits);
+ if(nbits_in > (d_mtu*8)) {
+ throw std::runtime_error("async_encoder: received message larger than
the MTU.");
+ }
+
const uint8_t* bits_in = pmt::u8vector_elements(bits, o0);
bool variable_framesize = d_encoder->set_frame_size(nbits_in);
@@ -153,6 +160,10 @@ namespace gr {
size_t o0 = 0;
int nbytes_in = pmt::length(bytes);
+ if(nbytes_in > d_mtu) {
+ throw std::runtime_error("async_encoder: received message larger than
the MTU.");
+ }
+
int nbits_in = 8*nbytes_in;
const uint8_t* bytes_in = pmt::u8vector_elements(bytes, o0);
diff --git a/gr-fec/lib/async_encoder_impl.h b/gr-fec/lib/async_encoder_impl.h
index fe48177..2650543 100644
--- a/gr-fec/lib/async_encoder_impl.h
+++ b/gr-fec/lib/async_encoder_impl.h
@@ -46,6 +46,7 @@ namespace gr {
bool d_packed;
bool d_rev_unpack;
bool d_rev_pack;
+ int d_mtu;
uint8_t* d_bits_in;
uint8_t* d_bits_out;
@@ -56,7 +57,8 @@ namespace gr {
public:
async_encoder_impl(generic_encoder::sptr my_encoder,
bool packed=false,
- bool rev_unpack=true, bool rev_pack=true);
+ bool rev_unpack=true, bool rev_pack=true,
+ int mtu=1500);
~async_encoder_impl();
int general_work(int noutput_items,
diff --git a/gr-fec/lib/tagged_decoder_impl.cc
b/gr-fec/lib/tagged_decoder_impl.cc
index 2841b5f..989a7a7 100644
--- a/gr-fec/lib/tagged_decoder_impl.cc
+++ b/gr-fec/lib/tagged_decoder_impl.cc
@@ -35,24 +35,29 @@ namespace gr {
tagged_decoder::make(generic_decoder::sptr my_decoder,
size_t input_item_size,
size_t output_item_size,
- const std::string &lengthtagname)
+ const std::string &lengthtagname,
+ int mtu)
{
return gnuradio::get_initial_sptr
( new tagged_decoder_impl(my_decoder, input_item_size,
- output_item_size, lengthtagname));
+ output_item_size, lengthtagname,
+ mtu));
}
tagged_decoder_impl::tagged_decoder_impl(generic_decoder::sptr my_decoder,
size_t input_item_size,
size_t output_item_size,
- const std::string &lengthtagname)
+ const std::string &lengthtagname,
+ int mtu)
: tagged_stream_block("fec_tagged_decoder",
io_signature::make(1, 1, input_item_size),
io_signature::make(1, 1, output_item_size),
lengthtagname),
- d_input_item_size(input_item_size),
d_output_item_size(output_item_size)
+ d_input_item_size(input_item_size), d_output_item_size(output_item_size),
+ d_mtu(mtu)
{
d_decoder = my_decoder;
+ d_decoder->set_frame_size(d_mtu*8);
set_relative_rate(d_decoder->rate());
}
@@ -60,6 +65,10 @@ namespace gr {
int
tagged_decoder_impl::calculate_output_stream_length(const gr_vector_int
&ninput_items)
{
+ if((ninput_items[0]*d_decoder->rate()) > (d_mtu*8)) {
+ throw std::runtime_error("tagged_encoder: received frame is larger
than MTU.");
+ }
+ d_decoder->set_frame_size(round(ninput_items[0]*d_decoder->rate()));
return d_decoder->get_output_size();
}
@@ -76,10 +85,6 @@ 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]*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());
diff --git a/gr-fec/lib/tagged_decoder_impl.h b/gr-fec/lib/tagged_decoder_impl.h
index ec81a4f..08af956 100644
--- a/gr-fec/lib/tagged_decoder_impl.h
+++ b/gr-fec/lib/tagged_decoder_impl.h
@@ -34,12 +34,14 @@ namespace gr {
generic_decoder::sptr d_decoder;
size_t d_input_item_size;
size_t d_output_item_size;
+ int d_mtu;
public:
tagged_decoder_impl(generic_decoder::sptr my_decoder,
size_t input_item_size,
size_t output_item_size,
- const std::string &lengthtagname="packet_len");
+ const std::string &lengthtagname="packet_len",
+ int mtu=1500);
~tagged_decoder_impl();
int work(int noutput_items,
diff --git a/gr-fec/lib/tagged_encoder_impl.cc
b/gr-fec/lib/tagged_encoder_impl.cc
index 8461a56..3870fc5 100644
--- a/gr-fec/lib/tagged_encoder_impl.cc
+++ b/gr-fec/lib/tagged_encoder_impl.cc
@@ -35,26 +35,30 @@ namespace gr {
tagged_encoder::make(generic_encoder::sptr my_encoder,
size_t input_item_size,
size_t output_item_size,
- const std::string& lengthtagname)
+ const std::string& lengthtagname,
+ int mtu)
{
return gnuradio::get_initial_sptr
(new tagged_encoder_impl(my_encoder, input_item_size,
output_item_size,
- lengthtagname));
+ lengthtagname, mtu));
}
tagged_encoder_impl::tagged_encoder_impl(generic_encoder::sptr my_encoder,
size_t input_item_size,
size_t output_item_size,
- const std::string& lengthtagname)
+ const std::string& lengthtagname,
+ int mtu)
: tagged_stream_block("fec_tagged_encoder",
io_signature::make(1, 1, input_item_size),
io_signature::make(1, 1, output_item_size),
lengthtagname),
- d_input_item_size(input_item_size),
d_output_item_size(output_item_size)
+ d_input_item_size(input_item_size), d_output_item_size(output_item_size),
+ d_mtu(mtu)
{
d_encoder = my_encoder;
+ d_encoder->set_frame_size(d_mtu*8);
set_relative_rate(d_encoder->rate());
}
@@ -65,6 +69,10 @@ namespace gr {
int
tagged_encoder_impl::calculate_output_stream_length(const gr_vector_int
&ninput_items)
{
+ if(ninput_items[0] > (d_mtu*8)) {
+ throw std::runtime_error("tagged_encoder: received frame is larger
than MTU.");
+ }
+ d_encoder->set_frame_size(ninput_items[0]);
return d_encoder->get_output_size();
}
@@ -77,10 +85,6 @@ namespace gr {
char *inbuffer = (char*)input_items[0];
char *outbuffer = (char*)output_items[0];
- d_encoder->set_frame_size(ninput_items[0]);
- if(noutput_items < d_encoder->get_output_size())
- return 0;
-
GR_LOG_DEBUG(d_debug_logger, boost::format("nout: %1% nin: %2% ret:
%3%") \
% noutput_items % ninput_items[0] %
d_encoder->get_output_size());
diff --git a/gr-fec/lib/tagged_encoder_impl.h b/gr-fec/lib/tagged_encoder_impl.h
index 55b3553..a119607 100644
--- a/gr-fec/lib/tagged_encoder_impl.h
+++ b/gr-fec/lib/tagged_encoder_impl.h
@@ -34,12 +34,14 @@ namespace gr {
generic_encoder::sptr d_encoder;
size_t d_input_item_size;
size_t d_output_item_size;
+ int d_mtu;
public:
tagged_encoder_impl(generic_encoder::sptr my_encoder,
size_t input_item_size,
size_t output_item_size,
- const std::string &lengthtagname="packet_len");
+ const std::string &lengthtagname="packet_len",
+ int mtu=1500);
~tagged_encoder_impl();
int work(int noutput_items,
diff --git a/gr-fec/python/fec/extended_tagged_decoder.py
b/gr-fec/python/fec/extended_tagged_decoder.py
index 1865cbf..9713907 100644
--- a/gr-fec/python/fec/extended_tagged_decoder.py
+++ b/gr-fec/python/fec/extended_tagged_decoder.py
@@ -79,7 +79,8 @@ class extended_tagged_decoder(gr.hier_block2):
}
def __init__(self, decoder_obj_list, ann=None, puncpat='11',
- integration_period=10000, flush=None, rotator=None,
lentagname=None):
+ integration_period=10000, flush=None, rotator=None,
lentagname=None,
+ mtu=1500):
gr.hier_block2.__init__(self, "extended_decoder",
gr.io_signature(1, 1, gr.sizeof_float),
gr.io_signature(1, 1, gr.sizeof_char))
@@ -163,7 +164,7 @@ class extended_tagged_decoder(gr.hier_block2):
self.blocks.append(fec.tagged_decoder(decoder_obj,
fec.get_decoder_input_item_size(decoder_obj),
fec.get_decoder_output_item_size(decoder_obj),
- lentagname))
+ lentagname, mtu))
if fec.get_decoder_output_conversion(decoder_obj) == "unpack":
self.blocks.append(blocks.packed_to_unpacked_bb(1,
gr.GR_MSB_FIRST));
diff --git a/gr-fec/python/fec/extended_tagged_encoder.py
b/gr-fec/python/fec/extended_tagged_encoder.py
index 2f78b8e..d3cf1d8 100644
--- a/gr-fec/python/fec/extended_tagged_encoder.py
+++ b/gr-fec/python/fec/extended_tagged_encoder.py
@@ -26,7 +26,7 @@ import fec_swig as fec
from bitflip import read_bitlist
class extended_tagged_encoder(gr.hier_block2):
- def __init__(self, encoder_obj_list, puncpat=None, lentagname=None):
+ def __init__(self, encoder_obj_list, puncpat=None, lentagname=None,
mtu=1500):
gr.hier_block2.__init__(self, "extended_tagged_encoder",
gr.io_signature(1, 1, gr.sizeof_char),
gr.io_signature(1, 1, gr.sizeof_char))
@@ -66,7 +66,7 @@ class extended_tagged_encoder(gr.hier_block2):
self.blocks.append(fec.tagged_encoder(encoder_obj,
gr.sizeof_char,
gr.sizeof_char,
- lentagname))
+ lentagname, mtu))
if self.puncpat != '11':
self.blocks.append(fec.puncture_bb(len(puncpat),
read_bitlist(puncpat), 0))