Added Python version of bursts to fn_time converter
diff --git a/grc/gsm_block_tree.xml b/grc/gsm_block_tree.xml
index dd971ab..89319c8 100644
--- a/grc/gsm_block_tree.xml
+++ b/grc/gsm_block_tree.xml
@@ -74,6 +74,7 @@
       <block>gsm_msg_to_tag.xml</block>
       <block>gsm_tmsi_dumper</block>
       <block>gsm_trx_burst_if</block>
+      <block>gsm_burst_to_fn_time</block>
     </cat>
   </cat>
 </cat>
diff --git a/grc/misc_utils/CMakeLists.txt b/grc/misc_utils/CMakeLists.txt
index 9407caf..3316373 100644
--- a/grc/misc_utils/CMakeLists.txt
+++ b/grc/misc_utils/CMakeLists.txt
@@ -33,5 +33,7 @@
     gsm_message_file_source.xml
     gsm_trx_burst_if.xml
     gsm_msg_to_tag.xml
-    gsm_controlled_fractional_resampler_cc.xml DESTINATION share/gnuradio/grc/blocks
+    gsm_controlled_fractional_resampler_cc.xml
+    gsm_burst_to_fn_time.xml
+    DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/misc_utils/gsm_burst_to_fn_time.xml b/grc/misc_utils/gsm_burst_to_fn_time.xml
new file mode 100644
index 0000000..dbbfe31
--- /dev/null
+++ b/grc/misc_utils/gsm_burst_to_fn_time.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<block>
+  <name>Burst to fn_time</name>
+  <key>gsm_burst_to_fn_time</key>
+  <import>import grgsm</import>
+  <make>grgsm.burst_to_fn_time()</make>
+
+  <sink>
+    <name>bursts_in</name>
+    <type>message</type>
+    <optional>1</optional>
+  </sink>
+
+  <source>
+    <name>bursts_out</name>
+    <type>message</type>
+    <optional>1</optional>
+  </source>
+</block>
diff --git a/grc/transmitter/CMakeLists.txt b/grc/transmitter/CMakeLists.txt
index 0905e19..76d079e 100644
--- a/grc/transmitter/CMakeLists.txt
+++ b/grc/transmitter/CMakeLists.txt
@@ -21,5 +21,5 @@
     gsm_gmsk_mod.xml
     gsm_txtime_bursts_tagger.xml 
     gsm_txtime_setter.xml 
-    preprocess_tx_burst.xml DESTINATION share/gnuradio/grc/blocks
+    gsm_preprocess_tx_burst.xml DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/python/misc_utils/CMakeLists.txt b/python/misc_utils/CMakeLists.txt
index ec732a4..8c7c175 100644
--- a/python/misc_utils/CMakeLists.txt
+++ b/python/misc_utils/CMakeLists.txt
@@ -23,5 +23,6 @@
     clock_offset_corrector_tagged.py
     hier_block.py 
     fn_time.py
+    burst_to_fn_time.py
     DESTINATION ${GR_PYTHON_DIR}/grgsm
 )
diff --git a/python/misc_utils/burst_to_fn_time.py b/python/misc_utils/burst_to_fn_time.py
new file mode 100644
index 0000000..e31cf92
--- /dev/null
+++ b/python/misc_utils/burst_to_fn_time.py
@@ -0,0 +1,28 @@
+"""
+Embedded Python Blocks:
+
+Each this file is saved, GRC will instantiate the first class it finds to get
+ports and parameters of your block. The arguments to __init__  will be the
+parameters. All of them are required to have default values!
+"""
+import numpy as np
+from gnuradio import gr
+import pmt
+
+class burst_to_fn_time(gr.basic_block):
+    def __init__(self):  # only default arguments here
+        gr.basic_block.__init__(
+            self,
+            name='Burst to fn_time',
+            in_sig=[],
+            out_sig=[]
+        )
+        self.message_port_register_in(pmt.intern("bursts_in"))
+        self.message_port_register_out(pmt.intern("fn_time_out"))
+        self.set_msg_handler(pmt.intern("bursts_in"), self.convert)
+    
+    def convert(self, msg):
+        fn_time = pmt.dict_ref(pmt.car(msg),pmt.intern("fn_time"),pmt.PMT_NIL)
+        fn_time_msg = pmt.dict_add(pmt.make_dict(), pmt.intern("fn_time"), fn_time)
+        if pmt.to_python(fn_time) is not None:
+            self.message_port_pub(pmt.intern("fn_time_out"), fn_time_msg)