<p>ptrkrysik would like vvvelichkov to <strong>review</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/gr-gsm/+/24061">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Migrate grc blocks from xml to yaml<br><br>Convert the blocks using cmdline_converter.py script from<br>https://gist.githubusercontent.com/haakov/4228ff6a14486641add538483093e86b/raw/c861a840e31182ace2e74f5425e356cb4f8b183a/cmdline_converter.py<br><br>Change-Id: Iee5c611a2e100bd2fdf487611a867dc937d8c292<br>---<br>M grc/CMakeLists.txt<br>M grc/decoding/CMakeLists.txt<br>A grc/decoding/gsm_control_channels_decoder.block.yml<br>D grc/decoding/gsm_control_channels_decoder.xml<br>A grc/decoding/gsm_tch_f_decoder.block.yml<br>D grc/decoding/gsm_tch_f_decoder.xml<br>A grc/decoding/gsm_tch_h_decoder.block.yml<br>D grc/decoding/gsm_tch_h_decoder.xml<br>M grc/decryption/CMakeLists.txt<br>A grc/decryption/gsm_decryption.block.yml<br>D grc/decryption/gsm_decryption.xml<br>M grc/demapping/CMakeLists.txt<br>A grc/demapping/gsm_bcch_ccch_demapper.block.yml<br>D grc/demapping/gsm_bcch_ccch_demapper.xml<br>A grc/demapping/gsm_bcch_ccch_sdcch4_demapper.block.yml<br>D grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml<br>A grc/demapping/gsm_sdcch8_demapper.block.yml<br>D grc/demapping/gsm_sdcch8_demapper.xml<br>A grc/demapping/gsm_tch_f_chans_demapper.block.yml<br>D grc/demapping/gsm_tch_f_chans_demapper.xml<br>A grc/demapping/gsm_tch_h_chans_demapper.block.yml<br>D grc/demapping/gsm_tch_h_chans_demapper.xml<br>A grc/demapping/gsm_universal_ctrl_chans_demapper.block.yml<br>D grc/demapping/gsm_universal_ctrl_chans_demapper.xml<br>M grc/flow_control/CMakeLists.txt<br>A grc/flow_control/gsm_burst_fnr_filter.block.yml<br>D grc/flow_control/gsm_burst_fnr_filter.xml<br>A grc/flow_control/gsm_burst_sdcch_subslot_filter.block.yml<br>D grc/flow_control/gsm_burst_sdcch_subslot_filter.xml<br>A grc/flow_control/gsm_burst_sdcch_subslot_splitter.block.yml<br>D grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml<br>A grc/flow_control/gsm_burst_timeslot_filter.block.yml<br>D grc/flow_control/gsm_burst_timeslot_filter.xml<br>A grc/flow_control/gsm_burst_timeslot_splitter.block.yml<br>D grc/flow_control/gsm_burst_timeslot_splitter.xml<br>A grc/flow_control/gsm_burst_type_filter.block.yml<br>D grc/flow_control/gsm_burst_type_filter.xml<br>A grc/flow_control/gsm_dummy_burst_filter.block.yml<br>D grc/flow_control/gsm_dummy_burst_filter.xml<br>A grc/flow_control/gsm_uplink_downlink_splitter.block.yml<br>D grc/flow_control/gsm_uplink_downlink_splitter.xml<br>A grc/gsm.tree.yml<br>D grc/gsm_block_tree.xml<br>M grc/misc_utils/CMakeLists.txt<br>A grc/misc_utils/gsm_burst_file_sink.block.yml<br>D grc/misc_utils/gsm_burst_file_sink.xml<br>A grc/misc_utils/gsm_burst_file_source.block.yml<br>D grc/misc_utils/gsm_burst_file_source.xml<br>A grc/misc_utils/gsm_burst_to_fn_time.block.yml<br>D grc/misc_utils/gsm_burst_to_fn_time.xml<br>A grc/misc_utils/gsm_bursts_printer.block.yml<br>D grc/misc_utils/gsm_bursts_printer.xml<br>A grc/misc_utils/gsm_clock_offset_corrector_tagged.block.yml<br>D grc/misc_utils/gsm_clock_offset_corrector_tagged.xml<br>A grc/misc_utils/gsm_collect_system_info.block.yml<br>D grc/misc_utils/gsm_collect_system_info.xml<br>A grc/misc_utils/gsm_controlled_fractional_resampler_cc.block.yml<br>D grc/misc_utils/gsm_controlled_fractional_resampler_cc.xml<br>A grc/misc_utils/gsm_controlled_rotator_cc.block.yml<br>D grc/misc_utils/gsm_controlled_rotator_cc.xml<br>A grc/misc_utils/gsm_extract_assignment_cmd.block.yml<br>D grc/misc_utils/gsm_extract_assignment_cmd.xml<br>A grc/misc_utils/gsm_extract_cmc.block.yml<br>D grc/misc_utils/gsm_extract_cmc.xml<br>A grc/misc_utils/gsm_extract_immediate_assignment.block.yml<br>D grc/misc_utils/gsm_extract_immediate_assignment.xml<br>A grc/misc_utils/gsm_extract_system_info.block.yml<br>D grc/misc_utils/gsm_extract_system_info.xml<br>A grc/misc_utils/gsm_message_file_sink.block.yml<br>D grc/misc_utils/gsm_message_file_sink.xml<br>A grc/misc_utils/gsm_message_file_source.block.yml<br>D grc/misc_utils/gsm_message_file_source.xml<br>A grc/misc_utils/gsm_message_printer.block.yml<br>D grc/misc_utils/gsm_message_printer.xml<br>A grc/misc_utils/gsm_msg_to_tag.block.yml<br>D grc/misc_utils/gsm_msg_to_tag.xml<br>A grc/misc_utils/gsm_tmsi_dumper.block.yml<br>D grc/misc_utils/gsm_tmsi_dumper.xml<br>M grc/qa_utils/CMakeLists.txt<br>A grc/qa_utils/gsm_burst_sink.block.yml<br>D grc/qa_utils/gsm_burst_sink.xml<br>A grc/qa_utils/gsm_burst_source.block.yml<br>D grc/qa_utils/gsm_burst_source.xml<br>A grc/qa_utils/gsm_message_sink.block.yml<br>D grc/qa_utils/gsm_message_sink.xml<br>A grc/qa_utils/gsm_message_source.block.yml<br>D grc/qa_utils/gsm_message_source.xml<br>M grc/receiver/CMakeLists.txt<br>A grc/receiver/gsm_clock_offset_control.block.yml<br>D grc/receiver/gsm_clock_offset_control.xml<br>A grc/receiver/gsm_cx_channel_hopper.block.yml<br>D grc/receiver/gsm_cx_channel_hopper.xml<br>A grc/receiver/gsm_fcch_burst_tagger.block.yml<br>D grc/receiver/gsm_fcch_burst_tagger.xml<br>A grc/receiver/gsm_fcch_detector.block.yml<br>D grc/receiver/gsm_fcch_detector.xml<br>A grc/receiver/gsm_input.block.yml<br>D grc/receiver/gsm_input.xml<br>A grc/receiver/gsm_receiver.block.yml<br>D grc/receiver/gsm_receiver.xml<br>A grc/receiver/gsm_receiver_with_uplink.block.yml<br>D grc/receiver/gsm_receiver_with_uplink.xml<br>A grc/receiver/gsm_sch_detector.block.yml<br>D grc/receiver/gsm_sch_detector.xml<br>M grc/transmitter/CMakeLists.txt<br>A grc/transmitter/gsm_gen_test_ab.block.yml<br>D grc/transmitter/gsm_gen_test_ab.xml<br>A grc/transmitter/gsm_gmsk_mod.block.yml<br>D grc/transmitter/gsm_gmsk_mod.xml<br>A grc/transmitter/gsm_preprocess_tx_burst.block.yml<br>D grc/transmitter/gsm_preprocess_tx_burst.xml<br>A grc/transmitter/gsm_txtime_bursts_tagger.block.yml<br>D grc/transmitter/gsm_txtime_bursts_tagger.xml<br>A grc/transmitter/gsm_txtime_setter.block.yml<br>D grc/transmitter/gsm_txtime_setter.xml<br>M grc/trx/CMakeLists.txt<br>A grc/trx/gsm_trx_burst_if.block.yml<br>D grc/trx/gsm_trx_burst_if.xml<br>118 files changed, 1,888 insertions(+), 2,154 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/gr-gsm refs/changes/61/24061/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt</span><br><span>index ae06065..deee6e0 100644</span><br><span>--- a/grc/CMakeLists.txt</span><br><span>+++ b/grc/CMakeLists.txt</span><br><span>@@ -26,5 +26,5 @@</span><br><span> add_subdirectory(transmitter)</span><br><span> add_subdirectory(trx)</span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_block_tree.xml DESTINATION share/gnuradio/grc/blocks</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm.tree.yml DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/decoding/CMakeLists.txt b/grc/decoding/CMakeLists.txt</span><br><span>index d488f21..63a2ee6 100644</span><br><span>--- a/grc/decoding/CMakeLists.txt</span><br><span>+++ b/grc/decoding/CMakeLists.txt</span><br><span>@@ -18,8 +18,8 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_control_channels_decoder.xml </span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_tch_f_decoder.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_tch_h_decoder.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_control_channels_decoder.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_tch_f_decoder.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_tch_h_decoder.block.yml</span><br><span>     DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/decoding/gsm_control_channels_decoder.block.yml b/grc/decoding/gsm_control_channels_decoder.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..df287a3</span><br><span>--- /dev/null</span><br><span>+++ b/grc/decoding/gsm_control_channels_decoder.block.yml</span><br><span>@@ -0,0 +1,19 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_control_channels_decoder</span><br><span style="color: hsl(120, 100%, 40%);">+label: Control channels decoder</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.control_channels_decoder()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/decoding/gsm_control_channels_decoder.xml b/grc/decoding/gsm_control_channels_decoder.xml</span><br><span>deleted file mode 100644</span><br><span>index 5884393..0000000</span><br><span>--- a/grc/decoding/gsm_control_channels_decoder.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,16 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Control channels decoder</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_control_channels_decoder</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.control_channels_decoder()</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/decoding/gsm_tch_f_decoder.block.yml b/grc/decoding/gsm_tch_f_decoder.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..1205448</span><br><span>--- /dev/null</span><br><span>+++ b/grc/decoding/gsm_tch_f_decoder.block.yml</span><br><span>@@ -0,0 +1,41 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_tch_f_decoder</span><br><span style="color: hsl(120, 100%, 40%);">+label: TCH/F decoder</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: mode</span><br><span style="color: hsl(120, 100%, 40%);">+    label: TCH coding mode</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: enum</span><br><span style="color: hsl(120, 100%, 40%);">+    options: [grgsm.TCH_FS, grgsm.TCH_EFR, grgsm.TCH_AFS12_2, grgsm.TCH_AFS10_2, grgsm.TCH_AFS7_95,</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.TCH_AFS7_4, grgsm.TCH_AFS6_7, grgsm.TCH_AFS5_9, grgsm.TCH_AFS5_15, grgsm.TCH_AFS4_75]</span><br><span style="color: hsl(120, 100%, 40%);">+    option_labels: [GSM-FR, GSM-EFR, GSM-AMR 12.2, GSM-AMR 10.2, GSM-AMR 7.95, GSM-AMR</span><br><span style="color: hsl(120, 100%, 40%);">+            7.4, GSM-AMR 6.7, GSM-AMR 5.9, GSM-AMR 5.15, GSM-AMR 4.75]</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: boundary_check</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Voice boundary detection</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: voice</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.tch_f_decoder(${mode}, ${boundary_check})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: "If \"Voice boundary detection\" is enabled, then only bursts are decoded\</span><br><span style="color: hsl(120, 100%, 40%);">+    \ as voice where\n\n- the framenumber is greater then the framenumber of a received\</span><br><span style="color: hsl(120, 100%, 40%);">+    \ \"Connect\" or \"Connect Acknowlegde\" message, and \n- the framenumber is less\</span><br><span style="color: hsl(120, 100%, 40%);">+    \ then the framenumber of a \"Release\" message"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/decoding/gsm_tch_f_decoder.xml b/grc/decoding/gsm_tch_f_decoder.xml</span><br><span>deleted file mode 100644</span><br><span>index 3d1152e..0000000</span><br><span>--- a/grc/decoding/gsm_tch_f_decoder.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,90 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>TCH/F decoder</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_tch_f_decoder</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.tch_f_decoder($mode, $boundary_check)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>TCH coding mode</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>mode</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>enum</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-FR</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_FS</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-EFR</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_EFR</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 12.2</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS12_2</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 10.2</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS10_2</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 7.95</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS7_95</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 7.4</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS7_4</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 6.7</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS6_7</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 5.9</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS5_9</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 5.15</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS5_15</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>GSM-AMR 4.75</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.TCH_AFS4_75</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Voice boundary detection</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>boundary_check</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>voice</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-    </span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-If "Voice boundary detection" is enabled, then only bursts are decoded as voice where</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-- the framenumber is greater then the framenumber of a received "Connect" or "Connect Acknowlegde" message, and </span><br><span style="color: hsl(0, 100%, 40%);">-- the framenumber is less then the framenumber of a "Release" message </span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/decoding/gsm_tch_h_decoder.block.yml b/grc/decoding/gsm_tch_h_decoder.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..8d26a0b</span><br><span>--- /dev/null</span><br><span>+++ b/grc/decoding/gsm_tch_h_decoder.block.yml</span><br><span>@@ -0,0 +1,51 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_tch_h_decoder</span><br><span style="color: hsl(120, 100%, 40%);">+label: TCH/H decoder</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: sub_channel</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Sub-channel number</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['0', '1']</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: none</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: multi_rate</span><br><span style="color: hsl(120, 100%, 40%);">+    label: MultiRate configuration</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: string</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: boundary_check</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Voice boundary detection</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: voice</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+asserts:</span><br><span style="color: hsl(120, 100%, 40%);">+- ${ sub_channel > -1 and sub_channel < 2 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.tch_h_decoder(${sub_channel}, ${multi_rate}, ${boundary_check})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    The MultiRate configuration string should contains the hex string from the</span><br><span style="color: hsl(120, 100%, 40%);">+    MultiRate configuration element from the Assignment Command message.</span><br><span style="color: hsl(120, 100%, 40%);">+    Example: 28111a40.</span><br><span style="color: hsl(120, 100%, 40%);">+    See 3GPP TS 44.018 - 10.5.2.21aa MultiRate configuratio</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Voice boundary detection" is enabled, then only bursts are decoded as voice where</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    - the framenumber is greater then the framenumber of a received "Connect" or "Connect Acknowlegde" message, and</span><br><span style="color: hsl(120, 100%, 40%);">+    - the framenumber is less then the framenumber of a "Release" message</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/decoding/gsm_tch_h_decoder.xml b/grc/decoding/gsm_tch_h_decoder.xml</span><br><span>deleted file mode 100644</span><br><span>index 3936336..0000000</span><br><span>--- a/grc/decoding/gsm_tch_h_decoder.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,70 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>TCH/H decoder</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_tch_h_decoder</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.tch_h_decoder($sub_channel, $multi_rate, $boundary_check)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Sub-channel number</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>sub_channel</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>none</hide></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>0</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>0</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>1</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>1</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>MultiRate configuration</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>multi_rate</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>string</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Voice boundary detection</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>boundary_check</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <check>$sub_channel() &gt; -1 and $sub_channel() &lt; 2</check></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>voice</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-The MultiRate configuration string should contains the hex string from the</span><br><span style="color: hsl(0, 100%, 40%);">-MultiRate configuration element from the Assignment Command message.</span><br><span style="color: hsl(0, 100%, 40%);">-Example: 28111a40.</span><br><span style="color: hsl(0, 100%, 40%);">-See 3GPP TS 44.018 - 10.5.2.21aa MultiRate configuratio</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Voice boundary detection" is enabled, then only bursts are decoded as voice where</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-- the framenumber is greater then the framenumber of a received "Connect" or "Connect Acknowlegde" message, and</span><br><span style="color: hsl(0, 100%, 40%);">-- the framenumber is less then the framenumber of a "Release" message</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/decryption/CMakeLists.txt b/grc/decryption/CMakeLists.txt</span><br><span>index 29d86f4..e71e466 100644</span><br><span>--- a/grc/decryption/CMakeLists.txt</span><br><span>+++ b/grc/decryption/CMakeLists.txt</span><br><span>@@ -18,5 +18,6 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_decryption.xml DESTINATION share/gnuradio/grc/blocks</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_decryption.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/decryption/gsm_decryption.block.yml b/grc/decryption/gsm_decryption.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..8260907</span><br><span>--- /dev/null</span><br><span>+++ b/grc/decryption/gsm_decryption.block.yml</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_decryption</span><br><span style="color: hsl(120, 100%, 40%);">+label: Decryption</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: k_c</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Kc session key</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,0,0,0,0,0,0,0]'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: a5_version</span><br><span style="color: hsl(120, 100%, 40%);">+    label: A5 version</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+asserts:</span><br><span style="color: hsl(120, 100%, 40%);">+- ${ a5_version > 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+- ${ a5_version < 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.decryption(${k_c}, ${a5_version})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/decryption/gsm_decryption.xml b/grc/decryption/gsm_decryption.xml</span><br><span>deleted file mode 100644</span><br><span>index 4f3de22..0000000</span><br><span>--- a/grc/decryption/gsm_decryption.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,34 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Decryption</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_decryption</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.decryption($k_c, $a5_version)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Kc session key</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>k_c</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,0,0,0,0,0,0,0]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>A5 version</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>a5_version</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>1</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <check>$a5_version &gt; 0</check></span><br><span style="color: hsl(0, 100%, 40%);">-  <check>$a5_version &lt; 5</check></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/demapping/CMakeLists.txt b/grc/demapping/CMakeLists.txt</span><br><span>index 4aacfff..2572235 100644</span><br><span>--- a/grc/demapping/CMakeLists.txt</span><br><span>+++ b/grc/demapping/CMakeLists.txt</span><br><span>@@ -18,11 +18,11 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_universal_ctrl_chans_demapper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_bcch_ccch_demapper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_bcch_ccch_sdcch4_demapper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_sdcch8_demapper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_tch_f_chans_demapper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_tch_h_chans_demapper.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_universal_ctrl_chans_demapper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_bcch_ccch_demapper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_bcch_ccch_sdcch4_demapper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_sdcch8_demapper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_tch_f_chans_demapper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_tch_h_chans_demapper.block.yml</span><br><span>     DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/demapping/gsm_bcch_ccch_demapper.block.yml b/grc/demapping/gsm_bcch_ccch_demapper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..21e87d8</span><br><span>--- /dev/null</span><br><span>+++ b/grc/demapping/gsm_bcch_ccch_demapper.block.yml</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_bcch_ccch_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+label: BCCH + CCCH Demapper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.gsm_bcch_ccch_demapper(</span><br><span style="color: hsl(120, 100%, 40%);">+            timeslot_nr=${timeslot_nr},</span><br><span style="color: hsl(120, 100%, 40%);">+        )</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_timeslot_nr(${timeslot_nr})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    Demapper for BCCH + CCCH control channels. This corresponds to channel combination iv specified in GSM 05.02, section 6.4</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/demapping/gsm_bcch_ccch_demapper.xml b/grc/demapping/gsm_bcch_ccch_demapper.xml</span><br><span>deleted file mode 100644</span><br><span>index 239dcc9..0000000</span><br><span>--- a/grc/demapping/gsm_bcch_ccch_demapper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,30 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>BCCH + CCCH Demapper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_bcch_ccch_demapper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <category></category></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.gsm_bcch_ccch_demapper(</span><br><span style="color: hsl(0, 100%, 40%);">-    timeslot_nr=$timeslot_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_timeslot_nr($timeslot_nr)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>timeslot_nr</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot_nr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-Demapper for BCCH + CCCH control channels. This corresponds to channel combination iv specified in GSM 05.02, section 6.4</span><br><span style="color: hsl(0, 100%, 40%);">-</doc></span><br><span style="color: hsl(0, 100%, 40%);">-  <grc_source>gr-gsm/hier_blocks/demapping/gsm_bcch_ccch_demapper.grc</grc_source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.block.yml b/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..d40a4e1</span><br><span>--- /dev/null</span><br><span>+++ b/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.block.yml</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_bcch_ccch_sdcch4_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+label: BCCH + CCCH + SDCCH/4 Demapper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.gsm_bcch_ccch_sdcch4_demapper(</span><br><span style="color: hsl(120, 100%, 40%);">+            timeslot_nr=${timeslot_nr},</span><br><span style="color: hsl(120, 100%, 40%);">+        )</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_timeslot_nr(${timeslot_nr})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    Demapper for BCCH + CCCH + SDCCH/4 + SACCH/C4 control channels. This corresponds to channel combination v specified in GSM 05.02, section 6.4</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml b/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml</span><br><span>deleted file mode 100644</span><br><span>index 6c6845a..0000000</span><br><span>--- a/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,30 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>BCCH + CCCH + SDCCH/4 Demapper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_bcch_ccch_sdcch4_demapper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <category></category></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.gsm_bcch_ccch_sdcch4_demapper(</span><br><span style="color: hsl(0, 100%, 40%);">-    timeslot_nr=$timeslot_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_timeslot_nr($timeslot_nr)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>timeslot_nr</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot_nr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-Demapper for BCCH + CCCH + SDCCH/4 + SACCH/C4 control channels. This corresponds to channel combination v specified in GSM 05.02, section 6.4</span><br><span style="color: hsl(0, 100%, 40%);">-</doc></span><br><span style="color: hsl(0, 100%, 40%);">-  <grc_source>gr-gsm/hier_blocks/demapping/gsm_bcch_ccch_sdcch4_demapper.grc</grc_source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/demapping/gsm_sdcch8_demapper.block.yml b/grc/demapping/gsm_sdcch8_demapper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..66a50c0</span><br><span>--- /dev/null</span><br><span>+++ b/grc/demapping/gsm_sdcch8_demapper.block.yml</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_sdcch8_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+label: SDCCH/8 Demapper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.gsm_sdcch8_demapper(</span><br><span style="color: hsl(120, 100%, 40%);">+            timeslot_nr=${timeslot_nr},</span><br><span style="color: hsl(120, 100%, 40%);">+        )</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_timeslot_nr(${timeslot_nr})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    Demapper for SDCCH/8 + SACCH/C8 control channels. This corresponds to channel combination vii specified in GSM 05.02, section 6.4</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/demapping/gsm_sdcch8_demapper.xml b/grc/demapping/gsm_sdcch8_demapper.xml</span><br><span>deleted file mode 100644</span><br><span>index 0c62a46..0000000</span><br><span>--- a/grc/demapping/gsm_sdcch8_demapper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,30 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>SDCCH/8 Demapper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_sdcch8_demapper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <category></category></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.gsm_sdcch8_demapper(</span><br><span style="color: hsl(0, 100%, 40%);">-    timeslot_nr=$timeslot_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_timeslot_nr($timeslot_nr)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>timeslot_nr</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot_nr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>1</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-Demapper for SDCCH/8 + SACCH/C8 control channels. This corresponds to channel combination vii specified in GSM 05.02, section 6.4</span><br><span style="color: hsl(0, 100%, 40%);">-</doc></span><br><span style="color: hsl(0, 100%, 40%);">-  <grc_source>gr-gsm/hier_blocks/demapping/gsm_sdcch8_demapper.grc</grc_source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/demapping/gsm_tch_f_chans_demapper.block.yml b/grc/demapping/gsm_tch_f_chans_demapper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..8d10c1d</span><br><span>--- /dev/null</span><br><span>+++ b/grc/demapping/gsm_tch_f_chans_demapper.block.yml</span><br><span>@@ -0,0 +1,30 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_tch_f_chans_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+label: TCH/F Demapper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Timeslot</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '2'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: tch_bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: acch_bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.tch_f_chans_demapper(${timeslot_nr})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/demapping/gsm_tch_f_chans_demapper.xml b/grc/demapping/gsm_tch_f_chans_demapper.xml</span><br><span>deleted file mode 100644</span><br><span>index 33b4153..0000000</span><br><span>--- a/grc/demapping/gsm_tch_f_chans_demapper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,31 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>TCH/F Demapper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_tch_f_chans_demapper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.tch_f_chans_demapper($timeslot_nr)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Timeslot</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot_nr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>2</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>tch_bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>acch_bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/demapping/gsm_tch_h_chans_demapper.block.yml b/grc/demapping/gsm_tch_h_chans_demapper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..4c8610e</span><br><span>--- /dev/null</span><br><span>+++ b/grc/demapping/gsm_tch_h_chans_demapper.block.yml</span><br><span>@@ -0,0 +1,37 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_tch_h_chans_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+label: TCH/H Demapper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Timeslot</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '2'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: none</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: tch_h_channel</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Sub-channel number</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['0', '1']</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: none</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: tch_bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: acch_bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+asserts:</span><br><span style="color: hsl(120, 100%, 40%);">+- ${ tch_h_channel > -1 and tch_h_channel < 2 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.tch_h_chans_demapper(${timeslot_nr}, ${tch_h_channel})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/demapping/gsm_tch_h_chans_demapper.xml b/grc/demapping/gsm_tch_h_chans_demapper.xml</span><br><span>deleted file mode 100644</span><br><span>index 52148f5..0000000</span><br><span>--- a/grc/demapping/gsm_tch_h_chans_demapper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,47 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>TCH/H Demapper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_tch_h_chans_demapper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.tch_h_chans_demapper($timeslot_nr, $tch_h_channel)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Timeslot</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot_nr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>2</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>none</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Sub-channel number</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>tch_h_channel</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>none</hide></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>0</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>0</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>1</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>1</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <check>$tch_h_channel() &gt; -1 and $tch_h_channel() &lt; 2</check></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>tch_bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>acch_bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/demapping/gsm_universal_ctrl_chans_demapper.block.yml b/grc/demapping/gsm_universal_ctrl_chans_demapper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..469384e</span><br><span>--- /dev/null</span><br><span>+++ b/grc/demapping/gsm_universal_ctrl_chans_demapper.block.yml</span><br><span>@@ -0,0 +1,61 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_universal_ctrl_chans_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+label: Universal Control Channels Demapper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: timeslot_nr</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: downlink_starts_fn_mod51</span><br><span style="color: hsl(120, 100%, 40%);">+    label: downlink_starts_fn_mod51</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: downlink_channel_types</span><br><span style="color: hsl(120, 100%, 40%);">+    label: downlink_channel_types</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: downlink_subslots</span><br><span style="color: hsl(120, 100%, 40%);">+    label: downlink_subslots</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: uplink_starts_fn_mod51</span><br><span style="color: hsl(120, 100%, 40%);">+    label: uplink_starts_fn_mod51</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: uplink_channel_types</span><br><span style="color: hsl(120, 100%, 40%);">+    label: uplink_channel_types</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: uplink_subslots</span><br><span style="color: hsl(120, 100%, 40%);">+    label: uplink_subslots</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.universal_ctrl_chans_demapper(${timeslot_nr}, ${downlink_starts_fn_mod51},</span><br><span style="color: hsl(120, 100%, 40%);">+        ${downlink_channel_types}, ${downlink_subslots}, ${uplink_starts_fn_mod51},</span><br><span style="color: hsl(120, 100%, 40%);">+        ${uplink_channel_types}, ${uplink_subslots})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Universal demapper for control channels.</span><br><span style="color: hsl(120, 100%, 40%);">+          Author: Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/demapping/gsm_universal_ctrl_chans_demapper.xml b/grc/demapping/gsm_universal_ctrl_chans_demapper.xml</span><br><span>deleted file mode 100644</span><br><span>index dcad1ae..0000000</span><br><span>--- a/grc/demapping/gsm_universal_ctrl_chans_demapper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,76 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Universal Control Channels Demapper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_universal_ctrl_chans_demapper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.universal_ctrl_chans_demapper($timeslot_nr, $downlink_starts_fn_mod51, $downlink_channel_types, $downlink_subslots, $uplink_starts_fn_mod51, $uplink_channel_types, $uplink_subslots)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>timeslot_nr</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot_nr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>downlink_starts_fn_mod51</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>downlink_starts_fn_mod51</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>downlink_channel_types</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>downlink_channel_types</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>downlink_subslots</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>downlink_subslots</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>uplink_starts_fn_mod51</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>uplink_starts_fn_mod51</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>uplink_channel_types</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>uplink_channel_types</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>uplink_subslots</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>uplink_subslots</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param>  </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-      Universal demapper for control channels.</span><br><span style="color: hsl(0, 100%, 40%);">-      Author: Piotr Krysik      </span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/flow_control/CMakeLists.txt b/grc/flow_control/CMakeLists.txt</span><br><span>index 1f98d8f..2876512 100644</span><br><span>--- a/grc/flow_control/CMakeLists.txt</span><br><span>+++ b/grc/flow_control/CMakeLists.txt</span><br><span>@@ -18,12 +18,13 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_timeslot_splitter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_fnr_filter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_timeslot_filter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_type_filter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_dummy_burst_filter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_sdcch_subslot_splitter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_sdcch_subslot_filter.xml </span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_uplink_downlink_splitter.xml DESTINATION share/gnuradio/grc/blocks</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_timeslot_splitter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_fnr_filter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_timeslot_filter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_type_filter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_dummy_burst_filter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_sdcch_subslot_splitter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_sdcch_subslot_filter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_uplink_downlink_splitter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/flow_control/gsm_burst_fnr_filter.block.yml b/grc/flow_control/gsm_burst_fnr_filter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..8dc9adc</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_burst_fnr_filter.block.yml</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_fnr_filter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst Framenumber Filter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: mode</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Mode</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: enum</span><br><span style="color: hsl(120, 100%, 40%);">+    options: [grgsm.FILTER_LESS_OR_EQUAL, grgsm.FILTER_GREATER_OR_EQUAL]</span><br><span style="color: hsl(120, 100%, 40%);">+    option_labels: [Less or equal, Greater or equal]</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: fnr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Framenumber</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '1500123'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_fnr_filter(${mode}, ${fnr})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Burst framenumber filter forwards only blocks with a framenumber satisfying the configured mode, i.e. if mode is "Less or equal", then only bursts with a smaller or equal framenumber are forwarded.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_burst_fnr_filter.xml b/grc/flow_control/gsm_burst_fnr_filter.xml</span><br><span>deleted file mode 100644</span><br><span>index 7b27583..0000000</span><br><span>--- a/grc/flow_control/gsm_burst_fnr_filter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,42 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst Framenumber Filter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_fnr_filter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_fnr_filter($mode, $fnr)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Mode</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>mode</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>enum</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Less or equal</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.FILTER_LESS_OR_EQUAL</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Greater or equal</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.FILTER_GREATER_OR_EQUAL</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Framenumber</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>fnr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>1500123</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-Burst framenumber filter forwards only blocks with a framenumber satisfying the configured mode, i.e. if mode is "Less or equal", then only bursts with a smaller or equal framenumber are forwarded.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/flow_control/gsm_burst_sdcch_subslot_filter.block.yml b/grc/flow_control/gsm_burst_sdcch_subslot_filter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..66039f6</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_burst_sdcch_subslot_filter.block.yml</span><br><span>@@ -0,0 +1,34 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_sdcch_subslot_filter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst SDCCH Subslot Filter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: mode</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Mode</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: enum</span><br><span style="color: hsl(120, 100%, 40%);">+    options: [grgsm.SS_FILTER_SDCCH8, grgsm.SS_FILTER_SDCCH4]</span><br><span style="color: hsl(120, 100%, 40%);">+    option_labels: [SDCCH/8, SDCCH/4]</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: subslot</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Subslot</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: none</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_sdcch_subslot_filter(${mode}, ${subslot})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block forwards only bursts in the subslot given by the parameter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_burst_sdcch_subslot_filter.xml b/grc/flow_control/gsm_burst_sdcch_subslot_filter.xml</span><br><span>deleted file mode 100644</span><br><span>index ddfcb3b..0000000</span><br><span>--- a/grc/flow_control/gsm_burst_sdcch_subslot_filter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,44 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst SDCCH Subslot Filter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_sdcch_subslot_filter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_sdcch_subslot_filter($mode, $subslot)</make></span><br><span style="color: hsl(0, 100%, 40%);">-   </span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Mode</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>mode</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>enum</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>SDCCH/8</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.SS_FILTER_SDCCH8</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>SDCCH/4</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>grgsm.SS_FILTER_SDCCH4</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Subslot</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>subslot</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>none</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block forwards only bursts in the subslot given by the parameter</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>\ No newline at end of file</span><br><span>diff --git a/grc/flow_control/gsm_burst_sdcch_subslot_splitter.block.yml b/grc/flow_control/gsm_burst_sdcch_subslot_splitter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..a409dd2</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_burst_sdcch_subslot_splitter.block.yml</span><br><span>@@ -0,0 +1,39 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_sdcch_subslot_splitter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst SDCCH Subslot Splitter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: ports</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Mode</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: enum</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['8', '4']</span><br><span style="color: hsl(120, 100%, 40%);">+    option_labels: [SDCCH/8, SDCCH/4]</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+    multiplicity: ${ ports }</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.burst_sdcch_subslot_splitter(</span><br><span style="color: hsl(120, 100%, 40%);">+        % if int(ports)==4:</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.SPLITTER_SDCCH4</span><br><span style="color: hsl(120, 100%, 40%);">+        % else:</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.SPLITTER_SDCCH8</span><br><span style="color: hsl(120, 100%, 40%);">+        % endif</span><br><span style="color: hsl(120, 100%, 40%);">+          )</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Burst SDCCH subslot splitter distributes bursts to eight different output ports depending on the subslots to which the bursts belong.</span><br><span style="color: hsl(120, 100%, 40%);">+    This means subslot 0 bursts are sent to port out0, subslot 1 bursts on port out1, and so on.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml b/grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml</span><br><span>deleted file mode 100644</span><br><span>index 62415e7..0000000</span><br><span>--- a/grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,44 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst SDCCH Subslot Splitter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_sdcch_subslot_splitter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_sdcch_subslot_splitter(</span><br><span style="color: hsl(0, 100%, 40%);">-#if int($ports())==4 #</span><br><span style="color: hsl(0, 100%, 40%);">-grgsm.SPLITTER_SDCCH4</span><br><span style="color: hsl(0, 100%, 40%);">-#else</span><br><span style="color: hsl(0, 100%, 40%);">-grgsm.SPLITTER_SDCCH8</span><br><span style="color: hsl(0, 100%, 40%);">-#end if</span><br><span style="color: hsl(0, 100%, 40%);">-  )</make></span><br><span style="color: hsl(0, 100%, 40%);">-   </span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Mode</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>ports</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>enum</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>SDCCH/8</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>8</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>SDCCH/4</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>4</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-    </span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <nports>$ports</nports></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-Burst SDCCH subslot splitter distributes bursts to eight different output ports depending on the subslots to which the bursts belong.</span><br><span style="color: hsl(0, 100%, 40%);">-This means subslot 0 bursts are sent to port out0, subslot 1 bursts on port out1, and so on.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>\ No newline at end of file</span><br><span>diff --git a/grc/flow_control/gsm_burst_timeslot_filter.block.yml b/grc/flow_control/gsm_burst_timeslot_filter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..afc0c2b</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_burst_timeslot_filter.block.yml</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_timeslot_filter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst Timeslot Filter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslot</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Timeslot</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: none</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_timeslot_filter(${timeslot})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block forwards only bursts in the timeslot given by the parameter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_burst_timeslot_filter.xml b/grc/flow_control/gsm_burst_timeslot_filter.xml</span><br><span>deleted file mode 100644</span><br><span>index b900375..0000000</span><br><span>--- a/grc/flow_control/gsm_burst_timeslot_filter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,30 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst Timeslot Filter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_timeslot_filter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_timeslot_filter($timeslot)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Timeslot</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslot</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>none</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block forwards only bursts in the timeslot given by the parameter</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/flow_control/gsm_burst_timeslot_splitter.block.yml b/grc/flow_control/gsm_burst_timeslot_splitter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..2d8faee</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_burst_timeslot_splitter.block.yml</span><br><span>@@ -0,0 +1,24 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_timeslot_splitter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst Timeslot Splitter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+    multiplicity: '8'</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_timeslot_splitter()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: "Burst timeslot splitter distributes bursts to eight different output\</span><br><span style="color: hsl(120, 100%, 40%);">+    \ ports depending on the timeslots of the bursts. \nThis means timeslot 0 bursts\</span><br><span style="color: hsl(120, 100%, 40%);">+    \ are sent to port out0, timeslot 1 bursts on port out1, and so on."</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_burst_timeslot_splitter.xml b/grc/flow_control/gsm_burst_timeslot_splitter.xml</span><br><span>deleted file mode 100644</span><br><span>index 4f6159e..0000000</span><br><span>--- a/grc/flow_control/gsm_burst_timeslot_splitter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,24 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst Timeslot Splitter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_timeslot_splitter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_timeslot_splitter()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <nports>8</nports></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-Burst timeslot splitter distributes bursts to eight different output ports depending on the timeslots of the bursts. </span><br><span style="color: hsl(0, 100%, 40%);">-This means timeslot 0 bursts are sent to port out0, timeslot 1 bursts on port out1, and so on.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/flow_control/gsm_burst_type_filter.block.yml b/grc/flow_control/gsm_burst_type_filter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..21222ae</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_burst_type_filter.block.yml</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_type_filter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst Type Filter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: selected_burst_types</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Selected burst types</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0,1,2,3,4,5,6,7]'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_type_filter(${selected_burst_types})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block filters bursts based on their type.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    For more information on burst types, see GSM 05.02.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_burst_type_filter.xml b/grc/flow_control/gsm_burst_type_filter.xml</span><br><span>deleted file mode 100644</span><br><span>index d7d86f4..0000000</span><br><span>--- a/grc/flow_control/gsm_burst_type_filter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,32 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst Type Filter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_type_filter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_type_filter($selected_burst_types)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Selected burst types</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>selected_burst_types</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0,1,2,3,4,5,6,7]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block filters bursts based on their type.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-For more information on burst types, see GSM 05.02.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/flow_control/gsm_dummy_burst_filter.block.yml b/grc/flow_control/gsm_dummy_burst_filter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..f0f690c</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_dummy_burst_filter.block.yml</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_dummy_burst_filter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Dummy Burst Filter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.dummy_burst_filter()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: "This block filters dummy bursts. \n\nFor more information on dummy\</span><br><span style="color: hsl(120, 100%, 40%);">+    \ bursts, see GSM 05.02."</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_dummy_burst_filter.xml b/grc/flow_control/gsm_dummy_burst_filter.xml</span><br><span>deleted file mode 100644</span><br><span>index 126e4fe..0000000</span><br><span>--- a/grc/flow_control/gsm_dummy_burst_filter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,24 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Dummy Burst Filter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_dummy_burst_filter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.dummy_burst_filter()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block filters dummy bursts. </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-For more information on dummy bursts, see GSM 05.02.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/flow_control/gsm_uplink_downlink_splitter.block.yml b/grc/flow_control/gsm_uplink_downlink_splitter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..12d141d</span><br><span>--- /dev/null</span><br><span>+++ b/grc/flow_control/gsm_uplink_downlink_splitter.block.yml</span><br><span>@@ -0,0 +1,23 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_uplink_downlink_splitter</span><br><span style="color: hsl(120, 100%, 40%);">+label: Up/Down-link splitter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: downlink</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: uplink</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.uplink_downlink_splitter()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/flow_control/gsm_uplink_downlink_splitter.xml b/grc/flow_control/gsm_uplink_downlink_splitter.xml</span><br><span>deleted file mode 100644</span><br><span>index 5c0c932..0000000</span><br><span>--- a/grc/flow_control/gsm_uplink_downlink_splitter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,22 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Up/Down-link splitter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_uplink_downlink_splitter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.uplink_downlink_splitter()</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>downlink</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source>  </span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>uplink</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source>  </span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/gsm.tree.yml b/grc/gsm.tree.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..4aee993</span><br><span>--- /dev/null</span><br><span>+++ b/grc/gsm.tree.yml</span><br><span>@@ -0,0 +1,58 @@</span><br><span style="color: hsl(120, 100%, 40%);">+'[GSM]':</span><br><span style="color: hsl(120, 100%, 40%);">+- Receiver:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_receiver</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_receiver_with_uplink</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_cx_channel_hopper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_fcch_burst_tagger</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_sch_detector</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_fcch_detector</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_clock_offset_control</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_input</span><br><span style="color: hsl(120, 100%, 40%);">+- Transmitter:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_txtime_bursts_tagger</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_txtime_setter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_gmsk_mod</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_preprocess_tx_burst</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_gen_test_ab</span><br><span style="color: hsl(120, 100%, 40%);">+- Transceiver:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_trx_burst_if</span><br><span style="color: hsl(120, 100%, 40%);">+- Logical channels demapping:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_universal_ctrl_chans_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_bcch_ccch_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_bcch_ccch_sdcch4_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_sdcch8_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_tch_f_chans_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_tch_h_chans_demapper</span><br><span style="color: hsl(120, 100%, 40%);">+- Decryption:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_decryption</span><br><span style="color: hsl(120, 100%, 40%);">+- Decoding:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_control_channels_decoder</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_tch_f_decoder</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_tch_h_decoder</span><br><span style="color: hsl(120, 100%, 40%);">+- Flow control:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_timeslot_splitter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_sdcch_subslot_splitter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_timeslot_filter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_sdcch_subslot_filter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_fnr_filter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_type_filter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_dummy_burst_filter</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_uplink_downlink_splitter</span><br><span style="color: hsl(120, 100%, 40%);">+- Utilities:</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_bursts_printer</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_file_sink</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_file_source</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_collect_system_info</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_message_file_sink</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_message_file_source</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_extract_system_info</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_extract_immediate_assignment</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_extract_cmc</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_extract_assignment_cmd</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_controlled_rotator_cc</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_controlled_fractional_resampler_cc</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_message_printer</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_clock_offset_corrector_tagged</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_msg_to_tag</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_tmsi_dumper</span><br><span style="color: hsl(120, 100%, 40%);">+  - gsm_burst_to_fn_time</span><br><span>diff --git a/grc/gsm_block_tree.xml b/grc/gsm_block_tree.xml</span><br><span>deleted file mode 100644</span><br><span>index b056003..0000000</span><br><span>--- a/grc/gsm_block_tree.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,87 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-<!--</span><br><span style="color: hsl(0, 100%, 40%);">-###################################################</span><br><span style="color: hsl(0, 100%, 40%);">-##Block Tree for GSM blocks.</span><br><span style="color: hsl(0, 100%, 40%);">-###################################################</span><br><span>---></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-<cat></span><br><span style="color: hsl(0, 100%, 40%);">-  <name></name> <!-- Blank for Root Name --></span><br><span style="color: hsl(0, 100%, 40%);">-  <cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>GSM</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Receiver</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_receiver</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_receiver_with_uplink</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_cx_channel_hopper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_fcch_burst_tagger</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_sch_detector</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_fcch_detector</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_clock_offset_control</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_input</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Transmitter</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_txtime_bursts_tagger</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_txtime_setter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_gmsk_mod</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_preprocess_tx_burst</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_gen_test_ab</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Transceiver</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_trx_burst_if</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Logical channels demapping</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_universal_ctrl_chans_demapper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_bcch_ccch_demapper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_bcch_ccch_sdcch4_demapper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_sdcch8_demapper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_tch_f_chans_demapper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_tch_h_chans_demapper</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Decryption</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_decryption</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Decoding</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_control_channels_decoder</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_tch_f_decoder</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_tch_h_decoder</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Flow control</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_timeslot_splitter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_sdcch_subslot_splitter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_timeslot_filter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_sdcch_subslot_filter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_fnr_filter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_type_filter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_dummy_burst_filter</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_uplink_downlink_splitter</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-    <cat></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>Utilities</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_bursts_printer</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_file_sink</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_file_source</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_collect_system_info</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_message_file_sink</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_message_file_source</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_extract_system_info</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_extract_immediate_assignment</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_extract_cmc</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_extract_assignment_cmd</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_controlled_rotator_cc</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_controlled_fractional_resampler_cc</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_message_printer</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_clock_offset_corrector_tagged</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_msg_to_tag</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_tmsi_dumper</block></span><br><span style="color: hsl(0, 100%, 40%);">-      <block>gsm_burst_to_fn_time</block></span><br><span style="color: hsl(0, 100%, 40%);">-    </cat></span><br><span style="color: hsl(0, 100%, 40%);">-  </cat></span><br><span style="color: hsl(0, 100%, 40%);">-</cat></span><br><span>diff --git a/grc/misc_utils/CMakeLists.txt b/grc/misc_utils/CMakeLists.txt</span><br><span>index bad53e6..73869d3 100644</span><br><span>--- a/grc/misc_utils/CMakeLists.txt</span><br><span>+++ b/grc/misc_utils/CMakeLists.txt</span><br><span>@@ -18,22 +18,22 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_extract_system_info.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_extract_immediate_assignment.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_collect_system_info.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_extract_cmc.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_extract_assignment_cmd.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_controlled_rotator_cc.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_message_printer.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_bursts_printer.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_clock_offset_corrector_tagged.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_tmsi_dumper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_file_sink.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_file_source.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_message_file_sink.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_message_file_source.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_msg_to_tag.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_controlled_fractional_resampler_cc.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_to_fn_time.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_extract_system_info.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_extract_immediate_assignment.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_collect_system_info.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_extract_cmc.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_extract_assignment_cmd.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_controlled_rotator_cc.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_message_printer.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_bursts_printer.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_clock_offset_corrector_tagged.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_tmsi_dumper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_file_sink.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_file_source.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_message_file_sink.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_message_file_source.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_msg_to_tag.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_controlled_fractional_resampler_cc.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_to_fn_time.block.yml</span><br><span>     DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/misc_utils/gsm_burst_file_sink.block.yml b/grc/misc_utils/gsm_burst_file_sink.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..00afadc</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_burst_file_sink.block.yml</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_file_sink</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst File Sink</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: filename</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Destination file</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: file_open</span><br><span style="color: hsl(120, 100%, 40%);">+    default: /tmp/bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_file_sink(${filename})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_burst_file_sink.xml b/grc/misc_utils/gsm_burst_file_sink.xml</span><br><span>deleted file mode 100644</span><br><span>index 61bde2d..0000000</span><br><span>--- a/grc/misc_utils/gsm_burst_file_sink.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,19 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst File Sink</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_file_sink</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_file_sink($filename)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Destination file</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>filename</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>/tmp/bursts</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>file_open</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_burst_file_source.block.yml b/grc/misc_utils/gsm_burst_file_source.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..f75bf55</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_burst_file_source.block.yml</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_file_source</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst File Source</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: filename</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Source file</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: file_open</span><br><span style="color: hsl(120, 100%, 40%);">+    default: /tmp/bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_file_source(${filename})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_burst_file_source.xml b/grc/misc_utils/gsm_burst_file_source.xml</span><br><span>deleted file mode 100644</span><br><span>index 5e160fb..0000000</span><br><span>--- a/grc/misc_utils/gsm_burst_file_source.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,19 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst File Source</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_file_source</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_file_source($filename)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Source file</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>filename</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>/tmp/bursts</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>file_open</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_burst_to_fn_time.block.yml b/grc/misc_utils/gsm_burst_to_fn_time.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..f4c687c</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_burst_to_fn_time.block.yml</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_to_fn_time</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst to FN time</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: fn_time_out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_to_fn_time()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_burst_to_fn_time.xml b/grc/misc_utils/gsm_burst_to_fn_time.xml</span><br><span>deleted file mode 100644</span><br><span>index c8ae088..0000000</span><br><span>--- a/grc/misc_utils/gsm_burst_to_fn_time.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,19 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst to FN time</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_to_fn_time</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_to_fn_time()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>fn_time_out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_bursts_printer.block.yml b/grc/misc_utils/gsm_bursts_printer.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..0f99789</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_bursts_printer.block.yml</span><br><span>@@ -0,0 +1,57 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_bursts_printer</span><br><span style="color: hsl(120, 100%, 40%);">+label: Bursts Printer</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: prepend_string</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Prepend String</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: string</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: prepend_fnr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Prepend Frame Number</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: prepend_frame_count</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Prepend Frame Count</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: print_payload_only</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Print payload only</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: ignore_dummy_bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Ignore dummy bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+        import pmt</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.bursts_printer(pmt.intern(${prepend_string}), ${prepend_fnr},</span><br><span style="color: hsl(120, 100%, 40%);">+            ${prepend_frame_count}, ${print_payload_only}, ${ignore_dummy_bursts})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block prints bursts to output. By default the whole burst including tail bits, stealing bits and training sequence is printed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Prepend Frame Number" is enabled, then the framenumber is prepended to each burst.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Prepend Frame Count" is enabled, then the frame count for A5 is prependend to each burst.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Print payload only" is enabled, then only the two data blocks of a burst are printed, tail bits, stealing bits and training sequence are omitted.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Ignore dummy bursts" is enabled, then the burst printer will not print dummy bursts (see GSM 05.02)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    Enabling first three options (or all four options) results in an output that is similar to the output of airprobe, i.e. the format is "frame_nr frame_count: databits"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_bursts_printer.xml b/grc/misc_utils/gsm_bursts_printer.xml</span><br><span>deleted file mode 100644</span><br><span>index d6ddfcb..0000000</span><br><span>--- a/grc/misc_utils/gsm_bursts_printer.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,92 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Bursts Printer</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_bursts_printer</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import pmt</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.bursts_printer(pmt.intern($prepend_string), $prepend_fnr,</span><br><span style="color: hsl(0, 100%, 40%);">-    $prepend_frame_count, $print_payload_only, $ignore_dummy_bursts)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Prepend String</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>prepend_string</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value></value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>string</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Prepend Frame Number</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>prepend_fnr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Prepend Frame Count</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>prepend_frame_count</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Print payload only</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>print_payload_only</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Ignore dummy bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>ignore_dummy_bursts</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block prints bursts to output. By default the whole burst including tail bits, stealing bits and training sequence is printed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Prepend Frame Number" is enabled, then the framenumber is prepended to each burst.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Prepend Frame Count" is enabled, then the frame count for A5 is prependend to each burst.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Print payload only" is enabled, then only the two data blocks of a burst are printed, tail bits, stealing bits and training sequence are omitted.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Ignore dummy bursts" is enabled, then the burst printer will not print dummy bursts (see GSM 05.02)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Enabling first three options (or all four options) results in an output that is similar to the output of airprobe, i.e. the format is "frame_nr frame_count: databits"</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_clock_offset_corrector_tagged.block.yml b/grc/misc_utils/gsm_clock_offset_corrector_tagged.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..6daa18c</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_clock_offset_corrector_tagged.block.yml</span><br><span>@@ -0,0 +1,56 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_clock_offset_corrector_tagged</span><br><span style="color: hsl(120, 100%, 40%);">+label: Clock Offset Corrector Tagged</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    label: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 936.6e6</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: ppm</span><br><span style="color: hsl(120, 100%, 40%);">+    label: ppm</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: samp_rate_in</span><br><span style="color: hsl(120, 100%, 40%);">+    label: samp_rate_in</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 1625000.0/6.0*4.0</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: osr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: osr</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: ctrl</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.clock_offset_corrector_tagged(</span><br><span style="color: hsl(120, 100%, 40%);">+            fc=${fc},</span><br><span style="color: hsl(120, 100%, 40%);">+            samp_rate_in=${samp_rate_in},</span><br><span style="color: hsl(120, 100%, 40%);">+            ppm=${ppm},</span><br><span style="color: hsl(120, 100%, 40%);">+            osr=${osr}</span><br><span style="color: hsl(120, 100%, 40%);">+        )</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_fc(${fc})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_ppm(${ppm})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_samp_rate_in(${samp_rate_in})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_osr(${osr})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    Clock offset corrector with blocks that use tags to switch offsets</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_clock_offset_corrector_tagged.xml b/grc/misc_utils/gsm_clock_offset_corrector_tagged.xml</span><br><span>deleted file mode 100644</span><br><span>index bcec98e..0000000</span><br><span>--- a/grc/misc_utils/gsm_clock_offset_corrector_tagged.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,57 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Clock Offset Corrector Tagged</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_clock_offset_corrector_tagged</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.clock_offset_corrector_tagged(</span><br><span style="color: hsl(0, 100%, 40%);">-    fc=$fc,</span><br><span style="color: hsl(0, 100%, 40%);">-    samp_rate_in=$samp_rate_in,</span><br><span style="color: hsl(0, 100%, 40%);">-    ppm=$ppm,</span><br><span style="color: hsl(0, 100%, 40%);">-    osr=$osr</span><br><span style="color: hsl(0, 100%, 40%);">-)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_fc($fc)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_ppm($ppm)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_samp_rate_in($samp_rate_in)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_osr($osr)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>fc</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>fc</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>936.6e6</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>ppm</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>ppm</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>samp_rate_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>samp_rate_in</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>1625000.0/6.0*4.0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>OSR</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>osr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>osr</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>ctrl</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-Clock offset corrector with blocks that use tags to switch offsets</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_collect_system_info.block.yml b/grc/misc_utils/gsm_collect_system_info.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..f7d5d85</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_collect_system_info.block.yml</span><br><span>@@ -0,0 +1,23 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_collect_system_info</span><br><span style="color: hsl(120, 100%, 40%);">+label: Collect System Info</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.collect_system_info()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This blocks collect System Information Messages, which can be retrieved using the following methods:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    get_framenumbers(): Get the list with the framenumbers of the System Information Messages</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    get_system_information_type(): Get the types of the System Information Messages</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    get_data(): Get the whole System Information Messages in Hex representation</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_collect_system_info.xml b/grc/misc_utils/gsm_collect_system_info.xml</span><br><span>deleted file mode 100644</span><br><span>index bad0396..0000000</span><br><span>--- a/grc/misc_utils/gsm_collect_system_info.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,20 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Collect System Info</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_collect_system_info</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.collect_system_info()</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This blocks collect System Information Messages, which can be retrieved using the following methods:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-get_framenumbers(): Get the list with the framenumbers of the System Information Messages</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-get_system_information_type(): Get the types of the System Information Messages</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-get_data(): Get the whole System Information Messages in Hex representation</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_controlled_fractional_resampler_cc.block.yml b/grc/misc_utils/gsm_controlled_fractional_resampler_cc.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..4e94516</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_controlled_fractional_resampler_cc.block.yml</span><br><span>@@ -0,0 +1,28 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_controlled_fractional_resampler_cc</span><br><span style="color: hsl(120, 100%, 40%);">+label: Controlled Fractional Resampler</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: phase_shift</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Phase Shift</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: real</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: resamp_ratio</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Resampling Ratio</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: real</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.controlled_fractional_resampler_cc(${phase_shift}, ${resamp_ratio})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_resamp_ratio(${resamp_ratio})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_controlled_fractional_resampler_cc.xml b/grc/misc_utils/gsm_controlled_fractional_resampler_cc.xml</span><br><span>deleted file mode 100644</span><br><span>index fdecece..0000000</span><br><span>--- a/grc/misc_utils/gsm_controlled_fractional_resampler_cc.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,26 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Controlled Fractional Resampler</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_controlled_fractional_resampler_cc</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.controlled_fractional_resampler_cc($phase_shift, $resamp_ratio)</make></span><br><span style="color: hsl(0, 100%, 40%);">-    <callback>set_resamp_ratio($resamp_ratio)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-        <param></span><br><span style="color: hsl(0, 100%, 40%);">-           <name>Phase Shift</name></span><br><span style="color: hsl(0, 100%, 40%);">-            <key>phase_shift</key></span><br><span style="color: hsl(0, 100%, 40%);">-              <type>real</type></span><br><span style="color: hsl(0, 100%, 40%);">-   </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-           <name>Resampling Ratio</name></span><br><span style="color: hsl(0, 100%, 40%);">-               <key>resamp_ratio</key></span><br><span style="color: hsl(0, 100%, 40%);">-             <type>real</type></span><br><span style="color: hsl(0, 100%, 40%);">-   </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-            <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-             <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-        </sink></span><br><span style="color: hsl(0, 100%, 40%);">-   <source></span><br><span style="color: hsl(0, 100%, 40%);">-          <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-            <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-        </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_controlled_rotator_cc.block.yml b/grc/misc_utils/gsm_controlled_rotator_cc.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..b26af92</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_controlled_rotator_cc.block.yml</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_controlled_rotator_cc</span><br><span style="color: hsl(120, 100%, 40%);">+label: Controlled Rotator</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: phase_inc</span><br><span style="color: hsl(120, 100%, 40%);">+    label: phase_inc</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: real</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.controlled_rotator_cc(${phase_inc})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_phase_inc(${phase_inc})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_controlled_rotator_cc.xml b/grc/misc_utils/gsm_controlled_rotator_cc.xml</span><br><span>deleted file mode 100644</span><br><span>index 09ac422..0000000</span><br><span>--- a/grc/misc_utils/gsm_controlled_rotator_cc.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,23 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Controlled Rotator</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_controlled_rotator_cc</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.controlled_rotator_cc($phase_inc)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_phase_inc($phase_inc)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>phase_inc</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>phase_inc</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>real</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>diff --git a/grc/misc_utils/gsm_extract_assignment_cmd.block.yml b/grc/misc_utils/gsm_extract_assignment_cmd.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..1ce258d</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_extract_assignment_cmd.block.yml</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_extract_assignment_cmd</span><br><span style="color: hsl(120, 100%, 40%);">+label: Extract Assignment Command</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.extract_assignment_cmd()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Extracts Assignemnt Commands.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    Input: decoded control channel messages</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    The information can be retrieved using following function:</span><br><span style="color: hsl(120, 100%, 40%);">+    get_assignment_commands()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_extract_assignment_cmd.xml b/grc/misc_utils/gsm_extract_assignment_cmd.xml</span><br><span>deleted file mode 100644</span><br><span>index 8562e56..0000000</span><br><span>--- a/grc/misc_utils/gsm_extract_assignment_cmd.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,20 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Extract Assignment Command</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_extract_assignment_cmd</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.extract_assignment_cmd()</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-Extracts Assignemnt Commands.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Input: decoded control channel messages</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The information can be retrieved using following function:</span><br><span style="color: hsl(0, 100%, 40%);">-get_assignment_commands()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_extract_cmc.block.yml b/grc/misc_utils/gsm_extract_cmc.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..3c98ab3</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_extract_cmc.block.yml</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_extract_cmc</span><br><span style="color: hsl(120, 100%, 40%);">+label: Extract Cipher Mode Command</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.extract_cmc()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Extracts the framenumber and the assigned encryption algorithm from Cipher Mode Commands.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    Input: decoded control channel messages</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    The information can be retrieved using following functions:</span><br><span style="color: hsl(120, 100%, 40%);">+    get_frame_numbers(), get_a5_versions()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_extract_cmc.xml b/grc/misc_utils/gsm_extract_cmc.xml</span><br><span>deleted file mode 100644</span><br><span>index 66a6408..0000000</span><br><span>--- a/grc/misc_utils/gsm_extract_cmc.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,20 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Extract Cipher Mode Command</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_extract_cmc</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.extract_cmc()</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-Extracts the framenumber and the assigned encryption algorithm from Cipher Mode Commands.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Input: decoded control channel messages</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The information can be retrieved using following functions:</span><br><span style="color: hsl(0, 100%, 40%);">-get_frame_numbers(), get_a5_versions()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_extract_immediate_assignment.block.yml b/grc/misc_utils/gsm_extract_immediate_assignment.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..432a6a1</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_extract_immediate_assignment.block.yml</span><br><span>@@ -0,0 +1,46 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_extract_immediate_assignment</span><br><span style="color: hsl(120, 100%, 40%);">+label: Extract Immediate Assignment</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: print_immediate_assignments</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Print</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: ignore_gprs</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Ignore GPRS</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: unique_references</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Unique per request ref</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.extract_immediate_assignment(${print_immediate_assignments}, ${ignore_gprs},</span><br><span style="color: hsl(120, 100%, 40%);">+        ${unique_references})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Extracts the assignment information from immediate assignments, i.e. timeslot, channel type, etc.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    Input: decoded control channel messages</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Print" is enabled, the information will be printed to output also,</span><br><span style="color: hsl(120, 100%, 40%);">+    else the data can be retrieved using functions:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    get_frame_numbers(), get_channel_types(), get_timeslots(), get_subchannels(), get_hopping(), get_maios(), get_hsns(), get_arfcns(), get_timing_advances(), get_mobile_allocations()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Ignore GPRS" is enabled, the extractor will ignore Immediate Assignments that assign GPRS channels.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    If "Unique per request ref" is enabled, the extractor will capture the first Immediate Assignment for every unique request reference, and ignore further duplicate assignments</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_extract_immediate_assignment.xml b/grc/misc_utils/gsm_extract_immediate_assignment.xml</span><br><span>deleted file mode 100644</span><br><span>index 9040b9b..0000000</span><br><span>--- a/grc/misc_utils/gsm_extract_immediate_assignment.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,71 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Extract Immediate Assignment</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_extract_immediate_assignment</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.extract_immediate_assignment($print_immediate_assignments, $ignore_gprs, $unique_references)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Print</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>print_immediate_assignments</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Ignore GPRS</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>ignore_gprs</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Unique per request ref</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>unique_references</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-Extracts the assignment information from immediate assignments, i.e. timeslot, channel type, etc.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Input: decoded control channel messages</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Print" is enabled, the information will be printed to output also,</span><br><span style="color: hsl(0, 100%, 40%);">-else the data can be retrieved using functions:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-get_frame_numbers(), get_channel_types(), get_timeslots(), get_subchannels(), get_hopping(), get_maios(), get_hsns(), get_arfcns(), get_timing_advances(), get_mobile_allocations()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Ignore GPRS" is enabled, the extractor will ignore Immediate Assignments that assign GPRS channels.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If "Unique per request ref" is enabled, the extractor will capture the first Immediate Assignment for every unique request reference, and ignore further duplicate assignments</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_extract_system_info.block.yml b/grc/misc_utils/gsm_extract_system_info.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..48e2322</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_extract_system_info.block.yml</span><br><span>@@ -0,0 +1,16 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_extract_system_info</span><br><span style="color: hsl(120, 100%, 40%);">+label: Extract System Info</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.extract_system_info()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_extract_system_info.xml b/grc/misc_utils/gsm_extract_system_info.xml</span><br><span>deleted file mode 100644</span><br><span>index 4a5d26d..0000000</span><br><span>--- a/grc/misc_utils/gsm_extract_system_info.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,18 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Extract System Info</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_extract_system_info</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.extract_system_info()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_message_file_sink.block.yml b/grc/misc_utils/gsm_message_file_sink.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..e83669a</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_message_file_sink.block.yml</span><br><span>@@ -0,0 +1,23 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_message_file_sink</span><br><span style="color: hsl(120, 100%, 40%);">+label: Message File Sink</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: filename</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Destination file</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: file_open</span><br><span style="color: hsl(120, 100%, 40%);">+    default: /tmp/output.msg</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.message_file_sink(${filename})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block stores incoming gsm messages to a file.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_message_file_sink.xml b/grc/misc_utils/gsm_message_file_sink.xml</span><br><span>deleted file mode 100644</span><br><span>index 087747e..0000000</span><br><span>--- a/grc/misc_utils/gsm_message_file_sink.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,23 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Message File Sink</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_message_file_sink</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.message_file_sink($filename)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Destination file</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>filename</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>/tmp/output.msg</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>file_open</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block stores incoming gsm messages to a file.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_message_file_source.block.yml b/grc/misc_utils/gsm_message_file_source.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..047ea28</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_message_file_source.block.yml</span><br><span>@@ -0,0 +1,23 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_message_file_source</span><br><span style="color: hsl(120, 100%, 40%);">+label: Message File Source</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: filename</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Source file</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: file_open</span><br><span style="color: hsl(120, 100%, 40%);">+    default: /tmp/output.msg</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.message_file_source(${filename})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block outputs gsm messages stored in a file.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_message_file_source.xml b/grc/misc_utils/gsm_message_file_source.xml</span><br><span>deleted file mode 100644</span><br><span>index 7876c77..0000000</span><br><span>--- a/grc/misc_utils/gsm_message_file_source.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,23 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Message File Source</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_message_file_source</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.message_file_source($filename)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Source file</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>filename</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>/tmp/output.msg</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>file_open</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block outputs gsm messages stored in a file.</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_message_printer.block.yml b/grc/misc_utils/gsm_message_printer.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..beb9189</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_message_printer.block.yml</span><br><span>@@ -0,0 +1,39 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_message_printer</span><br><span style="color: hsl(120, 100%, 40%);">+label: Message Printer</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: prepend_string</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Prepend String</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: string</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: prepend_fnr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Prepend Frame Number</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: prepend_frame_count</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Prepend Frame Count</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: print_gsmtap_header</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Print GSMTap header</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: bool</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 'False'</span><br><span style="color: hsl(120, 100%, 40%);">+    options: ['False', 'True']</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+        import pmt</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.message_printer(pmt.intern(${prepend_string}), ${prepend_fnr},</span><br><span style="color: hsl(120, 100%, 40%);">+            ${prepend_frame_count}, ${print_gsmtap_header})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_message_printer.xml b/grc/misc_utils/gsm_message_printer.xml</span><br><span>deleted file mode 100644</span><br><span>index be50b78..0000000</span><br><span>--- a/grc/misc_utils/gsm_message_printer.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,64 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Message Printer</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_message_printer</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import pmt</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.message_printer(pmt.intern($prepend_string), $prepend_fnr,</span><br><span style="color: hsl(0, 100%, 40%);">-    $prepend_frame_count, $print_gsmtap_header)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Prepend String</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>prepend_string</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value></value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>string</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Prepend Frame Number</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>prepend_fnr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Prepend Frame Count</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>prepend_frame_count</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Print GSMTap header</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>print_gsmtap_header</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>False</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>bool</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>False</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>False</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-    <option></span><br><span style="color: hsl(0, 100%, 40%);">-      <name>True</name></span><br><span style="color: hsl(0, 100%, 40%);">-      <key>True</key></span><br><span style="color: hsl(0, 100%, 40%);">-    </option></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_msg_to_tag.block.yml b/grc/misc_utils/gsm_msg_to_tag.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..1fe894b</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_msg_to_tag.block.yml</span><br><span>@@ -0,0 +1,21 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_msg_to_tag</span><br><span style="color: hsl(120, 100%, 40%);">+label: Message To Tag</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msg</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.msg_to_tag()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_msg_to_tag.xml b/grc/misc_utils/gsm_msg_to_tag.xml</span><br><span>deleted file mode 100644</span><br><span>index c0d73c3..0000000</span><br><span>--- a/grc/misc_utils/gsm_msg_to_tag.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,23 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Message To Tag</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_msg_to_tag</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.msg_to_tag()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msg</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/misc_utils/gsm_tmsi_dumper.block.yml b/grc/misc_utils/gsm_tmsi_dumper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..21670a2</span><br><span>--- /dev/null</span><br><span>+++ b/grc/misc_utils/gsm_tmsi_dumper.block.yml</span><br><span>@@ -0,0 +1,16 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_tmsi_dumper</span><br><span style="color: hsl(120, 100%, 40%);">+label: TMSI Dumper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+        import pmt</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.tmsi_dumper()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/misc_utils/gsm_tmsi_dumper.xml b/grc/misc_utils/gsm_tmsi_dumper.xml</span><br><span>deleted file mode 100644</span><br><span>index 807243b..0000000</span><br><span>--- a/grc/misc_utils/gsm_tmsi_dumper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,13 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>TMSI Dumper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_tmsi_dumper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import pmt</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.tmsi_dumper()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/qa_utils/CMakeLists.txt b/grc/qa_utils/CMakeLists.txt</span><br><span>index 1f57aa1..2ed15a1 100644</span><br><span>--- a/grc/qa_utils/CMakeLists.txt</span><br><span>+++ b/grc/qa_utils/CMakeLists.txt</span><br><span>@@ -18,8 +18,9 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_source.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_burst_sink.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_message_source.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_message_sink.xml DESTINATION share/gnuradio/grc/blocks</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_source.block.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_burst_sink.block.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_message_source.block.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_message_sink.block.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/qa_utils/gsm_burst_sink.block.yml b/grc/qa_utils/gsm_burst_sink.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..fdcfa29</span><br><span>--- /dev/null</span><br><span>+++ b/grc/qa_utils/gsm_burst_sink.block.yml</span><br><span>@@ -0,0 +1,14 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_sink</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst Sink</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_sink()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/qa_utils/gsm_burst_sink.xml b/grc/qa_utils/gsm_burst_sink.xml</span><br><span>deleted file mode 100644</span><br><span>index 1026993..0000000</span><br><span>--- a/grc/qa_utils/gsm_burst_sink.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,12 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst Sink</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_sink</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_sink()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/qa_utils/gsm_burst_source.block.yml b/grc/qa_utils/gsm_burst_source.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..81e56f5</span><br><span>--- /dev/null</span><br><span>+++ b/grc/qa_utils/gsm_burst_source.block.yml</span><br><span>@@ -0,0 +1,30 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_burst_source</span><br><span style="color: hsl(120, 100%, 40%);">+label: Burst Source</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: framenumbers</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Frame numbers</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timeslots</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Timeslots</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[[],]'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: out</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.burst_source(${framenumbers}, ${timeslots}, ${bursts})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/qa_utils/gsm_burst_source.xml b/grc/qa_utils/gsm_burst_source.xml</span><br><span>deleted file mode 100644</span><br><span>index d3da677..0000000</span><br><span>--- a/grc/qa_utils/gsm_burst_source.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,35 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Burst Source</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_burst_source</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.burst_source($framenumbers, $timeslots, $bursts)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Frame numbers</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>framenumbers</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Timeslots</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timeslots</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>bursts</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[[],]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/qa_utils/gsm_message_sink.block.yml b/grc/qa_utils/gsm_message_sink.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..bde7f52</span><br><span>--- /dev/null</span><br><span>+++ b/grc/qa_utils/gsm_message_sink.block.yml</span><br><span>@@ -0,0 +1,19 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_message_sink</span><br><span style="color: hsl(120, 100%, 40%);">+label: Message Sink</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: in</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.message_sink()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block is a message sink for testing purposes.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    The data can be retrieved using function get_messages()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/qa_utils/gsm_message_sink.xml b/grc/qa_utils/gsm_message_sink.xml</span><br><span>deleted file mode 100644</span><br><span>index e0d6ac0..0000000</span><br><span>--- a/grc/qa_utils/gsm_message_sink.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,19 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Message Sink</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_message_sink</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.message_sink()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block is a message sink for testing purposes.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The data can be retrieved using function get_messages()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/qa_utils/gsm_message_source.block.yml b/grc/qa_utils/gsm_message_source.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..abb1800</span><br><span>--- /dev/null</span><br><span>+++ b/grc/qa_utils/gsm_message_source.block.yml</span><br><span>@@ -0,0 +1,39 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_message_source</span><br><span style="color: hsl(120, 100%, 40%);">+label: Message Source</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: messages</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Messages</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '["02 04 01 00 00 00 c9 00 00 1d 3c e5 02 00 01 00 15 06 21 00 01 f0</span><br><span style="color: hsl(120, 100%, 40%);">+        2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        "02 04 01 00 00 00 ca 00 00 1d 3c e9 02 00 02 00 15 06 21 00 01 f0 2b 2b 2b</span><br><span style="color: hsl(120, 100%, 40%);">+        2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        "02 04 01 00 00 00 cb 00 00 1d 3d 0e 01 00 00 00 59 06 1a 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+        00 00 00 00 00 00 00 00 00 00 ff e5 04 00",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        "02 04 01 00 00 00 cb 00 00 1d 3d 12 02 00 00 00 15 06 21 00 01 f0 2b 2b 2b</span><br><span style="color: hsl(120, 100%, 40%);">+        2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b"]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: 'true'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: msgs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.message_source(${messages})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    This block is a basic message source for testing purposes.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    It takes a list of strings as input, where each string</span><br><span style="color: hsl(120, 100%, 40%);">+    is a whitespace-separated list of hexadecimal values representing the data bytes of a message including the gsmtap header.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    Such strings can be obtained using the message printer with option "Print GSMTap header"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/qa_utils/gsm_message_source.xml b/grc/qa_utils/gsm_message_source.xml</span><br><span>deleted file mode 100644</span><br><span>index ab06f65..0000000</span><br><span>--- a/grc/qa_utils/gsm_message_source.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,32 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Message Source</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_message_source</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.message_source($messages)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Messages</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>messages</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>["02 04 01 00 00 00 c9 00 00 1d 3c e5 02 00 01 00 15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b",</span><br><span style="color: hsl(0, 100%, 40%);">-"02 04 01 00 00 00 ca 00 00 1d 3c e9 02 00 02 00 15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b",</span><br><span style="color: hsl(0, 100%, 40%);">-"02 04 01 00 00 00 cb 00 00 1d 3d 0e 01 00 00 00 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00",</span><br><span style="color: hsl(0, 100%, 40%);">-"02 04 01 00 00 00 cb 00 00 1d 3d 12 02 00 00 00 15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b"]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>true</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>msgs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-This block is a basic message source for testing purposes.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-It takes a list of strings as input, where each string</span><br><span style="color: hsl(0, 100%, 40%);">-is a whitespace-separated list of hexadecimal values representing the data bytes of a message including the gsmtap header.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Such strings can be obtained using the message printer with option "Print GSMTap header"</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/CMakeLists.txt b/grc/receiver/CMakeLists.txt</span><br><span>index 7b51226..3db5983 100644</span><br><span>--- a/grc/receiver/CMakeLists.txt</span><br><span>+++ b/grc/receiver/CMakeLists.txt</span><br><span>@@ -18,12 +18,13 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_input.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_receiver.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_receiver_with_uplink.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_fcch_burst_tagger.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_sch_detector.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_fcch_detector.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_cx_channel_hopper.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_clock_offset_control.xml DESTINATION share/gnuradio/grc/blocks</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_input.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_receiver.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_receiver_with_uplink.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_fcch_burst_tagger.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_sch_detector.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_fcch_detector.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_cx_channel_hopper.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_clock_offset_control.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/receiver/gsm_clock_offset_control.block.yml b/grc/receiver/gsm_clock_offset_control.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..abb52bc</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_clock_offset_control.block.yml</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_clock_offset_control</span><br><span style="color: hsl(120, 100%, 40%);">+label: GSM Clock Offset Control</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    label: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: fc</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: osr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: osr</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: samp_rate</span><br><span style="color: hsl(120, 100%, 40%);">+    label: samp_rate</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: samp_rate</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: measurements</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: ctrl</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.clock_offset_control(${fc}, ${samp_rate}, ${osr})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_fc(${fc})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_clock_offset_control.xml b/grc/receiver/gsm_clock_offset_control.xml</span><br><span>deleted file mode 100644</span><br><span>index c5a932a..0000000</span><br><span>--- a/grc/receiver/gsm_clock_offset_control.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,38 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>GSM Clock Offset Control</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_clock_offset_control</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.clock_offset_control($fc, $samp_rate, $osr)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_fc($fc)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>fc</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>fc</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>fc</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>OSR</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>osr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>osr</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>samp_rate</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>samp_rate</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>samp_rate</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>measurements</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>ctrl</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_cx_channel_hopper.block.yml b/grc/receiver/gsm_cx_channel_hopper.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..edee1fb</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_cx_channel_hopper.block.yml</span><br><span>@@ -0,0 +1,30 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_cx_channel_hopper</span><br><span style="color: hsl(120, 100%, 40%);">+label: CX Channel Hopper</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: ma</span><br><span style="color: hsl(120, 100%, 40%);">+    label: MA</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[]'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: maio</span><br><span style="color: hsl(120, 100%, 40%);">+    label: MAIO</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: hsn</span><br><span style="color: hsl(120, 100%, 40%);">+    label: HSN</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: CX</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.cx_channel_hopper(${ma}, ${maio}, ${hsn})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_cx_channel_hopper.xml b/grc/receiver/gsm_cx_channel_hopper.xml</span><br><span>deleted file mode 100644</span><br><span>index 9ff07dc..0000000</span><br><span>--- a/grc/receiver/gsm_cx_channel_hopper.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,35 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>CX Channel Hopper</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_cx_channel_hopper</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.cx_channel_hopper($ma, $maio, $hsn)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>MA</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>ma</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>MAIO</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>maio</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>HSN</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>hsn</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>CX</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_fcch_burst_tagger.block.yml b/grc/receiver/gsm_fcch_burst_tagger.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..c5d1de8</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_fcch_burst_tagger.block.yml</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_fcch_burst_tagger</span><br><span style="color: hsl(120, 100%, 40%);">+label: FCCH Burst Tagger</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    label: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+-   label: threshold</span><br><span style="color: hsl(120, 100%, 40%);">+    domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.fcch_burst_tagger(${OSR})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_fcch_burst_tagger.xml b/grc/receiver/gsm_fcch_burst_tagger.xml</span><br><span>deleted file mode 100644</span><br><span>index a0cb977..0000000</span><br><span>--- a/grc/receiver/gsm_fcch_burst_tagger.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,27 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>FCCH Burst Tagger</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_fcch_burst_tagger</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.fcch_burst_tagger($OSR)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>OSR</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>OSR</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>threshold</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_fcch_detector.block.yml b/grc/receiver/gsm_fcch_detector.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..70a8fa5</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_fcch_detector.block.yml</span><br><span>@@ -0,0 +1,32 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_fcch_detector</span><br><span style="color: hsl(120, 100%, 40%);">+label: FCCH Bursts Detector</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    label: OverSamplingRatio</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.fcch_detector(${OSR})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_OSR(${OSR})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    Detects positions of FCCH bursts. At the end of each detected FCCH burst adds to the stream a tag with key "fcch" and value which is a frequency offset estimate. The input sampling frequency should be integer multiply of GSM GMKS symbol rate - 1625000/6 Hz.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_fcch_detector.xml b/grc/receiver/gsm_fcch_detector.xml</span><br><span>deleted file mode 100644</span><br><span>index f8f8997..0000000</span><br><span>--- a/grc/receiver/gsm_fcch_detector.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,27 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>FCCH Bursts Detector</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_fcch_detector</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.fcch_detector($OSR)</make></span><br><span style="color: hsl(0, 100%, 40%);">-<callback>set_OSR($OSR)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>OverSamplingRatio</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>OSR</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-Detects positions of FCCH bursts. At the end of each detected FCCH burst adds to the stream a tag with key "fcch" and value which is a frequency offset estimate. The input sampling frequency should be integer multiply of GSM GMKS symbol rate - 1625000/6 Hz.</doc></span><br><span style="color: hsl(0, 100%, 40%);">-  <grc_source>/home/piotr/Odbiornik_gsm/gr-gsm/examples/gsm_fcch_detector.grc</grc_source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_input.block.yml b/grc/receiver/gsm_input.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..5489b00</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_input.block.yml</span><br><span>@@ -0,0 +1,60 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_input</span><br><span style="color: hsl(120, 100%, 40%);">+label: GSM Input Adaptor</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: ppm</span><br><span style="color: hsl(120, 100%, 40%);">+    label: ppm</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: ppm</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: osr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: osr</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    label: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: fc</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: samp_rate_in</span><br><span style="color: hsl(120, 100%, 40%);">+    label: samp_rate_in</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: samp_rate_in</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: ctrl_in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        grgsm.gsm_input(</span><br><span style="color: hsl(120, 100%, 40%);">+            ppm=${ppm},</span><br><span style="color: hsl(120, 100%, 40%);">+            osr=${osr},</span><br><span style="color: hsl(120, 100%, 40%);">+            fc=${fc},</span><br><span style="color: hsl(120, 100%, 40%);">+            samp_rate_in=${samp_rate_in},</span><br><span style="color: hsl(120, 100%, 40%);">+        )</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_ppm(${ppm})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_osr(${osr})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_fc(${fc})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_samp_rate_in(${samp_rate_in})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    Adaptor of input stream for the GSM receiver. Contains frequency offset corrector and resampler to correct carrier frequency and sampling frequency offsets. At the end it has LP filter for filtering of a GSM channel.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_input.xml b/grc/receiver/gsm_input.xml</span><br><span>deleted file mode 100644</span><br><span>index 52445da..0000000</span><br><span>--- a/grc/receiver/gsm_input.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,61 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>GSM Input Adaptor</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_input</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <category></category></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.gsm_input(</span><br><span style="color: hsl(0, 100%, 40%);">-    ppm=$ppm,</span><br><span style="color: hsl(0, 100%, 40%);">-    osr=$osr,</span><br><span style="color: hsl(0, 100%, 40%);">-    fc=$fc,</span><br><span style="color: hsl(0, 100%, 40%);">-    samp_rate_in=$samp_rate_in,</span><br><span style="color: hsl(0, 100%, 40%);">-)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_ppm($ppm)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_osr($osr)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_fc($fc)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_samp_rate_in($samp_rate_in)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>ppm</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>ppm</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>ppm</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>OSR</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>osr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>osr</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>fc</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>fc</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>fc</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>samp_rate_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>samp_rate_in</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>samp_rate_in</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>ctrl_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>True</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-Adaptor of input stream for the GSM receiver. Contains frequency offset corrector and resampler to correct carrier frequency and sampling frequency offsets. At the end it has LP filter for filtering of a GSM channel.</doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_receiver.block.yml b/grc/receiver/gsm_receiver.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..9897bec</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_receiver.block.yml</span><br><span>@@ -0,0 +1,49 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_receiver</span><br><span style="color: hsl(120, 100%, 40%);">+label: GSM Receiver</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: osr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Oversampling ratio</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: cell_allocation</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Cell allocation</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: tseq_nums</span><br><span style="color: hsl(120, 100%, 40%);">+    label: TSEQ numbers</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: num_streams</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Num Streams</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    multiplicity: ${ num_streams }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: C0</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: CX</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: measurements</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+asserts:</span><br><span style="color: hsl(120, 100%, 40%);">+- ${ num_streams >= 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.receiver(${osr}, ${cell_allocation}, ${tseq_nums}, False)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_receiver.xml b/grc/receiver/gsm_receiver.xml</span><br><span>deleted file mode 100644</span><br><span>index 2988243..0000000</span><br><span>--- a/grc/receiver/gsm_receiver.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,63 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>GSM Receiver</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_receiver</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.receiver($osr, $cell_allocation, $tseq_nums, False)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Oversampling ratio</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>osr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Cell allocation</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>cell_allocation</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>TSEQ numbers</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>tseq_nums</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Num Streams</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>num_streams</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>1</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <check>$num_streams &gt;= 0</check></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <nports>$num_streams</nports></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>C0</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>CX</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>measurements</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_receiver_with_uplink.block.yml b/grc/receiver/gsm_receiver_with_uplink.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..d0b6302</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_receiver_with_uplink.block.yml</span><br><span>@@ -0,0 +1,54 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_receiver_with_uplink</span><br><span style="color: hsl(120, 100%, 40%);">+label: GSM Receiver (with uplink)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: osr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Oversampling ratio</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: cell_allocation</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Cell allocation</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[0]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: tseq_nums</span><br><span style="color: hsl(120, 100%, 40%);">+    label: TSEQ numbers</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int_vector</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '[]'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: num_streams</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Num Streams</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   label: C</span><br><span style="color: hsl(120, 100%, 40%);">+    domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    multiplicity: ${ num_streams }</span><br><span style="color: hsl(120, 100%, 40%);">+-   label: C_up</span><br><span style="color: hsl(120, 100%, 40%);">+    domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    multiplicity: ${ num_streams }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: C0</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: CX</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: measurements</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+asserts:</span><br><span style="color: hsl(120, 100%, 40%);">+- ${ num_streams >= 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.receiver(${osr}, ${cell_allocation}, ${tseq_nums}, True)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_receiver_with_uplink.xml b/grc/receiver/gsm_receiver_with_uplink.xml</span><br><span>deleted file mode 100644</span><br><span>index 4b68336..0000000</span><br><span>--- a/grc/receiver/gsm_receiver_with_uplink.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,71 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>GSM Receiver (with uplink)</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_receiver_with_uplink</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.receiver($osr, $cell_allocation, $tseq_nums, True)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Oversampling ratio</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>osr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Cell allocation</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>cell_allocation</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[0]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>TSEQ numbers</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>tseq_nums</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>[]</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int_vector</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Num Streams</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>num_streams</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>1</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <check>$num_streams &gt;= 0</check></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>C</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <nports>$num_streams</nports></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>C_up</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <nports>$num_streams</nports></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>C0</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>CX</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>measurements</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/receiver/gsm_sch_detector.block.yml b/grc/receiver/gsm_sch_detector.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..33d4543</span><br><span>--- /dev/null</span><br><span>+++ b/grc/receiver/gsm_sch_detector.block.yml</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_sch_detector</span><br><span style="color: hsl(120, 100%, 40%);">+label: SCH Bursts Detector</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    label: OSR</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.sch_detector(${OSR})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_OSR(${OSR})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/receiver/gsm_sch_detector.xml b/grc/receiver/gsm_sch_detector.xml</span><br><span>deleted file mode 100644</span><br><span>index b3adb56..0000000</span><br><span>--- a/grc/receiver/gsm_sch_detector.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,24 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>SCH Bursts Detector</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_sch_detector</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.sch_detector($OSR)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_OSR($OSR)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>OSR</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>OSR</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/transmitter/CMakeLists.txt b/grc/transmitter/CMakeLists.txt</span><br><span>index 4df2abb..d66ea32 100644</span><br><span>--- a/grc/transmitter/CMakeLists.txt</span><br><span>+++ b/grc/transmitter/CMakeLists.txt</span><br><span>@@ -18,10 +18,10 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_gmsk_mod.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_txtime_bursts_tagger.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_txtime_setter.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_preprocess_tx_burst.xml</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_gen_test_ab.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_gmsk_mod.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_txtime_bursts_tagger.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_txtime_setter.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_preprocess_tx_burst.block.yml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_gen_test_ab.block.yml</span><br><span>     DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/transmitter/gsm_gen_test_ab.block.yml b/grc/transmitter/gsm_gen_test_ab.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..ec57b8e</span><br><span>--- /dev/null</span><br><span>+++ b/grc/transmitter/gsm_gen_test_ab.block.yml</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_gen_test_ab</span><br><span style="color: hsl(120, 100%, 40%);">+label: Gen Test AB</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.gen_test_ab()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/transmitter/gsm_gen_test_ab.xml b/grc/transmitter/gsm_gen_test_ab.xml</span><br><span>deleted file mode 100644</span><br><span>index 3cb8b11..0000000</span><br><span>--- a/grc/transmitter/gsm_gen_test_ab.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,19 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Gen Test AB</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_gen_test_ab</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.gen_test_ab()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/transmitter/gsm_gmsk_mod.block.yml b/grc/transmitter/gsm_gmsk_mod.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..e45e303</span><br><span>--- /dev/null</span><br><span>+++ b/grc/transmitter/gsm_gmsk_mod.block.yml</span><br><span>@@ -0,0 +1,49 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_gmsk_mod</span><br><span style="color: hsl(120, 100%, 40%);">+label: GMSK Modulator for GSM</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: BT</span><br><span style="color: hsl(120, 100%, 40%);">+    label: 3 dB Time-Bandwidth Product</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: pulse_duration</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Pulse Duration</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: sps</span><br><span style="color: hsl(120, 100%, 40%);">+    label: Samples/Symbol</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '4'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: byte</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: stream</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: complex</span><br><span style="color: hsl(120, 100%, 40%);">+    vlen: 1</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: from grgsm import gsm_gmsk_mod</span><br><span style="color: hsl(120, 100%, 40%);">+    make: |-</span><br><span style="color: hsl(120, 100%, 40%);">+        gsm_gmsk_mod(</span><br><span style="color: hsl(120, 100%, 40%);">+            BT=${BT},</span><br><span style="color: hsl(120, 100%, 40%);">+            pulse_duration=${pulse_duration},</span><br><span style="color: hsl(120, 100%, 40%);">+            sps=${sps},</span><br><span style="color: hsl(120, 100%, 40%);">+        )</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_BT(${BT})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_pulse_duration(${pulse_duration})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_sps(${sps})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    Piotr Krysik</span><br><span style="color: hsl(120, 100%, 40%);">+    GMSK Modulator for GSM</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/transmitter/gsm_gmsk_mod.xml b/grc/transmitter/gsm_gmsk_mod.xml</span><br><span>deleted file mode 100644</span><br><span>index 4aad01b..0000000</span><br><span>--- a/grc/transmitter/gsm_gmsk_mod.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,47 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>GMSK Modulator for GSM</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_gmsk_mod</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>from grgsm import gsm_gmsk_mod</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>gsm_gmsk_mod(</span><br><span style="color: hsl(0, 100%, 40%);">-    BT=$BT,</span><br><span style="color: hsl(0, 100%, 40%);">-    pulse_duration=$pulse_duration,</span><br><span style="color: hsl(0, 100%, 40%);">-    sps=$sps,</span><br><span style="color: hsl(0, 100%, 40%);">-)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_BT($BT)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_pulse_duration($pulse_duration)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_sps($sps)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>3 dB Time-Bandwidth Product</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>BT</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Pulse Duration</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>pulse_duration</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>Samples/Symbol</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>sps</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>4</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>byte</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>complex</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <vlen>1</vlen></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-  <doc>Piotr Krysik</span><br><span style="color: hsl(0, 100%, 40%);">-GMSK Modulator for GSM</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-  <grc_source>gr-gsm/hier_blocks/transmitter/gsm_gmsk_mod.grc</grc_source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/transmitter/gsm_preprocess_tx_burst.block.yml b/grc/transmitter/gsm_preprocess_tx_burst.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..09cc030</span><br><span>--- /dev/null</span><br><span>+++ b/grc/transmitter/gsm_preprocess_tx_burst.block.yml</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_preprocess_tx_burst</span><br><span style="color: hsl(120, 100%, 40%);">+label: Preprocess Tx burst</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.preprocess_tx_burst()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/transmitter/gsm_preprocess_tx_burst.xml b/grc/transmitter/gsm_preprocess_tx_burst.xml</span><br><span>deleted file mode 100644</span><br><span>index 70b447e..0000000</span><br><span>--- a/grc/transmitter/gsm_preprocess_tx_burst.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,19 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>Preprocess Tx burst</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_preprocess_tx_burst</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.preprocess_tx_burst()</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/transmitter/gsm_txtime_bursts_tagger.block.yml b/grc/transmitter/gsm_txtime_bursts_tagger.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..323d084</span><br><span>--- /dev/null</span><br><span>+++ b/grc/transmitter/gsm_txtime_bursts_tagger.block.yml</span><br><span>@@ -0,0 +1,56 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_txtime_bursts_tagger</span><br><span style="color: hsl(120, 100%, 40%);">+label: txtime_bursts_tagger</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: init_fn</span><br><span style="color: hsl(120, 100%, 40%);">+    label: init_fn</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: None</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: init_time</span><br><span style="color: hsl(120, 100%, 40%);">+    label: init_time</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: time_hint</span><br><span style="color: hsl(120, 100%, 40%);">+    label: time_hint</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timing_advance</span><br><span style="color: hsl(120, 100%, 40%);">+    label: timing_advance</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: delay_correction</span><br><span style="color: hsl(120, 100%, 40%);">+    label: delay_correction</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: fn_time</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.txtime_bursts_tagger(${init_fn}, ${init_time}, ${time_hint}, ${timing_advance},</span><br><span style="color: hsl(120, 100%, 40%);">+        ${delay_correction})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_fn_time_reference(${init_fn}, ${init_time})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_time_hint(${time_hint})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_timing_advance(${timing_advance})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_delay_correction(${delay_correction})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/transmitter/gsm_txtime_bursts_tagger.xml b/grc/transmitter/gsm_txtime_bursts_tagger.xml</span><br><span>deleted file mode 100644</span><br><span>index 4e42886..0000000</span><br><span>--- a/grc/transmitter/gsm_txtime_bursts_tagger.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,69 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>txtime_bursts_tagger</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_txtime_bursts_tagger</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.txtime_bursts_tagger($init_fn, $init_time, $time_hint, $timing_advance, $delay_correction)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_fn_time_reference($init_fn, $init_time)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_time_hint($time_hint)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_timing_advance($timing_advance)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_delay_correction($delay_correction)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>init_fn</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>init_fn</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>None</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>init_time</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>init_time</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>time_hint</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>time_hint</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>timing_advance</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timing_advance</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>delay_correction</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>delay_correction</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>fn_time</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/transmitter/gsm_txtime_setter.block.yml b/grc/transmitter/gsm_txtime_setter.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..76a3f37</span><br><span>--- /dev/null</span><br><span>+++ b/grc/transmitter/gsm_txtime_setter.block.yml</span><br><span>@@ -0,0 +1,67 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_txtime_setter</span><br><span style="color: hsl(120, 100%, 40%);">+label: txtime_setter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: init_fn</span><br><span style="color: hsl(120, 100%, 40%);">+    label: init_fn</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: raw</span><br><span style="color: hsl(120, 100%, 40%);">+    default: None</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: init_time_secs</span><br><span style="color: hsl(120, 100%, 40%);">+    label: init_time_secs</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: init_time_fracs</span><br><span style="color: hsl(120, 100%, 40%);">+    label: init_time_fracs</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: time_hint_secs</span><br><span style="color: hsl(120, 100%, 40%);">+    label: time_hint_secs</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: int</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: time_hint_fracs</span><br><span style="color: hsl(120, 100%, 40%);">+    label: time_hint_fracs</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: timing_advance</span><br><span style="color: hsl(120, 100%, 40%);">+    label: timing_advance</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: delay_correction</span><br><span style="color: hsl(120, 100%, 40%);">+    label: delay_correction</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: float</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '0'</span><br><span style="color: hsl(120, 100%, 40%);">+    hide: part</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: fn_time</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_in</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts_out</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.txtime_setter(${init_fn} if (${init_fn} is not None) else 0xffffffff,</span><br><span style="color: hsl(120, 100%, 40%);">+        ${init_time_secs}, ${init_time_fracs}, ${time_hint_secs}, ${time_hint_fracs},</span><br><span style="color: hsl(120, 100%, 40%);">+        ${timing_advance}, ${delay_correction})</span><br><span style="color: hsl(120, 100%, 40%);">+    callbacks:</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_fn_time_reference(${init_fn}, ${init_time_secs}, ${init_time_fracs})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_time_hint(${time_hint_secs}, ${time_hint_secs})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_timing_advance(${timing_advance})</span><br><span style="color: hsl(120, 100%, 40%);">+    - set_delay_correction(${delay_correction})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/transmitter/gsm_txtime_setter.xml b/grc/transmitter/gsm_txtime_setter.xml</span><br><span>deleted file mode 100644</span><br><span>index 648f4d9..0000000</span><br><span>--- a/grc/transmitter/gsm_txtime_setter.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,84 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>txtime_setter</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_txtime_setter</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.txtime_setter($init_fn if ($init_fn is not None) else 0xffffffff, $init_time_secs, $init_time_fracs, $time_hint_secs, $time_hint_fracs, $timing_advance, $delay_correction)</make></span><br><span style="color: hsl(0, 100%, 40%);">-  </span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_fn_time_reference($init_fn, $init_time_secs, $init_time_fracs)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_time_hint($time_hint_secs, $time_hint_secs)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_timing_advance($timing_advance)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-  <callback>set_delay_correction($delay_correction)</callback></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>init_fn</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>init_fn</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>None</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>raw</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>init_time_secs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>init_time_secs</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>init_time_fracs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>init_time_fracs</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>time_hint_secs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>time_hint_secs</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>int</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>time_hint_fracs</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>time_hint_fracs</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>timing_advance</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>timing_advance</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>delay_correction</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>delay_correction</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>float</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <hide>part</hide></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>fn_time</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_in</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts_out</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span>diff --git a/grc/trx/CMakeLists.txt b/grc/trx/CMakeLists.txt</span><br><span>index ac4ae13..e448cdd 100644</span><br><span>--- a/grc/trx/CMakeLists.txt</span><br><span>+++ b/grc/trx/CMakeLists.txt</span><br><span>@@ -18,6 +18,6 @@</span><br><span> # Boston, MA 02110-1301, USA.</span><br><span> </span><br><span> install(FILES</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm_trx_burst_if.xml</span><br><span style="color: hsl(120, 100%, 40%);">+    gsm_trx_burst_if.block.yml</span><br><span>     DESTINATION share/gnuradio/grc/blocks</span><br><span> )</span><br><span>diff --git a/grc/trx/gsm_trx_burst_if.block.yml b/grc/trx/gsm_trx_burst_if.block.yml</span><br><span>new file mode 100644</span><br><span>index 0000000..3f08e0c</span><br><span>--- /dev/null</span><br><span>+++ b/grc/trx/gsm_trx_burst_if.block.yml</span><br><span>@@ -0,0 +1,58 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# auto-generated by grc.converter</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+id: gsm_trx_burst_if</span><br><span style="color: hsl(120, 100%, 40%);">+label: TRX Burst Interface</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameters:</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: base_port</span><br><span style="color: hsl(120, 100%, 40%);">+    label: base_port</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: string</span><br><span style="color: hsl(120, 100%, 40%);">+    default: '5700'</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: bind_addr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: bind_addr</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: string</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+-   id: remote_addr</span><br><span style="color: hsl(120, 100%, 40%);">+    label: remote_addr</span><br><span style="color: hsl(120, 100%, 40%);">+    dtype: string</span><br><span style="color: hsl(120, 100%, 40%);">+    default: 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+inputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+outputs:</span><br><span style="color: hsl(120, 100%, 40%);">+-   domain: message</span><br><span style="color: hsl(120, 100%, 40%);">+    id: bursts</span><br><span style="color: hsl(120, 100%, 40%);">+    optional: true</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+templates:</span><br><span style="color: hsl(120, 100%, 40%);">+    imports: import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+    make: grgsm.trx_burst_if(${bind_addr}, ${remote_addr}, ${base_port})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+documentation: |-</span><br><span style="color: hsl(120, 100%, 40%);">+    OsmoTRX like UDP burst interface for external applications.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          There are two UDP connections, where each message carries</span><br><span style="color: hsl(120, 100%, 40%);">+          one radio burst with header. Give a base port B (5700 by default).</span><br><span style="color: hsl(120, 100%, 40%);">+          One connection at port P=B+100+2 is used for sending received bursts</span><br><span style="color: hsl(120, 100%, 40%);">+          to an external application. Another one at port P=B+2 is used to</span><br><span style="color: hsl(120, 100%, 40%);">+          obtain to be transmitted bursts.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          Received burst format:</span><br><span style="color: hsl(120, 100%, 40%);">+          1 byte timeslot index</span><br><span style="color: hsl(120, 100%, 40%);">+          4 bytes GSM frame number, big endian</span><br><span style="color: hsl(120, 100%, 40%);">+          1 byte RSSI in -dBm</span><br><span style="color: hsl(120, 100%, 40%);">+          2 bytes correlator timing offset in 1/256 symbol steps,</span><br><span style="color: hsl(120, 100%, 40%);">+              2's-comp, big endian</span><br><span style="color: hsl(120, 100%, 40%);">+          148 bytes soft symbol estimates, 0 -> definite "0",</span><br><span style="color: hsl(120, 100%, 40%);">+              255 -> definite "1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          To be transmitted burst format:</span><br><span style="color: hsl(120, 100%, 40%);">+          1 byte timeslot index</span><br><span style="color: hsl(120, 100%, 40%);">+          4 bytes GSM frame number, big endian</span><br><span style="color: hsl(120, 100%, 40%);">+          1 byte transmit level wrt ARFCN max, -dB (attenuation)</span><br><span style="color: hsl(120, 100%, 40%);">+          148 bytes output symbol values, 0 & 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+file_format: 1</span><br><span>diff --git a/grc/trx/gsm_trx_burst_if.xml b/grc/trx/gsm_trx_burst_if.xml</span><br><span>deleted file mode 100644</span><br><span>index 49979a3..0000000</span><br><span>--- a/grc/trx/gsm_trx_burst_if.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,65 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0"?></span><br><span style="color: hsl(0, 100%, 40%);">-<block></span><br><span style="color: hsl(0, 100%, 40%);">-  <name>TRX Burst Interface</name></span><br><span style="color: hsl(0, 100%, 40%);">-  <key>gsm_trx_burst_if</key></span><br><span style="color: hsl(0, 100%, 40%);">-  <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.trx_burst_if($bind_addr, $remote_addr, $base_port)</make></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>base_port</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>base_port</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>5700</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>string</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bind_addr</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>bind_addr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>0.0.0.0</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>string</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <param></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>remote_addr</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <key>remote_addr</key></span><br><span style="color: hsl(0, 100%, 40%);">-    <value>127.0.0.1</value></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>string</type></span><br><span style="color: hsl(0, 100%, 40%);">-  </param></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <sink></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </sink></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <source></span><br><span style="color: hsl(0, 100%, 40%);">-    <name>bursts</name></span><br><span style="color: hsl(0, 100%, 40%);">-    <type>message</type></span><br><span style="color: hsl(0, 100%, 40%);">-    <optional>1</optional></span><br><span style="color: hsl(0, 100%, 40%);">-  </source></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  <doc></span><br><span style="color: hsl(0, 100%, 40%);">-      OsmoTRX like UDP burst interface for external applications.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      There are two UDP connections, where each message carries</span><br><span style="color: hsl(0, 100%, 40%);">-      one radio burst with header. Give a base port B (5700 by default).</span><br><span style="color: hsl(0, 100%, 40%);">-      One connection at port P=B+100+2 is used for sending received bursts</span><br><span style="color: hsl(0, 100%, 40%);">-      to an external application. Another one at port P=B+2 is used to</span><br><span style="color: hsl(0, 100%, 40%);">-      obtain to be transmitted bursts.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      Received burst format:</span><br><span style="color: hsl(0, 100%, 40%);">-      1 byte timeslot index</span><br><span style="color: hsl(0, 100%, 40%);">-      4 bytes GSM frame number, big endian</span><br><span style="color: hsl(0, 100%, 40%);">-      1 byte RSSI in -dBm</span><br><span style="color: hsl(0, 100%, 40%);">-      2 bytes correlator timing offset in 1/256 symbol steps,</span><br><span style="color: hsl(0, 100%, 40%);">-          2's-comp, big endian</span><br><span style="color: hsl(0, 100%, 40%);">-      148 bytes soft symbol estimates, 0 -&gt; definite "0",</span><br><span style="color: hsl(0, 100%, 40%);">-          255 -&gt; definite "1"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      To be transmitted burst format:</span><br><span style="color: hsl(0, 100%, 40%);">-      1 byte timeslot index</span><br><span style="color: hsl(0, 100%, 40%);">-      4 bytes GSM frame number, big endian</span><br><span style="color: hsl(0, 100%, 40%);">-      1 byte transmit level wrt ARFCN max, -dB (attenuation)</span><br><span style="color: hsl(0, 100%, 40%);">-      148 bytes output symbol values, 0 &amp; 1</span><br><span style="color: hsl(0, 100%, 40%);">-  </doc></span><br><span style="color: hsl(0, 100%, 40%);">-</block></span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/gr-gsm/+/24061">change 24061</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/gr-gsm/+/24061"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: gr-gsm </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iee5c611a2e100bd2fdf487611a867dc937d8c292 </div>
<div style="display:none"> Gerrit-Change-Number: 24061 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: ptrkrysik <ptrkrysik@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: vvvelichkov <vvvelichkov@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>