gr-m17/examples/transmitterPLUTOSDR.grc

910 lines
18 KiB
Plaintext

options:
parameters:
author: Wojciech Kaczmarski SP5WWP
catch_exceptions: 'True'
category: '[GRC Hier Blocks]'
cmake_opt: ''
comment: ''
copyright: ''
description: ''
gen_cmake: 'On'
gen_linking: dynamic
generate_options: qt_gui
hier_block_src_path: '.:'
id: transmitterPLUTOSDR
max_nouts: '0'
output_language: python
placement: (0,0)
qt_qss_theme: ''
realtime_scheduling: ''
run: 'True'
run_command: '{python} -u {filename}'
run_options: prompt
sizing_mode: fixed
thread_safe_setters: ''
title: Simple M17 transmitter for ADALM Pluto
window_size: (1000,1000)
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 12.0]
rotation: 0
state: enabled
blocks:
- name: audio_frequency
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: Audio frequency
min_len: '100'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '50'
step: '1'
stop: '1000'
value: '440'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [976, 8.0]
rotation: 0
state: true
- name: dst
id: variable_qtgui_entry
parameters:
comment: ''
entry_signal: editingFinished
gui_hint: ''
label: Destination callsign
type: string
value: ALL
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1112, 96.0]
rotation: 0
state: true
- name: freq
id: variable_qtgui_entry
parameters:
comment: ''
entry_signal: editingFinished
gui_hint: ''
label: RF Frequency
type: int
value: '433475000'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [432, 8.0]
rotation: 0
state: true
- name: ppm
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: Frequency error (ppm)
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '-10'
step: '0.1'
stop: '10'
value: '0'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [576, 8.0]
rotation: 0
state: true
- name: pwr
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: RF power out
min_len: '100'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '1'
stop: '80'
value: '0'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [736, 8.0]
rotation: 0
state: true
- name: rf_on
id: variable_qtgui_check_box
parameters:
comment: ''
'false': '0'
gui_hint: ''
label: RF out
'true': '1'
type: real
value: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [856, 8.0]
rotation: 0
state: true
- name: samp_rate
id: variable
parameters:
comment: ''
value: '48000'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [184, 12.0]
rotation: 0
state: enabled
- name: src
id: variable_qtgui_entry
parameters:
comment: ''
entry_signal: editingFinished
gui_hint: ''
label: Source callsign
type: string
value: AB1CDE
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1112, 8.0]
rotation: 0
state: true
- name: analog_frequency_modulator_fc_0_0
id: analog_frequency_modulator_fc
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
sensitivity: (2.0*math.pi*800.0)/samp_rate
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [728, 208.0]
rotation: 0
state: true
- name: analog_sig_source_x_0
id: analog_sig_source_x
parameters:
affinity: ''
alias: ''
amp: '20000'
comment: ''
freq: audio_frequency
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
phase: '0'
samp_rate: '8000'
showports: 'False'
type: short
waveform: analog.GR_COS_WAVE
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [120, 368.0]
rotation: 0
state: enabled
- name: blocks_multiply_const_vxx_0
id: blocks_multiply_const_vxx
parameters:
affinity: ''
alias: ''
comment: ''
const: rf_on
maxoutbuf: '0'
minoutbuf: '0'
type: complex
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [976, 208.0]
rotation: 0
state: true
- name: blocks_pack_k_bits_bb_0
id: blocks_pack_k_bits_bb
parameters:
affinity: ''
alias: ''
comment: ''
k: '8'
maxoutbuf: '0'
minoutbuf: '0'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [336, 328.0]
rotation: 180
state: true
- name: blocks_vector_source_x_0_2
id: blocks_vector_source_x
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
repeat: 'True'
tags: '[]'
type: byte
vector: (0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00)
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 192.0]
rotation: 0
state: disabled
- name: blocks_vector_to_stream_0
id: blocks_vector_to_stream
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
num_items: '64'
type: byte
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [488, 336.0]
rotation: 180
state: enabled
- name: iio_pluto_sink_0_0
id: iio_pluto_sink
parameters:
affinity: ''
alias: ''
attenuation1: 80-pwr
bandwidth: samp_rate*16
buffer_size: '32768'
comment: ''
cyclic: 'False'
filter: ''
filter_source: '''Auto'''
fpass: '0'
frequency: int(freq*(1+ppm*1e-6))
fstop: '0'
len_tag_key: ''
samplerate: samp_rate*16
type: fc32
uri: ''
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1296, 148.0]
rotation: 0
state: disabled
- name: import_0
id: import
parameters:
alias: ''
comment: ''
imports: import math
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [280, 12.0]
rotation: 0
state: enabled
- name: m17_m17_coder_0_0
id: m17_m17_coder
parameters:
affinity: ''
alias: ''
can: '0'
comment: ''
debug: 'False'
dst_id: dst
encr_subtype: '0'
encr_type: '0'
maxoutbuf: '0'
meta: ''
minoutbuf: '0'
mode: '1'
src_id: src
type: '5'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [328, 140.0]
rotation: 0
state: enabled
- name: note_0_2
id: note
parameters:
alias: ''
comment: ''
note: DATA
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [160, 280.0]
rotation: 0
state: true
- name: note_0_2_1
id: note
parameters:
alias: ''
comment: ''
note: 1kHz beep, can be replaced with a WAVE file source
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [0, 280.0]
rotation: 0
state: true
- name: qtgui_freq_sink_x_0_0
id: qtgui_freq_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
average: '1.0'
axislabels: 'True'
bw: int(samp_rate*16)
color1: '"blue"'
color10: '"dark blue"'
color2: '"red"'
color3: '"green"'
color4: '"black"'
color5: '"cyan"'
color6: '"magenta"'
color7: '"yellow"'
color8: '"dark red"'
color9: '"dark green"'
comment: ''
ctrlpanel: 'False'
fc: '0'
fftsize: '4096'
freqhalf: 'True'
grid: 'True'
gui_hint: ''
label: Relative Gain
label1: ''
label10: ''''''
label2: ''''''
label3: ''''''
label4: ''''''
label5: ''''''
label6: ''''''
label7: ''''''
label8: ''''''
label9: ''''''
legend: 'False'
maxoutbuf: '0'
minoutbuf: '0'
name: '"RF scpectrum"'
nconnections: '1'
norm_window: 'False'
showports: 'False'
tr_chan: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_tag: '""'
type: complex
units: dB
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
wintype: window.WIN_BLACKMAN_hARRIS
ymax: '0'
ymin: '-100'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1304, 328.0]
rotation: 0
state: enabled
- name: qtgui_time_sink_x_0_0
id: qtgui_time_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
axislabels: 'True'
color1: blue
color10: dark blue
color2: red
color3: green
color4: black
color5: cyan
color6: magenta
color7: yellow
color8: dark red
color9: dark green
comment: ''
ctrlpanel: 'False'
entags: 'True'
grid: 'True'
gui_hint: ''
label1: ''
label10: Signal 10
label2: Signal 2
label3: Signal 3
label4: Signal 4
label5: Signal 5
label6: Signal 6
label7: Signal 7
label8: Signal 8
label9: Signal 9
legend: 'False'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
name: '"M17 baseband"'
nconnections: '1'
size: '1024'
srate: samp_rate
stemplot: 'False'
style1: '1'
style10: '1'
style2: '1'
style3: '1'
style4: '1'
style5: '1'
style6: '1'
style7: '1'
style8: '1'
style9: '1'
tr_chan: '0'
tr_delay: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: '""'
type: float
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
ylabel: Amplitude
ymax: '5'
ymin: '-5'
yunit: '""'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [776, 320.0]
rotation: 0
state: enabled
- name: rational_resampler_xxx_0_0
id: rational_resampler_xxx
parameters:
affinity: ''
alias: ''
comment: ''
decim: '1'
fbw: '0'
interp: '16'
maxoutbuf: '0'
minoutbuf: '0'
taps: '[]'
type: ccf
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1128, 184.0]
rotation: 0
state: true
- name: root_raised_cosine_filter_0
id: root_raised_cosine_filter
parameters:
affinity: ''
alias: ''
alpha: '0.5'
comment: ''
decim: '1'
gain: '10'
interp: '10'
maxoutbuf: '0'
minoutbuf: '0'
ntaps: '81'
samp_rate: '10'
sym_rate: '1.0'
type: interp_fir_filter_fff
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [528, 168.0]
rotation: 0
state: true
- name: uhd_usrp_sink_0
id: uhd_usrp_sink
parameters:
affinity: ''
alias: ''
ant0: '"TX/RX"'
ant1: '"TX/RX"'
ant10: '"TX/RX"'
ant11: '"TX/RX"'
ant12: '"TX/RX"'
ant13: '"TX/RX"'
ant14: '"TX/RX"'
ant15: '"TX/RX"'
ant16: '"TX/RX"'
ant17: '"TX/RX"'
ant18: '"TX/RX"'
ant19: '"TX/RX"'
ant2: '"TX/RX"'
ant20: '"TX/RX"'
ant21: '"TX/RX"'
ant22: '"TX/RX"'
ant23: '"TX/RX"'
ant24: '"TX/RX"'
ant25: '"TX/RX"'
ant26: '"TX/RX"'
ant27: '"TX/RX"'
ant28: '"TX/RX"'
ant29: '"TX/RX"'
ant3: '"TX/RX"'
ant30: '"TX/RX"'
ant31: '"TX/RX"'
ant4: '"TX/RX"'
ant5: '"TX/RX"'
ant6: '"TX/RX"'
ant7: '"TX/RX"'
ant8: '"TX/RX"'
ant9: '"TX/RX"'
bw0: '0'
bw1: '0'
bw10: '0'
bw11: '0'
bw12: '0'
bw13: '0'
bw14: '0'
bw15: '0'
bw16: '0'
bw17: '0'
bw18: '0'
bw19: '0'
bw2: '0'
bw20: '0'
bw21: '0'
bw22: '0'
bw23: '0'
bw24: '0'
bw25: '0'
bw26: '0'
bw27: '0'
bw28: '0'
bw29: '0'
bw3: '0'
bw30: '0'
bw31: '0'
bw4: '0'
bw5: '0'
bw6: '0'
bw7: '0'
bw8: '0'
bw9: '0'
center_freq0: int(freq*(1+ppm*1e-6))
center_freq1: '0'
center_freq10: '0'
center_freq11: '0'
center_freq12: '0'
center_freq13: '0'
center_freq14: '0'
center_freq15: '0'
center_freq16: '0'
center_freq17: '0'
center_freq18: '0'
center_freq19: '0'
center_freq2: '0'
center_freq20: '0'
center_freq21: '0'
center_freq22: '0'
center_freq23: '0'
center_freq24: '0'
center_freq25: '0'
center_freq26: '0'
center_freq27: '0'
center_freq28: '0'
center_freq29: '0'
center_freq3: '0'
center_freq30: '0'
center_freq31: '0'
center_freq4: '0'
center_freq5: '0'
center_freq6: '0'
center_freq7: '0'
center_freq8: '0'
center_freq9: '0'
clock_rate: 0e0
clock_source0: ''
clock_source1: ''
clock_source2: ''
clock_source3: ''
clock_source4: ''
clock_source5: ''
clock_source6: ''
clock_source7: ''
comment: ''
dev_addr: '""'
dev_args: ''
gain0: '69'
gain1: '0'
gain10: '0'
gain11: '0'
gain12: '0'
gain13: '0'
gain14: '0'
gain15: '0'
gain16: '0'
gain17: '0'
gain18: '0'
gain19: '0'
gain2: '0'
gain20: '0'
gain21: '0'
gain22: '0'
gain23: '0'
gain24: '0'
gain25: '0'
gain26: '0'
gain27: '0'
gain28: '0'
gain29: '0'
gain3: '0'
gain30: '0'
gain31: '0'
gain4: '0'
gain5: '0'
gain6: '0'
gain7: '0'
gain8: '0'
gain9: '0'
gain_type0: default
gain_type1: default
gain_type10: default
gain_type11: default
gain_type12: default
gain_type13: default
gain_type14: default
gain_type15: default
gain_type16: default
gain_type17: default
gain_type18: default
gain_type19: default
gain_type2: default
gain_type20: default
gain_type21: default
gain_type22: default
gain_type23: default
gain_type24: default
gain_type25: default
gain_type26: default
gain_type27: default
gain_type28: default
gain_type29: default
gain_type3: default
gain_type30: default
gain_type31: default
gain_type4: default
gain_type5: default
gain_type6: default
gain_type7: default
gain_type8: default
gain_type9: default
len_tag_name: '""'
lo_export0: 'False'
lo_export1: 'False'
lo_export10: 'False'
lo_export11: 'False'
lo_export12: 'False'
lo_export13: 'False'
lo_export14: 'False'
lo_export15: 'False'
lo_export16: 'False'
lo_export17: 'False'
lo_export18: 'False'
lo_export19: 'False'
lo_export2: 'False'
lo_export20: 'False'
lo_export21: 'False'
lo_export22: 'False'
lo_export23: 'False'
lo_export24: 'False'
lo_export25: 'False'
lo_export26: 'False'
lo_export27: 'False'
lo_export28: 'False'
lo_export29: 'False'
lo_export3: 'False'
lo_export30: 'False'
lo_export31: 'False'
lo_export4: 'False'
lo_export5: 'False'
lo_export6: 'False'
lo_export7: 'False'
lo_export8: 'False'
lo_export9: 'False'
lo_source0: internal
lo_source1: internal
lo_source10: internal
lo_source11: internal
lo_source12: internal
lo_source13: internal
lo_source14: internal
lo_source15: internal
lo_source16: internal
lo_source17: internal
lo_source18: internal
lo_source19: internal
lo_source2: internal
lo_source20: internal
lo_source21: internal
lo_source22: internal
lo_source23: internal
lo_source24: internal
lo_source25: internal
lo_source26: internal
lo_source27: internal
lo_source28: internal
lo_source29: internal
lo_source3: internal
lo_source30: internal
lo_source31: internal
lo_source4: internal
lo_source5: internal
lo_source6: internal
lo_source7: internal
lo_source8: internal
lo_source9: internal
maxoutbuf: '0'
minoutbuf: '0'
nchan: '1'
num_mboards: '1'
otw: ''
samp_rate: samp_rate*16
sd_spec0: ''
sd_spec1: ''
sd_spec2: ''
sd_spec3: ''
sd_spec4: ''
sd_spec5: ''
sd_spec6: ''
sd_spec7: ''
show_lo_controls: 'False'
start_time: '-1.0'
stream_args: ''
stream_chans: '[]'
sync: sync
time_source0: ''
time_source1: ''
time_source2: ''
time_source3: ''
time_source4: ''
time_source5: ''
time_source6: ''
time_source7: ''
type: fc32
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1344, 24.0]
rotation: 0
state: enabled
- name: vocoder_codec2_encode_sp_0
id: vocoder_codec2_encode_sp
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
mode: codec2.MODE_3200
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [456, 408.0]
rotation: 0
state: enabled
connections:
- [analog_frequency_modulator_fc_0_0, '0', blocks_multiply_const_vxx_0, '0']
- [analog_sig_source_x_0, '0', vocoder_codec2_encode_sp_0, '0']
- [blocks_multiply_const_vxx_0, '0', rational_resampler_xxx_0_0, '0']
- [blocks_pack_k_bits_bb_0, '0', m17_m17_coder_0_0, '0']
- [blocks_vector_source_x_0_2, '0', m17_m17_coder_0_0, '0']
- [blocks_vector_to_stream_0, '0', blocks_pack_k_bits_bb_0, '0']
- [m17_m17_coder_0_0, '0', root_raised_cosine_filter_0, '0']
- [rational_resampler_xxx_0_0, '0', iio_pluto_sink_0_0, '0']
- [rational_resampler_xxx_0_0, '0', qtgui_freq_sink_x_0_0, '0']
- [rational_resampler_xxx_0_0, '0', uhd_usrp_sink_0, '0']
- [root_raised_cosine_filter_0, '0', analog_frequency_modulator_fc_0_0, '0']
- [root_raised_cosine_filter_0, '0', qtgui_time_sink_x_0_0, '0']
- [vocoder_codec2_encode_sp_0, '0', blocks_vector_to_stream_0, '0']
metadata:
file_format: 1
grc_version: 3.10.10.0