gr-mcp/grc/blocks/options.block.yml

180 lines
5.7 KiB
YAML

id: options
label: Options
flags: ['python', 'cpp']
parameters:
- id: title
label: Title
dtype: string
hide: ${ ('none' if title else 'part') }
- id: author
label: Author
dtype: string
hide: ${ ('none' if author else 'part') }
- id: copyright
label: Copyright
dtype: string
hide: ${ ('none' if copyright else 'part') }
- id: description
label: Description
dtype: string
hide: ${ ('none' if description else 'part') }
- id: output_language
label: Output Language
dtype: enum
default: python
options: [python, cpp]
option_labels: [Python, C++]
- id: generate_options
label: Generate Options
dtype: enum
default: qt_gui
options: [qt_gui, bokeh_gui, no_gui, hb, hb_qt_gui]
option_labels: [QT GUI, Bokeh GUI, No GUI, Hier Block, Hier Block (QT GUI)]
- id: gen_linking
label: Linking
dtype: enum
default: dynamic
options: [dynamic, static]
option_labels: [ Dynamic, Static ]
hide: 'all'
- id: gen_cmake
label: Generate CMakeLists.txt
dtype: enum
default: 'On'
options: ['On', 'Off']
hide: ${ ('part' if output_language == 'cpp' else 'all') }
- id: cmake_opt
label: CMake options
dtype: string
default: ''
hide: ${ ('part' if output_language == 'cpp' else 'all') }
- id: category
label: Category
dtype: string
default: '[GRC Hier Blocks]'
hide: ${ ('none' if generate_options.startswith('hb') else 'all') }
- id: run_options
label: Run Options
dtype: enum
default: prompt
options: [run, prompt]
option_labels: [Run to Completion, Prompt for Exit]
hide: ${ ('none' if generate_options == 'no_gui' else 'all') }
- id: placement
label: Widget Placement
dtype: int_vector
default: (0,0)
hide: ${ ('part' if generate_options == 'bokeh_gui' else 'all') }
- id: window_size
label: Window size
dtype: int_vector
default: (1000,1000)
hide: ${ ('part' if generate_options == 'bokeh_gui' else 'all') }
- id: sizing_mode
label: Sizing Mode
dtype: enum
default: fixed
options: [fixed, stretch_both, scale_width, scale_height, scale_both]
option_labels: [Fixed, Stretch Both, Scale Width, Scale Height, Scale Both]
hide: ${ ('part' if generate_options == 'bokeh_gui' else 'all') }
- id: run
label: Run
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: [Autostart, 'Off']
hide: ${ ('all' if generate_options not in ('qt_gui', 'bokeh_gui') else ('part'
if run else 'none')) }
- id: max_nouts
label: Max Number of Output
dtype: int
default: '0'
hide: ${ ('all' if generate_options.startswith('hb') else ('none' if max_nouts
else 'part')) }
- id: realtime_scheduling
label: Realtime Scheduling
dtype: enum
options: ['', '1']
option_labels: ['Off', 'On']
hide: ${ ('all' if generate_options.startswith('hb') else ('none' if realtime_scheduling
else 'part')) }
- id: qt_qss_theme
label: QSS Theme
dtype: file_open
hide: ${ ('all' if generate_options != 'qt_gui' else ('none' if qt_qss_theme else
'part')) }
- id: thread_safe_setters
label: Thread-safe setters
category: Advanced
dtype: enum
options: ['', '1']
option_labels: ['Off', 'On']
hide: part
- id: catch_exceptions
label: Catch Block Exceptions
category: Advanced
dtype: enum
options: ['False', 'True']
option_labels: ['Off', 'On']
default: 'True'
hide: part
- id: run_command
label: Run Command
category: Advanced
dtype: string
default: '{python} -u {filename}'
hide: ${ ('all' if generate_options.startswith('hb') else 'part') }
- id: hier_block_src_path
label: Hier Block Source Path
category: Advanced
dtype: string
default: '.:'
hide: part
asserts:
- ${ len(placement) == 4 or len(placement) == 2 }
- ${ all(i >= 0 for i in placement) }
templates:
imports: |-
from gnuradio import gr
from gnuradio.filter import firdes
from gnuradio.fft import window
import sys
import signal
% if generate_options == 'qt_gui':
from PyQt5 import Qt
% endif
% if not generate_options.startswith('hb'):
from argparse import ArgumentParser
from gnuradio.eng_arg import eng_float, intx
from gnuradio import eng_notation
% endif
callbacks:
- 'if ${run}: self.start()
else: self.stop(); self.wait()'
cpp_templates:
includes: ['#include <gnuradio/top_block.h>']
documentation: |-
The options block sets special parameters for the flow graph. Only one option block is allowed per flow graph.
Title, author, and description parameters are for identification purposes.
The window size controls the dimensions of the flow graph editor. The window size (width, height) must be between (300, 300) and (4096, 4096).
The generate options controls the type of code generated. Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls.
In a graphical application, run can be controlled by a variable to start and stop the flowgraph at runtime.
The id of this block determines the name of the generated file and the name of the class. For example, an id of my_block will generate the file my_block.py and class my_block(gr....
The category parameter determines the placement of the block in the block selection window. The category only applies when creating hier blocks. To put hier blocks into the root category, enter / for the category.
The Max Number of Output is the maximum number of output items allowed for any block in the flowgraph; to disable this set the max_nouts equal to 0.Use this to adjust the maximum latency a flowgraph can exhibit.
file_format: 1