GithubHelp home page GithubHelp logo

gr-foo's Introduction

                     ____                 \
   ____ ______      / __/___  ____     \   \
  / __ `/ ___/_____/ /_/ __ \/ __ \  \  |   |
 / /_/ / /  /_____/ __/ /_/ / /_/ /  /  |   |
 \__, /_/        /_/  \____/\____/     /   /
/____/                                    /

Hi!

This is a collection of custom blocks that are not directly associated with a project. For sample applications see:

Development

Like GNU Radio, this module uses maint branches for development. These branches are supposed to be used with the corresponding GNU Radio branches. This means: the maint-3.7 branch is compatible with GNU Radio 3.7, maint-3.8 is compatible with GNU Radio 3.8, etc.

Wireshark Connector

This blocks outputs PDUs in the PCAP format which is supported by all common network monitoring applications. Some examples are Wireshark, Tshark, and tcpdump. Currently, it supports WiFi packets with Radiotap header and ZigBee.

For further information about Radiotap, PCAP, and Wireshark see:

Packet Pad

Adds a configurable number of zeros before and after a burst. The burst has to be started with an tx_sob, and ended with a tx_eob tag. From time to time I had issues when I did not pad the sample stream. This block helps to investigate that. It is also handy for loopback testing when there is no continues sample stream. Furthermore, this block can add a tx_time tag to every burst that lies a configurable number of seconds in the future. This is handy to buffer the sample stream for a short time to avoid underruns during the transmission, which lead to corrupted signals. You have to set the sync option to 'PC source' for this feature.

Burst Tagger

Tags a burst / packet / bunch of samples with tx_sob and tx_eob tags. This is useful if the SDR is operating in half-duplex mode. With adding a tx_eob the USRP switches back to receive mode immediately. That way, direct responses like ACKs are not missed.

The block searches for a special tag that indicates the start of a burst. The name of this tag is configurable. The tag should indicate the length of the packet in samples. Also a multiplier can be specified, which multiples the length given in the tag.

Packet Dropper

Drops a configurable percentage of messages. I used it to test protocol logic like ACKs, retransmission and stuff.

Periodic Msg Source

This block sends messages at regular intervals much like the Message Strobe block in mainline GNU Radio. With this block you can also configure the number of packets that are sent. When all normal messages are sent, the blocks sends a final PMT_EOF message to indicate that it is done. I used this block for automated performance tests with no-GUI flow graphs.

Pad Tagged Stream

Pads an incoming tagged stream with 0s to the set buffer size. Padding is applied to the tail of the tagged stream.

This is useful when transmitting packetized data by using a Pluto as SDR. The Pluto does currently not support a partial buffer flush triggered by an incoming tagged stream. Therefore this block pads incoming tagged stream to fill the Pluto buffer to enforce an immediate transmission.

Installation

git clone https://github.com/bastibl/gr-foo.git
cd gr-foo
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

gr-foo's People

Contributors

aewag avatar bastibl avatar christophl avatar cyancali avatar fierthraix avatar garverp avatar gvanem avatar jkbecker avatar jynik avatar rubund avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.