options:
  parameters:
    author: Wojciech SP5WWP
    catch_exceptions: 'True'
    category: '[GRC Hier Blocks]'
    cmake_opt: ''
    comment: ''
    copyright: M17 Project, Jan 2024
    description: ''
    gen_cmake: 'On'
    gen_linking: dynamic
    generate_options: qt_gui
    hier_block_src_path: '.:'
    id: m17_loopback
    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: M17 loopback demo
    window_size: (1000,1000)
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [16, 8.0]
    rotation: 0
    state: enabled

blocks:
- name: dst_str
  id: variable_qtgui_entry
  parameters:
    comment: ''
    entry_signal: editingFinished
    gui_hint: 1,0,1,1
    label: DST
    type: string
    value: AB2CDE
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [424, 8.0]
    rotation: 0
    state: true
- name: enc_subtype
  id: variable_qtgui_chooser
  parameters:
    comment: ''
    gui_hint: 6,0,1,1
    label: Encr. Subtype
    label0: Text
    label1: Geolocation
    label2: Extended callsign data
    label3: Reserved
    label4: ''
    labels: '[]'
    num_opts: '4'
    option0: '0'
    option1: '1'
    option2: '2'
    option3: '3'
    option4: '4'
    options: '[0, 1, 2]'
    orient: Qt.QVBoxLayout
    type: int
    value: '0'
    widget: combo_box
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [376, 412.0]
    rotation: 0
    state: enabled
- name: enc_type
  id: variable_qtgui_chooser
  parameters:
    comment: ''
    gui_hint: 5,0,1,1
    label: Encr. Type
    label0: None
    label1: Scrambler
    label2: AES
    label3: Other/Reserved
    label4: ''
    labels: '[]'
    num_opts: '4'
    option0: '0'
    option1: '1'
    option2: '2'
    option3: '3'
    option4: '4'
    options: '[0, 1, 2]'
    orient: Qt.QVBoxLayout
    type: int
    value: '0'
    widget: combo_box
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [240, 412.0]
    rotation: 0
    state: enabled
- name: mode
  id: variable_qtgui_chooser
  parameters:
    comment: ''
    gui_hint: 3,0,1,1
    label: Mode
    label0: Stream
    label1: Packet
    label2: Data + Voice
    label3: Reserved
    label4: ''
    labels: '[]'
    num_opts: '2'
    option0: '1'
    option1: '2'
    option2: '5'
    option3: '0'
    option4: '4'
    options: '[0, 1, 2]'
    orient: Qt.QVBoxLayout
    type: int
    value: '1'
    widget: combo_box
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [8, 452.0]
    rotation: 0
    state: enabled
- name: samp_rate
  id: variable
  parameters:
    comment: ''
    value: '4800'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [192, 12.0]
    rotation: 0
    state: true
- name: signed_str
  id: variable_qtgui_toggle_button_msg
  parameters:
    comment: ''
    gui_hint: ''
    initPressed: 'False'
    label: SignedStr
    outputmsgname: value
    pressBackgroundColor: default
    pressFontColor: default
    pressed: 'True'
    relBackgroundColor: default
    relFontColor: default
    released: 'False'
    type: bool
    value: 'False'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [536, 416.0]
    rotation: 0
    state: enabled
- name: src_str
  id: variable_qtgui_entry
  parameters:
    comment: ''
    entry_signal: editingFinished
    gui_hint: 0,0,1,1
    label: SRC
    type: string
    value: AB1CDE
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [288, 8.0]
    rotation: 0
    state: true
- name: type_val
  id: variable_qtgui_chooser
  parameters:
    comment: ''
    gui_hint: 4,0,1,1
    label: Type
    label0: Data
    label1: Voice
    label2: Data + Voice
    label3: Reserved
    label4: ''
    labels: '[]'
    num_opts: '4'
    option0: '1'
    option1: '2'
    option2: '3'
    option3: '0'
    option4: '4'
    options: '[0, 1, 2]'
    orient: Qt.QVBoxLayout
    type: int
    value: '2'
    widget: combo_box
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [112, 412.0]
    rotation: 0
    state: enabled
- name: blocks_file_sink_0
  id: blocks_file_sink
  parameters:
    affinity: ''
    alias: ''
    append: 'False'
    comment: ''
    file: /tmp/dump.bin
    type: byte
    unbuffered: 'False'
    vlen: '1'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [1056, 184.0]
    rotation: 0
    state: enabled
- name: blocks_null_sink_0
  id: blocks_null_sink
  parameters:
    affinity: ''
    alias: ''
    bus_structure_sink: '[[0,],]'
    comment: ''
    num_inputs: '1'
    type: byte
    vlen: '1'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [1016, 104.0]
    rotation: 0
    state: disabled
- name: blocks_throttle2_0
  id: blocks_throttle2
  parameters:
    affinity: ''
    alias: ''
    comment: ''
    ignoretag: 'True'
    limit: auto
    maximum: '0.1'
    maxoutbuf: '0'
    minoutbuf: '0'
    samples_per_second: samp_rate
    type: float
    vlen: '1'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [656, 192.0]
    rotation: 0
    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: (0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00)
    vlen: '1'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [8, 168.0]
    rotation: 0
    state: true
- name: end_of_transmission
  id: variable_qtgui_msg_push_button
  parameters:
    comment: ''
    gui_hint: ''
    label: End of Transmission
    msgName: end_of_transmission
    relBackgroundColor: default
    relFontColor: default
    type: string
    value: end_of_transmission
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [8, 272.0]
    rotation: 0
    state: enabled
- name: m17_m17_coder_0
  id: m17_m17_coder
  parameters:
    affinity: ''
    alias: ''
    can: '0'
    comment: 'since Meta can be a byte array, it cannot be fed with a QT GUI Entry

      string but must be a "\x00" string in the Encoder block'
    debug: 'True'
    dst_id: dst_str
    encr_subtype: enc_subtype
    encr_type: enc_type
    key: '''\x00\x00\x65\x41\xb0\x93\xff\x00'''
    maxoutbuf: '0'
    meta: '''\x00\x00\x65\x41\xb0\x93\xff\x00'''
    minoutbuf: '0'
    mode: mode
    priv_key: ''
    seed: ''
    signed_str: signed_str
    src_id: src_str
    type: type_val
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [408, 96.0]
    rotation: 0
    state: true
- name: m17_m17_decoder_0
  id: m17_m17_decoder
  parameters:
    affinity: ''
    alias: ''
    callsign: 'False'
    comment: ''
    debug_ctrl: 'True'
    debug_data: 'True'
    encr_type: '0'
    key: ''
    maxoutbuf: '0'
    minoutbuf: '0'
    seed: ''
    signed_str: 'False'
    threshold: '2.0'
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [872, 140.0]
    rotation: 0
    state: true
- name: note_0_2
  id: note
  parameters:
    alias: ''
    comment: ''
    note: DATA
  states:
    bus_sink: false
    bus_source: false
    bus_structure: null
    coordinate: [200, 88.0]
    rotation: 0
    state: true

connections:
- [blocks_throttle2_0, '0', m17_m17_decoder_0, '0']
- [blocks_vector_source_x_0_2, '0', m17_m17_coder_0, '0']
- [end_of_transmission, pressed, m17_m17_coder_0, end_of_transmission]
- [m17_m17_coder_0, '0', blocks_throttle2_0, '0']
- [m17_m17_decoder_0, '0', blocks_file_sink_0, '0']
- [m17_m17_decoder_0, '0', blocks_null_sink_0, '0']

metadata:
  file_format: 1
  grc_version: 3.10.11.0
