aboutsummaryrefslogtreecommitdiffstats
path: root/grc
diff options
context:
space:
mode:
authorRoman Khassraf <roman@khassraf.at>2015-08-05 13:02:12 +0200
committerRoman Khassraf <roman@khassraf.at>2015-08-05 13:02:12 +0200
commit98da635ccc2e0df06a30bda59ee082d8593dc0a8 (patch)
tree63017e27cdddb6450f105a143f3f9fae62d7e38e /grc
parentf163ca5957e1f32d981c5ea3ce9f9b24cb9d3a0a (diff)
parenta1eb188b97d12737d58eed9162102798f440ba43 (diff)
Merged origin/flow-control-100 into dev, fixed conflicts
Diffstat (limited to 'grc')
-rw-r--r--grc/CMakeLists.txt1
-rw-r--r--grc/flow_control/CMakeLists.txt25
-rw-r--r--grc/flow_control/gsm_burst_fnr_filter.xml42
-rw-r--r--grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml44
-rw-r--r--grc/flow_control/gsm_burst_timeslot_splitter.xml24
-rw-r--r--grc/flow_control/gsm_dummy_burst_filter.xml24
-rw-r--r--grc/gsm_block_tree.xml7
7 files changed, 167 insertions, 0 deletions
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index d42bff8..2b94539 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -21,6 +21,7 @@ add_subdirectory(decoding)
add_subdirectory(decryption)
add_subdirectory(demapping)
add_subdirectory(receiver)
+add_subdirectory(flow_control)
add_subdirectory(misc_utils)
install(FILES
gsm_block_tree.xml DESTINATION share/gnuradio/grc/blocks
diff --git a/grc/flow_control/CMakeLists.txt b/grc/flow_control/CMakeLists.txt
new file mode 100644
index 0000000..107fac7
--- /dev/null
+++ b/grc/flow_control/CMakeLists.txt
@@ -0,0 +1,25 @@
+# Copyright 2011,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+
+install(FILES
+ gsm_burst_timeslot_splitter.xml
+ gsm_burst_fnr_filter.xml
+ gsm_dummy_burst_filter.xml
+ gsm_burst_sdcch_subslot_splitter.xml DESTINATION share/gnuradio/grc/blocks
+)
diff --git a/grc/flow_control/gsm_burst_fnr_filter.xml b/grc/flow_control/gsm_burst_fnr_filter.xml
new file mode 100644
index 0000000..d09b6e6
--- /dev/null
+++ b/grc/flow_control/gsm_burst_fnr_filter.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<block>
+ <name>Burst framenumber filter</name>
+ <key>gsm_burst_fnr_filter</key>
+ <import>import grgsm</import>
+ <make>grgsm.burst_fnr_filter($mode, $fnr)</make>
+
+ <param>
+ <name>Mode</name>
+ <key>mode</key>
+ <type>enum</type>
+ <option>
+ <name>Less or equal</name>
+ <key>grgsm.FILTER_LESS_OR_EQUAL</key>
+ </option>
+ <option>
+ <name>Greater or equal</name>
+ <key>grgsm.FILTER_GREATER_OR_EQUAL</key>
+ </option>
+ </param>
+ <param>
+ <name>Framenumber</name>
+ <key>fnr</key>
+ <value>1500123</value>
+ <type>int</type>
+ </param>
+
+ <sink>
+ <name>in</name>
+ <type>message</type>
+ </sink>
+
+ <source>
+ <name>out</name>
+ <type>message</type>
+ <optional>1</optional>
+ </source>
+
+ <doc>
+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.
+ </doc>
+</block>
diff --git a/grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml b/grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml
new file mode 100644
index 0000000..4812d0b
--- /dev/null
+++ b/grc/flow_control/gsm_burst_sdcch_subslot_splitter.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<block>
+ <name>Burst SDCCH subslot splitter</name>
+ <key>gsm_burst_sdcch_subslot_splitter</key>
+ <import>import grgsm</import>
+ <make>grgsm.burst_sdcch_subslot_splitter(
+#if int($ports())==4 #
+grgsm.SPLITTER_SDCCH4
+#else
+grgsm.SPLITTER_SDCCH8
+#end if
+ )</make>
+
+ <param>
+ <name>Mode</name>
+ <key>ports</key>
+ <type>enum</type>
+ <option>
+ <name>SDCCH/8</name>
+ <key>8</key>
+ </option>
+ <option>
+ <name>SDCCH/4</name>
+ <key>4</key>
+ </option>
+ </param>
+
+ <sink>
+ <name>in</name>
+ <type>message</type>
+ </sink>
+
+ <source>
+ <name>out</name>
+ <type>message</type>
+ <nports>$ports</nports>
+ <optional>1</optional>
+ </source>
+
+ <doc>
+Burst SDCCH subslot splitter distributes bursts to eight different output ports depending on the subslots to which the bursts belong.
+This means subslot 0 bursts are sent to port out0, subslot 1 bursts on port out1, and so on.
+ </doc>
+</block> \ No newline at end of file
diff --git a/grc/flow_control/gsm_burst_timeslot_splitter.xml b/grc/flow_control/gsm_burst_timeslot_splitter.xml
new file mode 100644
index 0000000..91db4db
--- /dev/null
+++ b/grc/flow_control/gsm_burst_timeslot_splitter.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<block>
+ <name>Burst timeslot splitter</name>
+ <key>gsm_burst_timeslot_splitter</key>
+ <import>import grgsm</import>
+ <make>grgsm.burst_timeslot_splitter()</make>
+
+ <sink>
+ <name>in</name>
+ <type>message</type>
+ </sink>
+
+ <source>
+ <name>out</name>
+ <type>message</type>
+ <nports>8</nports>
+ <optional>1</optional>
+ </source>
+
+ <doc>
+Burst timeslot splitter distributes bursts to eight different output ports depending on the timeslots of the bursts.
+This means timeslot 0 bursts are sent to port out0, timeslot 1 bursts on port out1, and so on.
+ </doc>
+</block>
diff --git a/grc/flow_control/gsm_dummy_burst_filter.xml b/grc/flow_control/gsm_dummy_burst_filter.xml
new file mode 100644
index 0000000..046abbf
--- /dev/null
+++ b/grc/flow_control/gsm_dummy_burst_filter.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<block>
+ <name>Dummy burst filter</name>
+ <key>gsm_dummy_burst_filter</key>
+ <import>import grgsm</import>
+ <make>grgsm.dummy_burst_filter()</make>
+
+ <sink>
+ <name>in</name>
+ <type>message</type>
+ </sink>
+
+ <source>
+ <name>out</name>
+ <type>message</type>
+ <optional>1</optional>
+ </source>
+
+ <doc>
+This block filters dummy bursts.
+
+For more information on dummy bursts, see GSM 05.02.
+ </doc>
+</block>
diff --git a/grc/gsm_block_tree.xml b/grc/gsm_block_tree.xml
index fe29895..b482acf 100644
--- a/grc/gsm_block_tree.xml
+++ b/grc/gsm_block_tree.xml
@@ -38,6 +38,13 @@
<block>gsm_tch_f_decoder</block>
</cat>
<cat>
+ <name>Flow control</name>
+ <block>gsm_burst_timeslot_splitter</block>
+ <block>gsm_burst_sdcch_subslot_splitter</block>
+ <block>gsm_burst_fnr_filter</block>
+ <block>gsm_dummy_burst_filter</block>
+ </cat>
+ <cat>
<name>Utilities</name>
<block>gsm_bursts_printer</block>
<block>gsm_burst_file_sink</block>