diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index 75e9863..97662aa 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -17,6 +17,6 @@
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-file(GLOB xml_files "*.xml")
+file(GLOB xml_files "*.block.yml")
install(FILES ${xml_files} DESTINATION share/gnuradio/grc/blocks )
diff --git a/grc/foo_burst_tagger.block.yml b/grc/foo_burst_tagger.block.yml
new file mode 100644
index 0000000..455a8c8
--- /dev/null
+++ b/grc/foo_burst_tagger.block.yml
@@ -0,0 +1,33 @@
+# auto-generated by grc.converter
+
+id: foo_burst_tagger
+label: Burst Tagger
+category: '[Foo]'
+
+parameters:
+- id: tag_name
+ label: Tag Name
+ dtype: raw
+ default: pmt.intern("burst_len")
+- id: mult
+ label: Multiplier
+ dtype: int
+ default: '1'
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+asserts:
+- ${ mult > 0 }
+
+templates:
+ imports: |-
+ import pmt
+ import foo
+ make: foo.burst_tagger(${tag_name}, ${mult})
+
+file_format: 1
diff --git a/grc/foo_burst_tagger.xml b/grc/foo_burst_tagger.xml
deleted file mode 100644
index 5d5b257..0000000
--- a/grc/foo_burst_tagger.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- Burst Tagger
- foo_burst_tagger
- [Foo]
- import pmt
- import foo
- foo.burst_tagger($tag_name, $mult)
-
-
- Tag Name
- tag_name
- pmt.intern("burst_len")
- raw
-
-
-
- Multiplier
- mult
- 1
- int
-
-
- $mult > 0
-
-
- in
- complex
-
-
-
- out
- complex
-
-
diff --git a/grc/foo_channel_model.block.yml b/grc/foo_channel_model.block.yml
new file mode 100644
index 0000000..4464e0c
--- /dev/null
+++ b/grc/foo_channel_model.block.yml
@@ -0,0 +1,57 @@
+# auto-generated by grc.converter
+
+id: foo_channel_model
+label: Channel Model
+category: '[Foo]'
+
+parameters:
+- id: noise_voltage
+ label: Noise Voltage
+ dtype: real
+ default: '0.0'
+- id: freq_offset
+ label: Frequency Offset
+ dtype: real
+ default: '0.0'
+- id: epsilon
+ label: Epsilon
+ dtype: real
+ default: '1.0'
+- id: taps
+ label: Taps
+ dtype: complex_vector
+ default: 1.0 + 1.0j
+- id: seed
+ label: Seed
+ dtype: int
+ default: '0'
+- id: block_tags
+ label: Block Tag Propagation
+ dtype: enum
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['Yes', 'No']
+ option_attributes:
+ hide_block: ['', part]
+ hide: ${ block_tags.hide_block }
+
+inputs:
+- domain: stream
+ dtype: complex
+
+outputs:
+- domain: stream
+ dtype: complex
+
+templates:
+ imports: import foo
+ make: "foo.channel_model(\n\tnoise_voltage=${noise_voltage},\n\tfrequency_offset=${freq_offset},\n\
+ \tepsilon=${epsilon},\n\ttaps=${taps},\n\tnoise_seed=${seed},\n\tblock_tags=${block_tags}\n\
+ )"
+ callbacks:
+ - set_noise_voltage(${noise_voltage})
+ - set_frequency_offset(${freq_offset})
+ - set_taps(${taps})
+ - set_timing_offset(${epsilon})
+
+file_format: 1
diff --git a/grc/foo_channel_model.xml b/grc/foo_channel_model.xml
deleted file mode 100644
index 61fe93f..0000000
--- a/grc/foo_channel_model.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
- Channel Model
- foo_channel_model
- [Foo]
- import foo
- foo.channel_model(
- noise_voltage=$noise_voltage,
- frequency_offset=$freq_offset,
- epsilon=$epsilon,
- taps=$taps,
- noise_seed=$seed,
- block_tags=$block_tags
-)
- set_noise_voltage($noise_voltage)
- set_frequency_offset($freq_offset)
- set_taps($taps)
- set_timing_offset($epsilon)
-
- Noise Voltage
- noise_voltage
- 0.0
- real
-
-
- Frequency Offset
- freq_offset
- 0.0
- real
-
-
- Epsilon
- epsilon
- 1.0
- real
-
-
- Taps
- taps
- 1.0 + 1.0j
- complex_vector
-
-
- Seed
- seed
- 0
- int
-
-
- Block Tag Propagation
- block_tags
- False
- enum
- $block_tags.hide_block
-
-
-
-
- in
- complex
-
-
- out
- complex
-
-
diff --git a/grc/foo_packet_dropper.block.yml b/grc/foo_packet_dropper.block.yml
new file mode 100644
index 0000000..7d087ba
--- /dev/null
+++ b/grc/foo_packet_dropper.block.yml
@@ -0,0 +1,29 @@
+# auto-generated by grc.converter
+
+id: foo_packet_dropper
+label: Packet Dropper
+category: '[Foo]'
+
+parameters:
+- id: drop_rate
+ label: Packet drop rate
+ dtype: real
+ default: '0.5'
+- id: seed
+ label: Random seed
+ dtype: int
+ default: '42'
+
+inputs:
+- domain: message
+ id: in
+
+outputs:
+- domain: message
+ id: out
+
+templates:
+ imports: import foo
+ make: foo.packet_dropper(${drop_rate}, ${seed})
+
+file_format: 1
diff --git a/grc/foo_packet_dropper.xml b/grc/foo_packet_dropper.xml
deleted file mode 100644
index c9dde4c..0000000
--- a/grc/foo_packet_dropper.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
- Packet Dropper
- foo_packet_dropper
- [Foo]
- import foo
- foo.packet_dropper($drop_rate, $seed)
-
-
- Packet drop rate
- drop_rate
- 0.5
- real
-
-
-
- Random seed
- seed
- 42
- int
-
-
-
- in
- message
-
-
-
- out
- message
-
-
diff --git a/grc/foo_packet_pad.block.yml b/grc/foo_packet_pad.block.yml
new file mode 100644
index 0000000..6f267ce
--- /dev/null
+++ b/grc/foo_packet_pad.block.yml
@@ -0,0 +1,51 @@
+# auto-generated by grc.converter
+
+id: foo_packet_pad
+label: Packet Pad
+category: '[Foo]'
+
+parameters:
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: delay
+ label: Delay
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: delay_sec
+ label: Delay Sec
+ dtype: real
+ default: '0.001'
+- id: pad_front
+ label: Pad Front
+ dtype: int
+ default: '0'
+- id: pad_tail
+ label: Pad Tail
+ dtype: int
+ default: '0'
+
+inputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+
+outputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+asserts:
+- ${ pad_front >= 0 }
+- ${ pad_tail >= 0 }
+- ${ delay_sec > 0 }
+
+templates:
+ imports: import foo
+ make: foo.packet_pad(${debug}, ${delay}, ${delay_sec}, ${pad_front}, ${pad_tail})
+
+file_format: 1
diff --git a/grc/foo_packet_pad.xml b/grc/foo_packet_pad.xml
deleted file mode 100644
index 9fb5f72..0000000
--- a/grc/foo_packet_pad.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
- Packet Pad
- foo_packet_pad
- [Foo]
- import foo
- foo.packet_pad($debug, $delay, $delay_sec, $pad_front, $pad_tail)
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- Delay
- delay
- False
- bool
-
-
-
-
-
-
- Delay Sec
- delay_sec
- 0.001
- real
-
-
-
- Pad Front
- pad_front
- 0
- int
-
-
-
- Pad Tail
- pad_tail
- 0
- int
-
-
- $pad_front >= 0
- $pad_tail >= 0
- $delay_sec > 0
-
-
- in
- complex
- 1
-
-
-
- out
- complex
- 1
-
-
-
diff --git a/grc/foo_packet_pad2.block.yml b/grc/foo_packet_pad2.block.yml
new file mode 100644
index 0000000..e6f851d
--- /dev/null
+++ b/grc/foo_packet_pad2.block.yml
@@ -0,0 +1,51 @@
+# auto-generated by grc.converter
+
+id: foo_packet_pad2
+label: Packet Pad2
+category: '[Foo]'
+
+parameters:
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: delay
+ label: Delay
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: delay_sec
+ label: Delay Sec
+ dtype: real
+ default: '0.001'
+- id: pad_front
+ label: Pad Front
+ dtype: int
+ default: '0'
+- id: pad_tail
+ label: Pad Tail
+ dtype: int
+ default: '0'
+
+inputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+
+outputs:
+- domain: stream
+ dtype: complex
+ multiplicity: '1'
+asserts:
+- ${ pad_front >= 0 }
+- ${ pad_tail >= 0 }
+- ${ delay_sec > 0 }
+
+templates:
+ imports: import foo
+ make: foo.packet_pad2(${debug}, ${delay}, ${delay_sec}, ${pad_front}, ${pad_tail})
+
+file_format: 1
diff --git a/grc/foo_packet_pad2.xml b/grc/foo_packet_pad2.xml
deleted file mode 100644
index a305f91..0000000
--- a/grc/foo_packet_pad2.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
- Packet Pad2
- foo_packet_pad2
- [Foo]
- import foo
- foo.packet_pad2($debug, $delay, $delay_sec, $pad_front, $pad_tail)
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- Delay
- delay
- False
- bool
-
-
-
-
-
-
- Delay Sec
- delay_sec
- 0.001
- real
-
-
-
- Pad Front
- pad_front
- 0
- int
-
-
-
- Pad Tail
- pad_tail
- 0
- int
-
-
- $pad_front >= 0
- $pad_tail >= 0
- $delay_sec > 0
-
-
- in
- complex
- 1
-
-
-
- out
- complex
- 1
-
-
-
diff --git a/grc/foo_periodic_msg_source.block.yml b/grc/foo_periodic_msg_source.block.yml
new file mode 100644
index 0000000..dceb3c0
--- /dev/null
+++ b/grc/foo_periodic_msg_source.block.yml
@@ -0,0 +1,44 @@
+# auto-generated by grc.converter
+
+id: foo_periodic_msg_source
+label: Periodic Message Source
+category: '[Foo]'
+
+parameters:
+- id: msg
+ label: Message PMT
+ dtype: raw
+ default: pmt.intern("Hello World!")
+- id: interval
+ label: Period (ms)
+ dtype: int
+ default: '1000'
+- id: quit
+ label: Quit
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: num
+ label: Num Messages
+ dtype: int
+ default: '-1'
+
+outputs:
+- domain: message
+ id: out
+ optional: true
+
+templates:
+ imports: |-
+ import foo
+ import pmt
+ make: foo.periodic_msg_source(${msg}, ${interval}, ${num}, ${quit}, ${debug})
+
+file_format: 1
diff --git a/grc/foo_periodic_msg_source.xml b/grc/foo_periodic_msg_source.xml
deleted file mode 100644
index 46a69bf..0000000
--- a/grc/foo_periodic_msg_source.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
- Periodic Message Source
- foo_periodic_msg_source
- [Foo]
- import foo
- import pmt
- foo.periodic_msg_source($msg, $interval, $num, $quit, $debug)
-
- Message PMT
- msg
- pmt.intern("Hello World!")
- raw
-
-
- Period (ms)
- interval
- 1000
- int
-
-
- Quit
- quit
- True
- bool
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
- Num Messages
- num
- -1
- int
-
-
- out
- message
- 1
-
-
diff --git a/grc/foo_random_periodic_msg_source.block.yml b/grc/foo_random_periodic_msg_source.block.yml
new file mode 100644
index 0000000..7ddd340
--- /dev/null
+++ b/grc/foo_random_periodic_msg_source.block.yml
@@ -0,0 +1,49 @@
+# auto-generated by grc.converter
+
+id: foo_random_periodic_msg_source
+label: Random Periodic Message Source
+category: '[Foo]'
+
+parameters:
+- id: msg_len
+ label: Message Length
+ dtype: int
+ default: '64'
+- id: interval
+ label: Period (ms)
+ dtype: int
+ default: '1000'
+- id: quit
+ label: Quit
+ dtype: bool
+ default: 'True'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+- id: num
+ label: Num Messages
+ dtype: int
+ default: '1'
+- id: seed
+ label: Random Seed
+ dtype: int
+ default: '1'
+
+outputs:
+- domain: message
+ id: out
+ optional: true
+
+templates:
+ imports: |-
+ import foo
+ import pmt
+ make: foo.random_periodic_msg_source(${msg_len}, ${interval}, ${num}, ${quit},
+ ${debug}, ${seed})
+
+file_format: 1
diff --git a/grc/foo_random_periodic_msg_source.xml b/grc/foo_random_periodic_msg_source.xml
deleted file mode 100644
index 894a356..0000000
--- a/grc/foo_random_periodic_msg_source.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
- Random Periodic Message Source
- foo_random_periodic_msg_source
- [Foo]
- import foo
- import pmt
- foo.random_periodic_msg_source($msg_len, $interval, $num, $quit, $debug, $seed)
-
- Message Length
- msg_len
- 64
- int
-
-
- Period (ms)
- interval
- 1000
- int
-
-
- Quit
- quit
- True
- bool
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
- Num Messages
- num
- 1
- int
-
-
- Random Seed
- seed
- 1
- int
-
-
- out
- message
- 1
-
-
diff --git a/grc/foo_rtt_measure.block.yml b/grc/foo_rtt_measure.block.yml
new file mode 100644
index 0000000..45e89d6
--- /dev/null
+++ b/grc/foo_rtt_measure.block.yml
@@ -0,0 +1,28 @@
+# auto-generated by grc.converter
+
+id: foo_rtt_measure
+label: RTT measure
+category: '[Foo]'
+
+parameters:
+- id: interval
+ label: Send interval
+ dtype: int
+ default: '500'
+
+inputs:
+- domain: message
+ id: in
+
+outputs:
+- label: dout
+ domain: stream
+ dtype: byte
+- domain: message
+ id: out
+
+templates:
+ imports: import foo
+ make: foo.rtt_measure(${interval})
+
+file_format: 1
diff --git a/grc/foo_rtt_measure.xml b/grc/foo_rtt_measure.xml
deleted file mode 100644
index d83a97a..0000000
--- a/grc/foo_rtt_measure.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- RTT measure
- foo_rtt_measure
- [Foo]
- import foo
- foo.rtt_measure($interval)
-
-
- Send interval
- interval
- 500
- int
-
-
-
- in
- message
-
-
-
- dout
- byte
-
-
-
- out
- message
-
-
diff --git a/grc/foo_selector.block.yml b/grc/foo_selector.block.yml
new file mode 100644
index 0000000..a8b480a
--- /dev/null
+++ b/grc/foo_selector.block.yml
@@ -0,0 +1,66 @@
+# auto-generated by grc.converter
+
+id: foo_selector
+label: Selector
+category: '[Foo]'
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [complex, float, int, short, byte]
+ option_attributes:
+ size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short,
+ gr.sizeof_char]
+ hide: part
+- id: num_inputs
+ label: Num Inputs
+ dtype: int
+ default: '2'
+ hide: part
+- id: num_outputs
+ label: Num Outputs
+ dtype: int
+ default: '2'
+ hide: part
+- id: input_index
+ label: Input Index
+ dtype: int
+ default: '0'
+- id: output_index
+ label: Output Index
+ dtype: int
+ default: '0'
+- id: vlen
+ label: Vec Length
+ dtype: int
+ default: '1'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+ vlen: ${ vlen }
+ multiplicity: ${ num_inputs }
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+ vlen: ${ vlen }
+ multiplicity: ${ num_outputs }
+asserts:
+- ${ vlen > 0 }
+
+templates:
+ imports: import foo
+ make: "foo.selector(\n\titem_size=${type.size}*${vlen},\n\tnum_inputs=${num_inputs},\n\
+ \tnum_outputs=${num_outputs},\n\tinput_index=${input_index},\n\toutput_index=${output_index},\n\
+ )"
+ callbacks:
+ - set_input_index(int(${input_index}))
+ - set_output_index(int(${output_index}))
+
+documentation: |-
+ Connect the sink at input index to the source at output index. Leave all other ports disconnected.
+
+file_format: 1
diff --git a/grc/foo_selector.xml b/grc/foo_selector.xml
deleted file mode 100644
index fdddccd..0000000
--- a/grc/foo_selector.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
- Selector
- foo_selector
- [Foo]
- import foo
- foo.selector(
- item_size=$type.size*$vlen,
- num_inputs=$num_inputs,
- num_outputs=$num_outputs,
- input_index=$input_index,
- output_index=$output_index,
-)
- set_input_index(int($input_index))
- set_output_index(int($output_index))
-
- Type
- type
- enum
-
-
-
-
-
-
-
- Num Inputs
- num_inputs
- 2
- int
-
-
- Num Outputs
- num_outputs
- 2
- int
-
-
- Input Index
- input_index
- 0
- int
-
-
- Output Index
- output_index
- 0
- int
-
-
- Vec Length
- vlen
- 1
- int
-
- $vlen > 0
-
- in
- $type
- $vlen
- $num_inputs
-
-
- out
- $type
- $vlen
- $num_outputs
-
-
-Connect the sink at input index to the source at output index. Leave all other ports disconnected.
-
-
diff --git a/grc/foo_valve.block.yml b/grc/foo_valve.block.yml
new file mode 100644
index 0000000..aa66a70
--- /dev/null
+++ b/grc/foo_valve.block.yml
@@ -0,0 +1,47 @@
+# auto-generated by grc.converter
+
+id: foo_valve
+label: Valve
+category: '[Foo]'
+
+parameters:
+- id: type
+ label: Type
+ dtype: enum
+ options: [complex, float, int, short, byte]
+ option_attributes:
+ size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short,
+ gr.sizeof_char]
+ hide: part
+- id: open
+ label: Open
+ dtype: raw
+ default: '0'
+- id: vlen
+ label: Vec Length
+ dtype: int
+ default: '1'
+ hide: ${ 'part' if vlen == 1 else 'none' }
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+ vlen: ${ vlen }
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+ vlen: ${ vlen }
+asserts:
+- ${ vlen > 0 }
+
+templates:
+ imports: import foo
+ make: foo.valve(item_size=${type.size}*${vlen}, open=bool(${open}))
+ callbacks:
+ - set_open(bool(${open}))
+
+documentation: |-
+ Connect output to input when valve is closed (not open).
+
+file_format: 1
diff --git a/grc/foo_valve.xml b/grc/foo_valve.xml
deleted file mode 100644
index c1c94e7..0000000
--- a/grc/foo_valve.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
- Valve
- foo_valve
- [Foo]
- import foo
- foo.valve(item_size=$type.size*$vlen, open=bool($open))
- set_open(bool($open))
-
- Type
- type
- enum
-
-
-
-
-
-
-
- Open
- open
- 0
- raw
-
-
- Vec Length
- vlen
- 1
- int
-
- $vlen > 0
-
- in
- $type
- $vlen
- $num_inputs
-
-
- out
- $type
- $vlen
- $num_outputs
-
-
-Connect output to input when valve is closed (not open).
-
-
diff --git a/grc/foo_wireshark_connector.block.yml b/grc/foo_wireshark_connector.block.yml
new file mode 100644
index 0000000..433397d
--- /dev/null
+++ b/grc/foo_wireshark_connector.block.yml
@@ -0,0 +1,34 @@
+# auto-generated by grc.converter
+
+id: foo_wireshark_connector
+label: Wireshark Connector
+category: '[Foo]'
+
+parameters:
+- id: tech
+ label: Technology
+ dtype: enum
+ default: '127'
+ options: ['127', '195']
+ option_labels: [WiFi, ZigBee]
+- id: debug
+ label: Debug
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: [Enable, Disable]
+
+inputs:
+- domain: message
+ id: in
+
+outputs:
+- domain: stream
+ dtype: byte
+ multiplicity: '1'
+
+templates:
+ imports: import foo
+ make: foo.wireshark_connector(${tech}, ${debug})
+
+file_format: 1
diff --git a/grc/foo_wireshark_connector.xml b/grc/foo_wireshark_connector.xml
deleted file mode 100644
index 3744f28..0000000
--- a/grc/foo_wireshark_connector.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
- Wireshark Connector
- foo_wireshark_connector
- [Foo]
- import foo
- foo.wireshark_connector($tech, $debug)
-
-
- Technology
- tech
- 127
- enum
-
-
-
-
-
- Debug
- debug
- False
- bool
-
-
-
-
-
-
- in
- message
-
-
- out
- byte
- 1
-
-