Hi, following http://lists.gnu.org/archive/html/discuss-gnuradio/2009-02/msg00400.html, I tried connecting two processes with a FIFO using gr.file_descriptor_*.
However, I can't seem to pass the file descriptor from the Python to the
C++ domain. This is the error message I get:
gr_file_descriptor_sink: Bad file descriptor
This is the code (pipe1 was created by using 'mkfifo pipe1'):
Source-File:
<<< SNIP >>>
from gnuradio import gr
class sig_source(gr.top_block):
def __init__(self):
gr.top_block.__init__(self)
src = gr.sig_source_f(8000, gr.GR_SIN_WAVE, 2000, 1.0)
head = gr.head(gr.sizeof_float, 8000)
print "Opening pipe..."
fid = open('pipe1', 'wb')
print "Done. fileno: ", fid.fileno()
sink = gr.file_descriptor_sink(gr.sizeof_float, fid.fileno())
self.connect(src, head, sink)
if __name__ == '__main__':
try:
sig_source().run()
except KeyboardInterrupt:
pass
<<< SNIP >>>
Sink:
<<< SNIP >>>
from gnuradio import gr
class sig_sink(gr.top_block):
def __init__(self):
gr.top_block.__init__(self)
print "Opening pipe..."
fid = open('pipe1', 'rb')
print "Done. fileno: ", fid.fileno()
src = gr.file_descriptor_source(gr.sizeof_float, fid.fileno())
self.sink = gr.vector_sink_f()
self.connect(src, self.sink)
if __name__ == '__main__':
try:
sigsnk = sig_sink()
sigsnk.run()
print sigsnk.sink.data()[0:4]
except KeyboardInterrupt:
pass
<<< SNIP >>>
When I start both scripts, this is what I get:
Opening pipe...
Done. fileno: 3
file_descriptor_source[read]: Bad file descriptor
on both the write and read ends of the pipe. This does work when I open
the pipe with gr_file_sink, but then I have to think about the
buffering.
Has anyone ever done this and could drop me some example code that
works? I'd really appreciate it...
Cheers
MB
--
Dipl.-Ing. Martin Braun Phone: +49-(0)721-608 3790
Institut fuer Nachrichtentechnik Fax: +49-(0)721-608 6071
Universitaet Karlsruhe (TH) http://www.int.uni-karlsruhe.de/
pgpc7gGYy1rU4.pgp
Description: PGP signature
_______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
