I'm starting my project which is simply about reading the I/Q data from SDR Radio software like GNU Radio as an input for my own application. I thought about using the pipe command to do so, but don't really know how to use it in this case. Another idea is to get I/Q data directly from sound card.
I would like to ask you what is the most effective way to get these data. Thanks.
Named pipes are a very common way to do this. The concept is simple. First, you create a named pipe using the mkfifo command:
$ mkfifo my_named_pipe
$ ls -l
prw-rw-r-- 1 user user 0 Dec 16 10:04 my_named_pipe
As you can see, there's a new file-like thing with a 'p' flag.
Next, configure your GNU Radio app to write to this pipe (i.e. by using a file sink or file descriptor sink). Then, all you need to do is configure your app to read from this file. Note that the GNU Radio app and your app need to run at the same time.
Of course, you could consider simply writing your app in GNU Radio. Using Python blocks, it's very easy to get started.