GNU Radio World

Bursts with Take/Skip To PDU

Cuts a stream into PDUs of Take samples, dropping Skip samples between them, then turns the PDUs back into a stream to see the bursts. Both counts are live controls; Message Debug prints each PDU's pdu_num.

Press Load to open this flowgraph in an editor embedded above, then ▶ to run it. Nothing is downloaded until you do.

Open in the full editor ▶ Download the .grc

Blocks used

BlockModuleUsed
QT GUI RangeGNU Radio2
QT GUI Time SinkGNU Radio2
GUI LayoutGNU Radio1
Message DebugGNU Radio1
PDU To StreamGNU Radio1
Signal SourceGNU Radio1
Take/Skip To PDUGNU Radio1
ThrottleGNU Radio1
VariableGNU Radio1

Flowgraph source

pdu/take_skip_to_pdu.grc
options:
    parameters:
        author: Marc
        comment: ''
        copyright: ''
        description: Cuts a stream into PDUs of Take samples, dropping Skip samples between them, then turns the PDUs back into a stream to see the bursts. Both counts are live controls; Message Debug prints each PDU's pdu_num.
        generate_options: qt_gui
        id: Bursts_with_Take_Skip_To_PDU
        title: Bursts with Take/Skip To PDU
    states:
        coordinate: [10, 10]
        rotation: 0
        state: enabled
blocks:
-   name: samp_rate
    id: variable
    parameters:
        comment: ''
        value: '32000'
    states:
        coordinate: [600, 10]
        rotation: 0
        state: enabled
-   name: skip
    id: variable_qtgui_range
    parameters:
        comment: ''
        label: Skip (samples between PDUs)
        min_len: '240'
        orient: QtCore.Qt.Horizontal
        rangeType: int
        start: '0'
        step: '64'
        stop: '4096'
        value: '768'
        widget: counter_slider
    states:
        coordinate: [770, 10]
        rotation: 0
        state: enabled
-   name: take
    id: variable_qtgui_range
    parameters:
        comment: ''
        label: Take (samples per PDU)
        min_len: '240'
        orient: QtCore.Qt.Horizontal
        rangeType: int
        start: '16'
        step: '16'
        stop: '1024'
        value: '256'
        widget: counter_slider
    states:
        coordinate: [1060, 10]
        rotation: 0
        state: enabled
-   name: bursts
    id: qtgui_time_sink_x
    parameters:
        affinity: ''
        alias: ''
        alpha1: '1'
        alpha10: '1'
        alpha2: '1'
        alpha3: '1'
        alpha4: '1'
        alpha5: '1'
        alpha6: '1'
        alpha7: '1'
        alpha8: '1'
        alpha9: '1'
        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'
        label1: Signal 1
        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: 'True'
        marker1: '-1'
        marker10: '-1'
        marker2: '-1'
        marker3: '-1'
        marker4: '-1'
        marker5: '-1'
        marker6: '-1'
        marker7: '-1'
        marker8: '-1'
        marker9: '-1'
        name: 'PDUs as a stream: the kept samples, then silence for the skipped ones'
        nconnections: '1'
        size: '4096'
        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'
        tr_mode: qtgui.TRIG_MODE_FREE
        tr_slope: qtgui.TRIG_SLOPE_POS
        tr_tag: ''
        type: float
        update_time: '0.1'
        width1: '1'
        width10: '1'
        width2: '1'
        width3: '1'
        width4: '1'
        width5: '1'
        width6: '1'
        width7: '1'
        width8: '1'
        width9: '1'
        ylabel: Amplitude
        ymax: '1.5'
        ymin: '-1.5'
        yunit: ''
    states:
        coordinate: [1380, 240]
        rotation: 0
        state: enabled
-   name: input
    id: qtgui_time_sink_x
    parameters:
        affinity: ''
        alias: ''
        alpha1: '1'
        alpha10: '1'
        alpha2: '1'
        alpha3: '1'
        alpha4: '1'
        alpha5: '1'
        alpha6: '1'
        alpha7: '1'
        alpha8: '1'
        alpha9: '1'
        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'
        label1: Signal 1
        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: 'True'
        marker1: '-1'
        marker10: '-1'
        marker2: '-1'
        marker3: '-1'
        marker4: '-1'
        marker5: '-1'
        marker6: '-1'
        marker7: '-1'
        marker8: '-1'
        marker9: '-1'
        name: Input tone
        nconnections: '1'
        size: '4096'
        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'
        tr_mode: qtgui.TRIG_MODE_FREE
        tr_slope: qtgui.TRIG_SLOPE_POS
        tr_tag: ''
        type: float
        update_time: '0.1'
        width1: '1'
        width10: '1'
        width2: '1'
        width3: '1'
        width4: '1'
        width5: '1'
        width6: '1'
        width7: '1'
        width8: '1'
        width9: '1'
        ylabel: Amplitude
        ymax: '1.5'
        ymin: '-1.5'
        yunit: ''
    states:
        coordinate: [690, 360]
        rotation: 0
        state: enabled
-   name: pdu_metadata
    id: blocks_message_debug
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        en_uvec: 'False'
        log_level: info
    states:
        coordinate: [1050, 360]
        rotation: 0
        state: enabled
-   name: pdu_to_stream
    id: pdu_pdu_to_stream_x
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        depth: '64'
        early_behavior: pdu.EARLY_BURST_APPEND
        maxoutbuf: '0'
        minoutbuf: '0'
        type: float
    states:
        coordinate: [1050, 260]
        rotation: 0
        state: enabled
-   name: take_skip_to_pdu
    id: pdu_take_skip_to_pdu
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        maxoutbuf: '0'
        minoutbuf: '0'
        skip: skip
        take: take
        type: float
    states:
        coordinate: [690, 260]
        rotation: 0
        state: enabled
-   name: throttle
    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:
        coordinate: [360, 240]
        rotation: 0
        state: enabled
-   name: tone
    id: analog_sig_source_x
    parameters:
        affinity: ''
        alias: ''
        amp: '1'
        comment: ''
        freq: '250'
        maxoutbuf: '0'
        minoutbuf: '0'
        offset: '0'
        phase: '0'
        samp_rate: samp_rate
        type: float
        waveform: analog.GR_SIN_WAVE
    states:
        coordinate: [10, 220]
        rotation: 0
        state: enabled
-   name: wasm_gui_layout_0
    id: wasm_gui_layout
    parameters:
        affinity: ''
        alias: ''
        columns: '12'
        comment: ''
        layout: '{}'
        row_height: '60'
    states:
        coordinate: [310, 10]
        rotation: 0
        state: enabled
connections:
- [pdu_to_stream, '0', bursts, '0']
-   src_blk_id: take_skip_to_pdu
    src_port_id: pdus
    snk_blk_id: pdu_metadata
    snk_port_id: print
-   src_blk_id: take_skip_to_pdu
    src_port_id: pdus
    snk_blk_id: pdu_to_stream
    snk_port_id: pdus
- [throttle, '0', input, '0']
- [throttle, '0', take_skip_to_pdu, '0']
- [tone, '0', throttle, '0']
metadata:
    file_format: 2
    grc_version: 3.11.0.0