From 0bcf1e79e8f0575c96374fc8a3406363c5617443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20P=C3=A1rk=C3=A1nyi?= Date: Thu, 30 Oct 2025 00:30:39 +0100 Subject: [PATCH] feat(phy): Modulator and demodulator hier blocks --- hier_blocks/ONBEAT_demod.grc | 880 +++++++++++++++++++++++++++++++++++ hier_blocks/ONBEAT_mod.grc | 341 ++++++++++++++ 2 files changed, 1221 insertions(+) create mode 100644 hier_blocks/ONBEAT_demod.grc create mode 100644 hier_blocks/ONBEAT_mod.grc diff --git a/hier_blocks/ONBEAT_demod.grc b/hier_blocks/ONBEAT_demod.grc new file mode 100644 index 0000000..de8d7d7 --- /dev/null +++ b/hier_blocks/ONBEAT_demod.grc @@ -0,0 +1,880 @@ +options: + parameters: + author: HA5PLS + catch_exceptions: 'True' + category: '[ONBEAT]' + cmake_opt: '' + comment: '' + copyright: GPL 3.0 or later + description: Hier block for demod of ONBEAT + gen_cmake: 'On' + gen_linking: dynamic + generate_options: hb + hier_block_src_path: '.:' + id: ONBEAT_Demod + 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: ONBEAT Demod + window_size: (1000,1000) + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [8, 8] + rotation: 0 + state: enabled + +blocks: +- name: QPSK_MAP + id: variable_constellation_rect + parameters: + comment: '' + const_points: '[-1-1j, -1+1j, 1+1j, 1-1j]' + imag_sect: '2' + precision: '8' + real_sect: '2' + rot_sym: '4' + soft_dec_lut: None + sym_map: symbol_map + w_imag_sect: '1' + w_real_sect: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [192, 12.0] + rotation: 0 + state: enabled +- name: FULL_PACKET_LEN + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: eng_float + value: '4096' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [664, 8.0] + rotation: 0 + state: enabled +- name: OVERSAMPLING + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: intx + value: '10' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [448, 8.0] + rotation: 0 + state: enabled +- name: RRC_ALPHA + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: eng_float + value: '0.35' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [568, 8.0] + rotation: 0 + state: enabled +- name: analog_agc_xx_0 + id: analog_agc_xx + parameters: + affinity: '' + alias: '' + comment: '' + gain: '1.0' + max_gain: '65536' + maxoutbuf: '0' + minoutbuf: '0' + rate: 1e-4 + reference: '1.0' + type: complex + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [152, 232.0] + rotation: 0 + state: enabled +- name: blocks_multiply_const_xx_0 + id: blocks_multiply_const_xx + parameters: + affinity: '' + alias: '' + comment: '' + const: 1j + maxoutbuf: '0' + minoutbuf: '0' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 592.0] + rotation: 0 + state: enabled +- name: blocks_multiply_const_xx_0_0 + id: blocks_multiply_const_xx + parameters: + affinity: '' + alias: '' + comment: '' + const: '-1' + maxoutbuf: '0' + minoutbuf: '0' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 680.0] + rotation: 0 + state: enabled +- name: blocks_multiply_const_xx_0_1 + id: blocks_multiply_const_xx + parameters: + affinity: '' + alias: '' + comment: '' + const: -1j + maxoutbuf: '0' + minoutbuf: '0' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [48, 768.0] + rotation: 0 + state: enabled +- name: blocks_repack_bits_bb_0_0_0 + id: blocks_repack_bits_bb + parameters: + affinity: '' + alias: '' + align_output: 'False' + comment: '' + endianness: gr.GR_MSB_FIRST + k: '2' + l: '1' + len_tag_key: '""' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [616, 584.0] + rotation: 0 + state: enabled +- name: blocks_repack_bits_bb_0_1_0 + id: blocks_repack_bits_bb + parameters: + affinity: '' + alias: '' + align_output: 'False' + comment: '' + endianness: gr.GR_MSB_FIRST + k: '2' + l: '1' + len_tag_key: '""' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [616, 672.0] + rotation: 0 + state: enabled +- name: blocks_repack_bits_bb_0_2_0 + id: blocks_repack_bits_bb + parameters: + affinity: '' + alias: '' + align_output: 'False' + comment: '' + endianness: gr.GR_MSB_FIRST + k: '2' + l: '1' + len_tag_key: '""' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [616, 760.0] + rotation: 0 + state: enabled +- name: blocks_repack_bits_bb_0_3 + id: blocks_repack_bits_bb + parameters: + affinity: '' + alias: '' + align_output: 'False' + comment: '' + endianness: gr.GR_MSB_FIRST + k: '2' + l: '1' + len_tag_key: '""' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [616, 496.0] + rotation: 0 + state: enabled +- name: blocks_tag_debug_0 + id: blocks_tag_debug + parameters: + affinity: '' + alias: '' + comment: '' + display: 'True' + filter: '""' + name: '' + num_inputs: '4' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1064.0, 896] + rotation: 270 + state: disabled +- name: digital_constellation_decoder_cb_0 + id: digital_constellation_decoder_cb + parameters: + affinity: '' + alias: '' + comment: '' + constellation: QPSK_MAP + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [240, 504.0] + rotation: 0 + state: enabled +- name: digital_constellation_decoder_cb_0_0 + id: digital_constellation_decoder_cb + parameters: + affinity: '' + alias: '' + comment: '' + constellation: QPSK_MAP + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [240, 592.0] + rotation: 0 + state: enabled +- name: digital_constellation_decoder_cb_0_1 + id: digital_constellation_decoder_cb + parameters: + affinity: '' + alias: '' + comment: '' + constellation: QPSK_MAP + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [240, 680.0] + rotation: 0 + state: enabled +- name: digital_constellation_decoder_cb_0_2 + id: digital_constellation_decoder_cb + parameters: + affinity: '' + alias: '' + comment: '' + constellation: QPSK_MAP + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [240, 768.0] + rotation: 0 + state: enabled +- name: digital_correlate_access_code_tag_xx_0 + id: digital_correlate_access_code_tag_xx + parameters: + access_code: syncword + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + tagname: '"syncword_found"' + threshold: int(len(syncword)*(1-roc_tolerance)) + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [832, 488.0] + rotation: 0 + state: enabled +- name: digital_correlate_access_code_tag_xx_0_0 + id: digital_correlate_access_code_tag_xx + parameters: + access_code: syncword + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + tagname: '"syncword_found"' + threshold: int(len(syncword)*(1-roc_tolerance)) + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [832, 576.0] + rotation: 0 + state: enabled +- name: digital_correlate_access_code_tag_xx_0_1 + id: digital_correlate_access_code_tag_xx + parameters: + access_code: syncword + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + tagname: '"syncword_found"' + threshold: int(len(syncword)*(1-roc_tolerance)) + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [832, 664.0] + rotation: 0 + state: enabled +- name: digital_correlate_access_code_tag_xx_0_2 + id: digital_correlate_access_code_tag_xx + parameters: + access_code: syncword + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + tagname: '"syncword_found"' + threshold: int(len(syncword)*(1-roc_tolerance)) + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [832, 752.0] + rotation: 0 + state: enabled +- name: digital_costas_loop_cc_0 + id: digital_costas_loop_cc + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + order: '4' + use_snr: 'False' + w: '0.045' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1008, 184.0] + rotation: 0 + state: enabled +- name: digital_map_bb_0 + id: digital_map_bb + parameters: + affinity: '' + alias: '' + comment: '' + map: symbol_map + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [464, 504.0] + rotation: 0 + state: enabled +- name: digital_map_bb_0_0 + id: digital_map_bb + parameters: + affinity: '' + alias: '' + comment: '' + map: symbol_map + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [464, 592.0] + rotation: 0 + state: enabled +- name: digital_map_bb_0_1 + id: digital_map_bb + parameters: + affinity: '' + alias: '' + comment: '' + map: symbol_map + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [464, 680.0] + rotation: 0 + state: enabled +- name: digital_map_bb_0_2 + id: digital_map_bb + parameters: + affinity: '' + alias: '' + comment: '' + map: symbol_map + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [464, 768.0] + rotation: 0 + state: enabled +- name: digital_symbol_sync_xx_0 + id: digital_symbol_sync_xx + parameters: + affinity: '' + alias: '' + comment: '' + constellation: digital.constellation_bpsk().base() + damping: '1.0' + loop_bw: '0.045' + max_dev: '1.5' + maxoutbuf: '0' + minoutbuf: '0' + nfilters: '64' + osps: '1' + pfb_mf_taps: '[]' + resamp_type: digital.IR_MMSE_8TAP + sps: '2' + ted_gain: '1.0' + ted_type: digital.TED_GARDNER + type: cc + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [616, 196.0] + rotation: 0 + state: enabled +- name: filter_fft_rrc_filter_0 + id: filter_fft_rrc_filter + parameters: + affinity: '' + alias: '' + alpha: RRC_ALPHA + comment: '' + decim: OVERSAMPLING//2 + gain: '1' + maxoutbuf: '0' + minoutbuf: '0' + ntaps: 11*OVERSAMPLING + nthreads: '1' + samp_rate: samp_rate + sym_rate: samp_rate/OVERSAMPLING + type: ccc + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [352, 204.0] + rotation: 0 + state: enabled +- name: pad_sink_0 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: freq_sync_out + num_streams: '1' + optional: 'True' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1216.0, 344] + rotation: 270 + state: enabled +- name: pad_sink_1 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: symbol_sync_out + num_streams: '1' + optional: 'True' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [928.0, 336] + rotation: 270 + state: enabled +- name: pad_sink_2 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: RRC_out + num_streams: '1' + optional: 'True' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [560.0, 376] + rotation: 270 + state: enabled +- name: pad_sink_3 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: agc_out + num_streams: '1' + optional: 'True' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [296.0, 376] + rotation: 270 + state: disabled +- name: pad_sink_4 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: out + num_streams: '1' + optional: 'False' + type: message + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1528, 632.0] + rotation: 0 + state: enabled +- name: pad_source_0 + id: pad_source + parameters: + affinity: '' + alias: '' + comment: '' + label: in + maxoutbuf: '0' + minoutbuf: '0' + num_streams: '1' + optional: 'False' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [8, 256.0] + rotation: 0 + state: enabled +- name: roc_tolerance + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: eng_float + value: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1000, 8.0] + rotation: 0 + state: enabled +- name: samp_rate + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: eng_float + value: 1e6 + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [352, 8.0] + rotation: 0 + state: enabled +- name: satellites_fixedlen_to_pdu_0 + id: satellites_fixedlen_to_pdu + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + pack: 'True' + packet_len: FULL_PACKET_LEN + syncword_tag: '"syncword_found"' + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1208, 488.0] + rotation: 0 + state: enabled +- name: satellites_fixedlen_to_pdu_0_0 + id: satellites_fixedlen_to_pdu + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + pack: 'True' + packet_len: FULL_PACKET_LEN + syncword_tag: '"syncword_found"' + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1208, 576.0] + rotation: 0 + state: enabled +- name: satellites_fixedlen_to_pdu_0_1 + id: satellites_fixedlen_to_pdu + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + pack: 'True' + packet_len: FULL_PACKET_LEN + syncword_tag: '"syncword_found"' + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1208, 664.0] + rotation: 0 + state: enabled +- name: satellites_fixedlen_to_pdu_0_2 + id: satellites_fixedlen_to_pdu + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + pack: 'True' + packet_len: FULL_PACKET_LEN + syncword_tag: '"syncword_found"' + type: byte + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1208, 752.0] + rotation: 0 + state: enabled +- name: symbol_map + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: '' + value: '[0, 1, 3, 2]' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [352, 96.0] + rotation: 0 + state: enabled +- name: syncword + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: '' + value: '"0000011100001001000110110010110101110111100110001010100111111010"' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [824, 8.0] + rotation: 0 + state: enabled +- name: virtual_sink_0 + id: virtual_sink + parameters: + alias: '' + comment: '' + stream_id: freq_sync_signal + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1304, 176.0] + rotation: 0 + state: enabled +- name: virtual_source_0 + id: virtual_source + parameters: + alias: '' + comment: '' + stream_id: freq_sync_signal + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [8, 504.0] + rotation: 0 + state: enabled + +connections: +- [analog_agc_xx_0, '0', filter_fft_rrc_filter_0, '0'] +- [analog_agc_xx_0, '0', pad_sink_3, '0'] +- [blocks_multiply_const_xx_0, '0', digital_constellation_decoder_cb_0_0, '0'] +- [blocks_multiply_const_xx_0_0, '0', digital_constellation_decoder_cb_0_1, '0'] +- [blocks_multiply_const_xx_0_1, '0', digital_constellation_decoder_cb_0_2, '0'] +- [blocks_repack_bits_bb_0_0_0, '0', digital_correlate_access_code_tag_xx_0_0, '0'] +- [blocks_repack_bits_bb_0_1_0, '0', digital_correlate_access_code_tag_xx_0_1, '0'] +- [blocks_repack_bits_bb_0_2_0, '0', digital_correlate_access_code_tag_xx_0_2, '0'] +- [blocks_repack_bits_bb_0_3, '0', digital_correlate_access_code_tag_xx_0, '0'] +- [digital_constellation_decoder_cb_0, '0', digital_map_bb_0, '0'] +- [digital_constellation_decoder_cb_0_0, '0', digital_map_bb_0_0, '0'] +- [digital_constellation_decoder_cb_0_1, '0', digital_map_bb_0_1, '0'] +- [digital_constellation_decoder_cb_0_2, '0', digital_map_bb_0_2, '0'] +- [digital_correlate_access_code_tag_xx_0, '0', blocks_tag_debug_0, '3'] +- [digital_correlate_access_code_tag_xx_0, '0', satellites_fixedlen_to_pdu_0, '0'] +- [digital_correlate_access_code_tag_xx_0_0, '0', blocks_tag_debug_0, '2'] +- [digital_correlate_access_code_tag_xx_0_0, '0', satellites_fixedlen_to_pdu_0_0, + '0'] +- [digital_correlate_access_code_tag_xx_0_1, '0', blocks_tag_debug_0, '1'] +- [digital_correlate_access_code_tag_xx_0_1, '0', satellites_fixedlen_to_pdu_0_1, + '0'] +- [digital_correlate_access_code_tag_xx_0_2, '0', blocks_tag_debug_0, '0'] +- [digital_correlate_access_code_tag_xx_0_2, '0', satellites_fixedlen_to_pdu_0_2, + '0'] +- [digital_costas_loop_cc_0, '0', pad_sink_0, '0'] +- [digital_costas_loop_cc_0, '0', virtual_sink_0, '0'] +- [digital_map_bb_0, '0', blocks_repack_bits_bb_0_3, '0'] +- [digital_map_bb_0_0, '0', blocks_repack_bits_bb_0_0_0, '0'] +- [digital_map_bb_0_1, '0', blocks_repack_bits_bb_0_1_0, '0'] +- [digital_map_bb_0_2, '0', blocks_repack_bits_bb_0_2_0, '0'] +- [digital_symbol_sync_xx_0, '0', digital_costas_loop_cc_0, '0'] +- [digital_symbol_sync_xx_0, '0', pad_sink_1, '0'] +- [filter_fft_rrc_filter_0, '0', digital_symbol_sync_xx_0, '0'] +- [filter_fft_rrc_filter_0, '0', pad_sink_2, '0'] +- [pad_source_0, '0', analog_agc_xx_0, '0'] +- [satellites_fixedlen_to_pdu_0, pdus, pad_sink_4, in] +- [satellites_fixedlen_to_pdu_0_0, pdus, pad_sink_4, in] +- [satellites_fixedlen_to_pdu_0_1, pdus, pad_sink_4, in] +- [satellites_fixedlen_to_pdu_0_2, pdus, pad_sink_4, in] +- [virtual_source_0, '0', blocks_multiply_const_xx_0, '0'] +- [virtual_source_0, '0', blocks_multiply_const_xx_0_0, '0'] +- [virtual_source_0, '0', blocks_multiply_const_xx_0_1, '0'] +- [virtual_source_0, '0', digital_constellation_decoder_cb_0, '0'] + +metadata: + file_format: 1 + grc_version: 3.10.11.0 diff --git a/hier_blocks/ONBEAT_mod.grc b/hier_blocks/ONBEAT_mod.grc new file mode 100644 index 0000000..5955301 --- /dev/null +++ b/hier_blocks/ONBEAT_mod.grc @@ -0,0 +1,341 @@ +options: + parameters: + author: HA5PLS + catch_exceptions: 'True' + category: '[ONBEAT]' + cmake_opt: '' + comment: '' + copyright: GPL 3.0 or later + description: Hier block for modulation of ONBEAT + gen_cmake: 'On' + gen_linking: dynamic + generate_options: hb + hier_block_src_path: '.:' + id: ONBEAT_Mod + 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: ONBEAT Mod + window_size: (1000,1000) + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [8, 8] + rotation: 0 + state: enabled + +blocks: +- name: QPSK_MAP + id: variable_constellation_rect + parameters: + comment: '' + const_points: '[-1-1j, -1+1j, 1+1j, 1-1j]' + imag_sect: '2' + precision: '8' + real_sect: '2' + rot_sym: '4' + soft_dec_lut: None + sym_map: '[0, 1, 3, 2]' + w_imag_sect: '1' + w_real_sect: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1104, 20.0] + rotation: 0 + state: enabled +- name: preamble_len + id: variable_tag_object + parameters: + comment: '' + key: pmt.intern("packet_len") + offset: '0' + src: pmt.intern("src") + value: pmt.from_long(len(preamble)) + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [64, 184.0] + rotation: 0 + state: enabled +- name: syncword_len + id: variable_tag_object + parameters: + comment: '' + key: pmt.intern("packet_len") + offset: '0' + src: pmt.intern("src") + value: pmt.from_long((len(syncword)+7)//8) + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [64, 304.0] + rotation: 0 + state: enabled +- name: OVERSAMPLING + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: intx + value: '10' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [248, 8.0] + rotation: 0 + state: enabled +- name: RRC_ALPHA + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: eng_float + value: '0.35' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [368, 8.0] + rotation: 0 + state: enabled +- name: blocks_repack_bits_bb_1_0 + id: blocks_repack_bits_bb + parameters: + affinity: '' + alias: '' + align_output: 'False' + comment: '' + endianness: gr.GR_MSB_FIRST + k: '1' + l: '8' + len_tag_key: '""' + maxoutbuf: '0' + minoutbuf: '0' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [352, 312.0] + rotation: 0 + state: enabled +- name: blocks_tagged_stream_mux_0 + id: blocks_tagged_stream_mux + parameters: + affinity: '' + alias: '' + comment: '' + lengthtagname: packet_len + maxoutbuf: '0' + minoutbuf: '0' + ninputs: '3' + tag_preserve_head_pos: '0' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [848, 296.0] + rotation: 0 + state: enabled +- name: blocks_vector_source_x_0_0 + id: blocks_vector_source_x + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + repeat: 'False' + tags: '[preamble_len]' + type: byte + vector: preamble + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [168, 216.0] + rotation: 0 + state: enabled +- name: blocks_vector_source_x_0_0_0 + id: blocks_vector_source_x + parameters: + affinity: '' + alias: '' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + repeat: 'False' + tags: '[syncword_len]' + type: byte + vector: '[int(i) for i in syncword]' + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [168, 304.0] + rotation: 0 + state: enabled +- name: data_len + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: '' + value: '1024' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [976, 24.0] + rotation: 0 + state: enabled +- name: digital_constellation_modulator_0 + id: digital_constellation_modulator + parameters: + affinity: '' + alias: '' + comment: '' + constellation: QPSK_MAP + differential: 'False' + excess_bw: RRC_ALPHA + log: 'False' + maxoutbuf: '0' + minoutbuf: '0' + samples_per_symbol: OVERSAMPLING + truncate: 'False' + verbose: 'False' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1088, 296.0] + rotation: 0 + state: enabled +- name: pad_sink_0 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: out + num_streams: '1' + optional: 'False' + type: complex + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1352, 320.0] + rotation: 0 + state: enabled +- name: pad_sink_0_0 + id: pad_sink + parameters: + affinity: '' + alias: '' + comment: '' + label: dbg + num_streams: '1' + optional: 'True' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [576, 136.0] + rotation: 0 + state: enabled +- name: pad_source_0 + id: pad_source + parameters: + affinity: '' + alias: '' + comment: '' + label: in + maxoutbuf: '0' + minoutbuf: '0' + num_streams: '1' + optional: 'False' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [656, 400.0] + rotation: 0 + state: enabled +- name: preamble + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: '' + value: '[0x33 for i in range(0, 128*2, 8)]' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [808, 24.0] + rotation: 0 + state: enabled +- name: syncword + id: parameter + parameters: + alias: '' + comment: '' + hide: none + label: '' + short_id: '' + type: '' + value: '"0000011100001001000110110010110101110111100110001010100111111010"' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [608, 24.0] + rotation: 0 + state: enabled + +connections: +- [blocks_repack_bits_bb_1_0, '0', blocks_tagged_stream_mux_0, '1'] +- [blocks_tagged_stream_mux_0, '0', digital_constellation_modulator_0, '0'] +- [blocks_vector_source_x_0_0, '0', blocks_tagged_stream_mux_0, '0'] +- [blocks_vector_source_x_0_0, '0', pad_sink_0_0, '0'] +- [blocks_vector_source_x_0_0_0, '0', blocks_repack_bits_bb_1_0, '0'] +- [digital_constellation_modulator_0, '0', pad_sink_0, '0'] +- [pad_source_0, '0', blocks_tagged_stream_mux_0, '2'] + +metadata: + file_format: 1 + grc_version: 3.10.11.0