Migrate grc blocks from xml to yaml

Convert the blocks using cmdline_converter.py script from
https://gist.githubusercontent.com/haakov/4228ff6a14486641add538483093e86b/raw/c861a840e31182ace2e74f5425e356cb4f8b183a/cmdline_converter.py

Change-Id: Iee5c611a2e100bd2fdf487611a867dc937d8c292
diff --git a/grc/receiver/CMakeLists.txt b/grc/receiver/CMakeLists.txt
index 7b51226..3db5983 100644
--- a/grc/receiver/CMakeLists.txt
+++ b/grc/receiver/CMakeLists.txt
@@ -18,12 +18,13 @@
 # Boston, MA 02110-1301, USA.
 
 install(FILES
-    gsm_input.xml
-    gsm_receiver.xml
-    gsm_receiver_with_uplink.xml
-    gsm_fcch_burst_tagger.xml
-    gsm_sch_detector.xml
-    gsm_fcch_detector.xml
-    gsm_cx_channel_hopper.xml
-    gsm_clock_offset_control.xml DESTINATION share/gnuradio/grc/blocks
+    gsm_input.block.yml
+    gsm_receiver.block.yml
+    gsm_receiver_with_uplink.block.yml
+    gsm_fcch_burst_tagger.block.yml
+    gsm_sch_detector.block.yml
+    gsm_fcch_detector.block.yml
+    gsm_cx_channel_hopper.block.yml
+    gsm_clock_offset_control.block.yml
+    DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/receiver/gsm_clock_offset_control.block.yml b/grc/receiver/gsm_clock_offset_control.block.yml
new file mode 100644
index 0000000..abb52bc
--- /dev/null
+++ b/grc/receiver/gsm_clock_offset_control.block.yml
@@ -0,0 +1,35 @@
+# auto-generated by grc.converter
+
+id: gsm_clock_offset_control
+label: GSM Clock Offset Control
+
+parameters:
+-   id: fc
+    label: fc
+    dtype: float
+    default: fc
+-   id: osr
+    label: OSR
+    dtype: int
+    default: osr
+-   id: samp_rate
+    label: samp_rate
+    dtype: float
+    default: samp_rate
+
+inputs:
+-   domain: message
+    id: measurements
+
+outputs:
+-   domain: message
+    id: ctrl
+    optional: true
+
+templates:
+    imports: import grgsm
+    make: grgsm.clock_offset_control(${fc}, ${samp_rate}, ${osr})
+    callbacks:
+    - set_fc(${fc})
+
+file_format: 1
diff --git a/grc/receiver/gsm_clock_offset_control.xml b/grc/receiver/gsm_clock_offset_control.xml
deleted file mode 100644
index c5a932a..0000000
--- a/grc/receiver/gsm_clock_offset_control.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>GSM Clock Offset Control</name>
-  <key>gsm_clock_offset_control</key>
-  <import>import grgsm</import>
-  <make>grgsm.clock_offset_control($fc, $samp_rate, $osr)</make>
-  <callback>set_fc($fc)</callback>
-  <param>
-    <name>fc</name>
-    <key>fc</key>
-    <value>fc</value>
-    <type>float</type>
-  </param>
-  <param>
-    <name>OSR</name>
-    <key>osr</key>
-    <value>osr</value>
-    <type>int</type>
-  </param>
-
-  <param>
-    <name>samp_rate</name>
-    <key>samp_rate</key>
-    <value>samp_rate</value>
-    <type>float</type>
-  </param>
-
-  <sink>
-    <name>measurements</name>
-    <type>message</type>
-  </sink>
-
-  <source>
-    <name>ctrl</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-</block>
diff --git a/grc/receiver/gsm_cx_channel_hopper.block.yml b/grc/receiver/gsm_cx_channel_hopper.block.yml
new file mode 100644
index 0000000..edee1fb
--- /dev/null
+++ b/grc/receiver/gsm_cx_channel_hopper.block.yml
@@ -0,0 +1,30 @@
+# auto-generated by grc.converter
+
+id: gsm_cx_channel_hopper
+label: CX Channel Hopper
+
+parameters:
+-   id: ma
+    label: MA
+    dtype: int_vector
+    default: '[]'
+-   id: maio
+    label: MAIO
+    dtype: int
+-   id: hsn
+    label: HSN
+    dtype: int
+
+inputs:
+-   domain: message
+    id: CX
+
+outputs:
+-   domain: message
+    id: bursts
+
+templates:
+    imports: import grgsm
+    make: grgsm.cx_channel_hopper(${ma}, ${maio}, ${hsn})
+
+file_format: 1
diff --git a/grc/receiver/gsm_cx_channel_hopper.xml b/grc/receiver/gsm_cx_channel_hopper.xml
deleted file mode 100644
index 9ff07dc..0000000
--- a/grc/receiver/gsm_cx_channel_hopper.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>CX Channel Hopper</name>
-  <key>gsm_cx_channel_hopper</key>
-  <import>import grgsm</import>
-  <make>grgsm.cx_channel_hopper($ma, $maio, $hsn)</make>
-  <param>
-    <name>MA</name>
-    <key>ma</key>
-    <value>[]</value>
-    <type>int_vector</type>
-  </param>
-
-  <param>
-    <name>MAIO</name>
-    <key>maio</key>
-    <type>int</type>
-  </param>
-
-  <param>
-    <name>HSN</name>
-    <key>hsn</key>
-    <type>int</type>
-  </param>
-
-  <sink>
-    <name>CX</name>
-    <type>message</type>
-  </sink>
-
-  <source>
-    <name>bursts</name>
-    <type>message</type>
-  </source>
-</block>
diff --git a/grc/receiver/gsm_fcch_burst_tagger.block.yml b/grc/receiver/gsm_fcch_burst_tagger.block.yml
new file mode 100644
index 0000000..c5d1de8
--- /dev/null
+++ b/grc/receiver/gsm_fcch_burst_tagger.block.yml
@@ -0,0 +1,26 @@
+# auto-generated by grc.converter
+
+id: gsm_fcch_burst_tagger
+label: FCCH Burst Tagger
+
+parameters:
+-   id: OSR
+    label: OSR
+    dtype: int
+
+inputs:
+-   domain: stream
+    dtype: complex
+-   label: threshold
+    domain: stream
+    dtype: float
+
+outputs:
+-   domain: stream
+    dtype: complex
+
+templates:
+    imports: import grgsm
+    make: grgsm.fcch_burst_tagger(${OSR})
+
+file_format: 1
diff --git a/grc/receiver/gsm_fcch_burst_tagger.xml b/grc/receiver/gsm_fcch_burst_tagger.xml
deleted file mode 100644
index a0cb977..0000000
--- a/grc/receiver/gsm_fcch_burst_tagger.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>FCCH Burst Tagger</name>
-  <key>gsm_fcch_burst_tagger</key>
-  <import>import grgsm</import>
-  <make>grgsm.fcch_burst_tagger($OSR)</make>
-  <param>
-    <name>OSR</name>
-    <key>OSR</key>
-    <type>int</type>
-  </param>
-
-  <sink>
-    <name>in</name>
-    <type>complex</type>
-  </sink>
-  
-  <sink>
-    <name>threshold</name>
-    <type>float</type>
-  </sink>
-
-  <source>
-    <name>out</name>
-    <type>complex</type>
-  </source>
-</block>
diff --git a/grc/receiver/gsm_fcch_detector.block.yml b/grc/receiver/gsm_fcch_detector.block.yml
new file mode 100644
index 0000000..70a8fa5
--- /dev/null
+++ b/grc/receiver/gsm_fcch_detector.block.yml
@@ -0,0 +1,32 @@
+# auto-generated by grc.converter
+
+id: gsm_fcch_detector
+label: FCCH Bursts Detector
+
+parameters:
+-   id: OSR
+    label: OverSamplingRatio
+    dtype: int
+    default: '4'
+
+inputs:
+-   domain: stream
+    dtype: complex
+    vlen: 1
+
+outputs:
+-   domain: stream
+    dtype: complex
+    vlen: 1
+
+templates:
+    imports: import grgsm
+    make: grgsm.fcch_detector(${OSR})
+    callbacks:
+    - set_OSR(${OSR})
+
+documentation: |-
+    Piotr Krysik
+    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.
+
+file_format: 1
diff --git a/grc/receiver/gsm_fcch_detector.xml b/grc/receiver/gsm_fcch_detector.xml
deleted file mode 100644
index f8f8997..0000000
--- a/grc/receiver/gsm_fcch_detector.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>FCCH Bursts Detector</name>
-  <key>gsm_fcch_detector</key>
-  <import>import grgsm</import>
-  <make>grgsm.fcch_detector($OSR)</make>
-<callback>set_OSR($OSR)</callback>
-  <param>
-    <name>OverSamplingRatio</name>
-    <key>OSR</key>
-    <value>4</value>
-    <type>int</type>
-  </param>
-  <sink>
-    <name>in</name>
-    <type>complex</type>
-    <vlen>1</vlen>
-  </sink>
-  <source>
-    <name>out</name>
-    <type>complex</type>
-    <vlen>1</vlen>
-  </source>
-  <doc>Piotr Krysik
-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>
-  <grc_source>/home/piotr/Odbiornik_gsm/gr-gsm/examples/gsm_fcch_detector.grc</grc_source>
-</block>
diff --git a/grc/receiver/gsm_input.block.yml b/grc/receiver/gsm_input.block.yml
new file mode 100644
index 0000000..5489b00
--- /dev/null
+++ b/grc/receiver/gsm_input.block.yml
@@ -0,0 +1,60 @@
+# auto-generated by grc.converter
+
+id: gsm_input
+label: GSM Input Adaptor
+
+parameters:
+-   id: ppm
+    label: ppm
+    dtype: float
+    default: ppm
+    hide: part
+-   id: osr
+    label: OSR
+    dtype: int
+    default: osr
+    hide: part
+-   id: fc
+    label: fc
+    dtype: float
+    default: fc
+    hide: part
+-   id: samp_rate_in
+    label: samp_rate_in
+    dtype: float
+    default: samp_rate_in
+    hide: part
+
+inputs:
+-   domain: stream
+    dtype: complex
+    vlen: 1
+-   domain: message
+    id: ctrl_in
+    optional: true
+
+outputs:
+-   domain: stream
+    dtype: complex
+    vlen: 1
+
+templates:
+    imports: import grgsm
+    make: |-
+        grgsm.gsm_input(
+            ppm=${ppm},
+            osr=${osr},
+            fc=${fc},
+            samp_rate_in=${samp_rate_in},
+        )
+    callbacks:
+    - set_ppm(${ppm})
+    - set_osr(${osr})
+    - set_fc(${fc})
+    - set_samp_rate_in(${samp_rate_in})
+
+documentation: |-
+    Piotr Krysik
+    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.
+
+file_format: 1
diff --git a/grc/receiver/gsm_input.xml b/grc/receiver/gsm_input.xml
deleted file mode 100644
index 52445da..0000000
--- a/grc/receiver/gsm_input.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<block>
-  <name>GSM Input Adaptor</name>
-  <key>gsm_input</key>
-  <category></category>
-  <import>import grgsm</import>
-  <make>grgsm.gsm_input(
-    ppm=$ppm,
-    osr=$osr,
-    fc=$fc,
-    samp_rate_in=$samp_rate_in,
-)</make>
-  <callback>set_ppm($ppm)</callback>
-  <callback>set_osr($osr)</callback>
-  <callback>set_fc($fc)</callback>
-  <callback>set_samp_rate_in($samp_rate_in)</callback>
-  <param>
-    <name>ppm</name>
-    <key>ppm</key>
-    <value>ppm</value>
-    <type>float</type>
-    <hide>part</hide>
-  </param>
-  <param>
-    <name>OSR</name>
-    <key>osr</key>
-    <value>osr</value>
-    <type>int</type>
-    <hide>part</hide>
-  </param>
-  <param>
-    <name>fc</name>
-    <key>fc</key>
-    <value>fc</value>
-    <type>float</type>
-    <hide>part</hide>
-  </param>
-  <param>
-    <name>samp_rate_in</name>
-    <key>samp_rate_in</key>
-    <value>samp_rate_in</value>
-    <type>float</type>
-    <hide>part</hide>
-  </param>
-  <sink>
-    <name>in</name>
-    <type>complex</type>
-    <vlen>1</vlen>
-  </sink>
-  <sink>
-    <name>ctrl_in</name>
-    <type>message</type>
-    <optional>True</optional>
-  </sink>
-  <source>
-    <name>out</name>
-    <type>complex</type>
-    <vlen>1</vlen>
-  </source>
-  <doc>Piotr Krysik
-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>
-</block>
diff --git a/grc/receiver/gsm_receiver.block.yml b/grc/receiver/gsm_receiver.block.yml
new file mode 100644
index 0000000..9897bec
--- /dev/null
+++ b/grc/receiver/gsm_receiver.block.yml
@@ -0,0 +1,49 @@
+# auto-generated by grc.converter
+
+id: gsm_receiver
+label: GSM Receiver
+
+parameters:
+-   id: osr
+    label: Oversampling ratio
+    dtype: int
+    default: '4'
+-   id: cell_allocation
+    label: Cell allocation
+    dtype: float_vector
+    default: '[0]'
+    hide: part
+-   id: tseq_nums
+    label: TSEQ numbers
+    dtype: int_vector
+    default: '[]'
+    hide: part
+-   id: num_streams
+    label: Num Streams
+    dtype: int
+    default: '1'
+    hide: part
+
+inputs:
+-   domain: stream
+    dtype: complex
+    multiplicity: ${ num_streams }
+
+outputs:
+-   domain: message
+    id: C0
+    optional: true
+-   domain: message
+    id: CX
+    optional: true
+-   domain: message
+    id: measurements
+    optional: true
+asserts:
+- ${ num_streams >= 0 }
+
+templates:
+    imports: import grgsm
+    make: grgsm.receiver(${osr}, ${cell_allocation}, ${tseq_nums}, False)
+
+file_format: 1
diff --git a/grc/receiver/gsm_receiver.xml b/grc/receiver/gsm_receiver.xml
deleted file mode 100644
index 2988243..0000000
--- a/grc/receiver/gsm_receiver.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>GSM Receiver</name>
-  <key>gsm_receiver</key>
-  <import>import grgsm</import>
-  <make>grgsm.receiver($osr, $cell_allocation, $tseq_nums, False)</make>
-
-  <param>
-    <name>Oversampling ratio</name>
-    <key>osr</key>
-    <value>4</value>
-    <type>int</type>
-  </param>
-
-  <param>
-    <name>Cell allocation</name>
-    <key>cell_allocation</key>
-    <value>[0]</value>
-    <type>float_vector</type>
-    <hide>part</hide>
-  </param>
-
-  <param>
-    <name>TSEQ numbers</name>
-    <key>tseq_nums</key>
-    <value>[]</value>
-    <type>int_vector</type>
-    <hide>part</hide>
-  </param>
-
-  <param>
-    <name>Num Streams</name>
-    <key>num_streams</key>
-    <value>1</value>
-    <type>int</type>
-    <hide>part</hide>
-  </param>
-  <check>$num_streams &gt;= 0</check>
-  
-  <sink>
-    <name>in</name>
-    <type>complex</type>
-    <nports>$num_streams</nports>
-  </sink>
-
-  <source>
-    <name>C0</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-  
-  <source>
-    <name>CX</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-
-  <source>
-    <name>measurements</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-</block>
diff --git a/grc/receiver/gsm_receiver_with_uplink.block.yml b/grc/receiver/gsm_receiver_with_uplink.block.yml
new file mode 100644
index 0000000..d0b6302
--- /dev/null
+++ b/grc/receiver/gsm_receiver_with_uplink.block.yml
@@ -0,0 +1,54 @@
+# auto-generated by grc.converter
+
+id: gsm_receiver_with_uplink
+label: GSM Receiver (with uplink)
+
+parameters:
+-   id: osr
+    label: Oversampling ratio
+    dtype: int
+    default: '4'
+-   id: cell_allocation
+    label: Cell allocation
+    dtype: float_vector
+    default: '[0]'
+    hide: part
+-   id: tseq_nums
+    label: TSEQ numbers
+    dtype: int_vector
+    default: '[]'
+    hide: part
+-   id: num_streams
+    label: Num Streams
+    dtype: int
+    default: '1'
+    hide: part
+
+inputs:
+-   label: C
+    domain: stream
+    dtype: complex
+    multiplicity: ${ num_streams }
+-   label: C_up
+    domain: stream
+    dtype: complex
+    multiplicity: ${ num_streams }
+
+outputs:
+-   domain: message
+    id: C0
+    optional: true
+-   domain: message
+    id: CX
+    optional: true
+-   domain: message
+    id: measurements
+    optional: true
+asserts:
+- ${ num_streams >= 0 }
+
+templates:
+    imports: import grgsm
+    make: grgsm.receiver(${osr}, ${cell_allocation}, ${tseq_nums}, True)
+
+file_format: 1
diff --git a/grc/receiver/gsm_receiver_with_uplink.xml b/grc/receiver/gsm_receiver_with_uplink.xml
deleted file mode 100644
index 4b68336..0000000
--- a/grc/receiver/gsm_receiver_with_uplink.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>GSM Receiver (with uplink)</name>
-  <key>gsm_receiver_with_uplink</key>
-  <import>import grgsm</import>
-  <make>grgsm.receiver($osr, $cell_allocation, $tseq_nums, True)</make>
-
-  <param>
-    <name>Oversampling ratio</name>
-    <key>osr</key>
-    <value>4</value>
-    <type>int</type>
-  </param>
-
-  <param>
-    <name>Cell allocation</name>
-    <key>cell_allocation</key>
-    <value>[0]</value>
-    <type>float_vector</type>
-    <hide>part</hide>
-  </param>
-
-  <param>
-    <name>TSEQ numbers</name>
-    <key>tseq_nums</key>
-    <value>[]</value>
-    <type>int_vector</type>
-    <hide>part</hide>
-  </param>
-
-  <param>
-    <name>Num Streams</name>
-    <key>num_streams</key>
-    <value>1</value>
-    <type>int</type>
-    <hide>part</hide>
-  </param>
-
-  <check>$num_streams &gt;= 0</check>
-  
-  <sink>
-    <name>C</name>
-    <type>complex</type>
-    <nports>$num_streams</nports>
-  </sink>
-
-
-  <sink>
-    <name>C_up</name>
-    <type>complex</type>
-    <nports>$num_streams</nports>
-  </sink>
-
-  <source>
-    <name>C0</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-  
-  <source>
-    <name>CX</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-
-  <source>
-    <name>measurements</name>
-    <type>message</type>
-    <optional>1</optional>
-  </source>
-</block>
diff --git a/grc/receiver/gsm_sch_detector.block.yml b/grc/receiver/gsm_sch_detector.block.yml
new file mode 100644
index 0000000..33d4543
--- /dev/null
+++ b/grc/receiver/gsm_sch_detector.block.yml
@@ -0,0 +1,26 @@
+# auto-generated by grc.converter
+
+id: gsm_sch_detector
+label: SCH Bursts Detector
+
+parameters:
+-   id: OSR
+    label: OSR
+    dtype: int
+    default: '4'
+
+inputs:
+-   domain: stream
+    dtype: complex
+
+outputs:
+-   domain: stream
+    dtype: complex
+
+templates:
+    imports: import grgsm
+    make: grgsm.sch_detector(${OSR})
+    callbacks:
+    - set_OSR(${OSR})
+
+file_format: 1
diff --git a/grc/receiver/gsm_sch_detector.xml b/grc/receiver/gsm_sch_detector.xml
deleted file mode 100644
index b3adb56..0000000
--- a/grc/receiver/gsm_sch_detector.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<block>
-  <name>SCH Bursts Detector</name>
-  <key>gsm_sch_detector</key>
-  <import>import grgsm</import>
-  <make>grgsm.sch_detector($OSR)</make>
-  <callback>set_OSR($OSR)</callback>
-  <param>
-    <name>OSR</name>
-    <key>OSR</key>
-    <value>4</value>
-    <type>int</type>
-  </param>
-
-  <sink>
-    <name>in</name>
-    <type>complex</type>
-  </sink>
-
-  <source>
-    <name>out</name>
-    <type>complex</type>
-  </source>
-</block>