xml -> yaml

This commit is contained in:
Bastian Bloessl
2018-10-04 09:04:03 +02:00
parent 24914b9391
commit de8b850895
23 changed files with 490 additions and 666 deletions
+1 -1
View File
@@ -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 )
+33
View File
@@ -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
-35
View File
@@ -1,35 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Burst Tagger</name>
<key>foo_burst_tagger</key>
<category>[Foo]</category>
<import>import pmt</import>
<import>import foo</import>
<make>foo.burst_tagger($tag_name, $mult)</make>
<param>
<name>Tag Name</name>
<key>tag_name</key>
<value>pmt.intern("burst_len")</value>
<type>raw</type>
</param>
<param>
<name>Multiplier</name>
<key>mult</key>
<value>1</value>
<type>int</type>
</param>
<check>$mult > 0</check>
<sink>
<name>in</name>
<type>complex</type>
</sink>
<source>
<name>out</name>
<type>complex</type>
</source>
</block>
+57
View File
@@ -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
-74
View File
@@ -1,74 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Channel Model</name>
<key>foo_channel_model</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.channel_model(
noise_voltage=$noise_voltage,
frequency_offset=$freq_offset,
epsilon=$epsilon,
taps=$taps,
noise_seed=$seed,
block_tags=$block_tags
)</make>
<callback>set_noise_voltage($noise_voltage)</callback>
<callback>set_frequency_offset($freq_offset)</callback>
<callback>set_taps($taps)</callback>
<callback>set_timing_offset($epsilon)</callback>
<param>
<name>Noise Voltage</name>
<key>noise_voltage</key>
<value>0.0</value>
<type>real</type>
</param>
<param>
<name>Frequency Offset</name>
<key>freq_offset</key>
<value>0.0</value>
<type>real</type>
</param>
<param>
<name>Epsilon</name>
<key>epsilon</key>
<value>1.0</value>
<type>real</type>
</param>
<param>
<name>Taps</name>
<key>taps</key>
<value>1.0 + 1.0j</value>
<type>complex_vector</type>
</param>
<param>
<name>Seed</name>
<key>seed</key>
<value>0</value>
<type>int</type>
</param>
<param>
<name>Block Tag Propagation</name>
<key>block_tags</key>
<value>False</value>
<type>enum</type>
<hide>$block_tags.hide_block</hide>
<option>
<name>Yes</name>
<key>True</key>
<opt>hide_block:</opt>
</option>
<option>
<name>No</name>
<key>False</key>
<opt>hide_block:part</opt>
</option>
</param>
<sink>
<name>in</name>
<type>complex</type>
</sink>
<source>
<name>out</name>
<type>complex</type>
</source>
</block>
+29
View File
@@ -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
-32
View File
@@ -1,32 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Packet Dropper</name>
<key>foo_packet_dropper</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.packet_dropper($drop_rate, $seed)</make>
<param>
<name>Packet drop rate</name>
<key>drop_rate</key>
<value>0.5</value>
<type>real</type>
</param>
<param>
<name>Random seed</name>
<key>seed</key>
<value>42</value>
<type>int</type>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>message</type>
</source>
</block>
+51
View File
@@ -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
-79
View File
@@ -1,79 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Packet Pad</name>
<key>foo_packet_pad</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.packet_pad($debug, $delay, $delay_sec, $pad_front, $pad_tail)</make>
<param>
<name>Debug</name>
<key>debug</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Delay</name>
<key>delay</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Delay Sec</name>
<key>delay_sec</key>
<value>0.001</value>
<type>real</type>
</param>
<param>
<name>Pad Front</name>
<key>pad_front</key>
<value>0</value>
<type>int</type>
</param>
<param>
<name>Pad Tail</name>
<key>pad_tail</key>
<value>0</value>
<type>int</type>
</param>
<check>$pad_front >= 0</check>
<check>$pad_tail >= 0</check>
<check>$delay_sec > 0</check>
<sink>
<name>in</name>
<type>complex</type>
<nports>1</nports>
</sink>
<source>
<name>out</name>
<type>complex</type>
<nports>1</nports>
</source>
</block>
+51
View File
@@ -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
-79
View File
@@ -1,79 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Packet Pad2</name>
<key>foo_packet_pad2</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.packet_pad2($debug, $delay, $delay_sec, $pad_front, $pad_tail)</make>
<param>
<name>Debug</name>
<key>debug</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Delay</name>
<key>delay</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Delay Sec</name>
<key>delay_sec</key>
<value>0.001</value>
<type>real</type>
</param>
<param>
<name>Pad Front</name>
<key>pad_front</key>
<value>0</value>
<type>int</type>
</param>
<param>
<name>Pad Tail</name>
<key>pad_tail</key>
<value>0</value>
<type>int</type>
</param>
<check>$pad_front >= 0</check>
<check>$pad_tail >= 0</check>
<check>$delay_sec > 0</check>
<sink>
<name>in</name>
<type>complex</type>
<nports>1</nports>
</sink>
<source>
<name>out</name>
<type>complex</type>
<nports>1</nports>
</source>
</block>
+44
View File
@@ -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
-61
View File
@@ -1,61 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Periodic Message Source</name>
<key>foo_periodic_msg_source</key>
<category>[Foo]</category>
<import>import foo</import>
<import>import pmt</import>
<make>foo.periodic_msg_source($msg, $interval, $num, $quit, $debug)</make>
<param>
<name>Message PMT</name>
<key>msg</key>
<value>pmt.intern("Hello World!")</value>
<type>raw</type>
</param>
<param>
<name>Period (ms)</name>
<key>interval</key>
<value>1000</value>
<type>int</type>
</param>
<param>
<name>Quit</name>
<key>quit</key>
<value>True</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Debug</name>
<key>debug</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Num Messages</name>
<key>num</key>
<value>-1</value>
<type>int</type>
</param>
<source>
<name>out</name>
<type>message</type>
<optional>1</optional>
</source>
</block>
@@ -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
-67
View File
@@ -1,67 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Random Periodic Message Source</name>
<key>foo_random_periodic_msg_source</key>
<category>[Foo]</category>
<import>import foo</import>
<import>import pmt</import>
<make>foo.random_periodic_msg_source($msg_len, $interval, $num, $quit, $debug, $seed)</make>
<param>
<name>Message Length</name>
<key>msg_len</key>
<value>64</value>
<type>int</type>
</param>
<param>
<name>Period (ms)</name>
<key>interval</key>
<value>1000</value>
<type>int</type>
</param>
<param>
<name>Quit</name>
<key>quit</key>
<value>True</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Debug</name>
<key>debug</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param>
<name>Num Messages</name>
<key>num</key>
<value>1</value>
<type>int</type>
</param>
<param>
<name>Random Seed</name>
<key>seed</key>
<value>1</value>
<type>int</type>
</param>
<source>
<name>out</name>
<type>message</type>
<optional>1</optional>
</source>
</block>
+28
View File
@@ -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
-30
View File
@@ -1,30 +0,0 @@
<?xml version="1.0"?>
<block>
<name>RTT measure</name>
<key>foo_rtt_measure</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.rtt_measure($interval)</make>
<param>
<name>Send interval</name>
<key>interval</key>
<value>500</value>
<type>int</type>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
<source>
<name>dout</name>
<type>byte</type>
</source>
<source>
<name>out</name>
<type>message</type>
</source>
</block>
+66
View File
@@ -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
-92
View File
@@ -1,92 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Selector</name>
<key>foo_selector</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.selector(
item_size=$type.size*$vlen,
num_inputs=$num_inputs,
num_outputs=$num_outputs,
input_index=$input_index,
output_index=$output_index,
)</make>
<callback>set_input_index(int($input_index))</callback>
<callback>set_output_index(int($output_index))</callback>
<param>
<name>Type</name>
<key>type</key>
<type>enum</type>
<option>
<name>Complex</name>
<key>complex</key>
<opt>size:gr.sizeof_gr_complex</opt>
</option>
<option>
<name>Float</name>
<key>float</key>
<opt>size:gr.sizeof_float</opt>
</option>
<option>
<name>Int</name>
<key>int</key>
<opt>size:gr.sizeof_int</opt>
</option>
<option>
<name>Short</name>
<key>short</key>
<opt>size:gr.sizeof_short</opt>
</option>
<option>
<name>Byte</name>
<key>byte</key>
<opt>size:gr.sizeof_char</opt>
</option>
</param>
<param>
<name>Num Inputs</name>
<key>num_inputs</key>
<value>2</value>
<type>int</type>
</param>
<param>
<name>Num Outputs</name>
<key>num_outputs</key>
<value>2</value>
<type>int</type>
</param>
<param>
<name>Input Index</name>
<key>input_index</key>
<value>0</value>
<type>int</type>
</param>
<param>
<name>Output Index</name>
<key>output_index</key>
<value>0</value>
<type>int</type>
</param>
<param>
<name>Vec Length</name>
<key>vlen</key>
<value>1</value>
<type>int</type>
</param>
<check>$vlen &gt; 0</check>
<sink>
<name>in</name>
<type>$type</type>
<vlen>$vlen</vlen>
<nports>$num_inputs</nports>
</sink>
<source>
<name>out</name>
<type>$type</type>
<vlen>$vlen</vlen>
<nports>$num_outputs</nports>
</source>
<doc>
Connect the sink at input index to the source at output index. Leave all other ports disconnected.
</doc>
</block>
+47
View File
@@ -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
-67
View File
@@ -1,67 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Valve</name>
<key>foo_valve</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.valve(item_size=$type.size*$vlen, open=bool($open))</make>
<callback>set_open(bool($open))</callback>
<param>
<name>Type</name>
<key>type</key>
<type>enum</type>
<option>
<name>Complex</name>
<key>complex</key>
<opt>size:gr.sizeof_gr_complex</opt>
</option>
<option>
<name>Float</name>
<key>float</key>
<opt>size:gr.sizeof_float</opt>
</option>
<option>
<name>Int</name>
<key>int</key>
<opt>size:gr.sizeof_int</opt>
</option>
<option>
<name>Short</name>
<key>short</key>
<opt>size:gr.sizeof_short</opt>
</option>
<option>
<name>Byte</name>
<key>byte</key>
<opt>size:gr.sizeof_char</opt>
</option>
</param>
<param>
<name>Open</name>
<key>open</key>
<value>0</value>
<type>raw</type>
</param>
<param>
<name>Vec Length</name>
<key>vlen</key>
<value>1</value>
<type>int</type>
</param>
<check>$vlen &gt; 0</check>
<sink>
<name>in</name>
<type>$type</type>
<vlen>$vlen</vlen>
<nports>$num_inputs</nports>
</sink>
<source>
<name>out</name>
<type>$type</type>
<vlen>$vlen</vlen>
<nports>$num_outputs</nports>
</source>
<doc>
Connect output to input when valve is closed (not open).
</doc>
</block>
+34
View File
@@ -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
-49
View File
@@ -1,49 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Wireshark Connector</name>
<key>foo_wireshark_connector</key>
<category>[Foo]</category>
<import>import foo</import>
<make>foo.wireshark_connector($tech, $debug)</make>
<param>
<name>Technology</name>
<key>tech</key>
<value>127</value>
<type>enum</type>
<option>
<name>WiFi</name>
<key>127</key>
</option>
<option>
<name>ZigBee</name>
<key>195</key>
</option>
</param>
<param>
<name>Debug</name>
<key>debug</key>
<value>False</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>byte</type>
<nports>1</nports>
</source>
</block>