[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] fundamentals of block-connections, message queue
Re: [Discuss-gnuradio] fundamentals of block-connections, message queue etc.
Wed, 26 Aug 2009 10:33:12 -0700
I haven't looked into how the samples come from the USRP to the PC. Perhaps the usrp2 source block will tell more?
On Wed, Aug 26, 2009 at 4:23 AM, Ulrika Uppman <address@hidden>
Thank you very much for your explenation Colby! I now understand how the message queue is used in the rx code.
However, I would still like to know more about how the data is transported between for example the usrp block and the next block (in the 802.11b rx case this would be the resampling block). If I understand it right, the usrp sends frames of data including a header, timestamp and a number of data samples. When connecting the blocks in the python code, where does the transformation from frames into a stream happen? I've tried to read the code and documentation about the connection and starting of flow graphs, but I could still use some hints...
Från: Colby Boyer [mailto:address@hidden]
Skickat: den 26 augusti 2009 05:09
Till: Ulrika Uppman
Kopia: GNU Radio Discussion
Ämne: Re: [Discuss-gnuradio] fundamentals of block-connections, message queue etc.
Within the BBN RX side, all the processing blocks are stuck together so that data "streams" from each block to the next. In the final block, when a packet is successfully decoded it is loaded in a message queue. The loading into the message queue is done within the C++ code, not the python.
There is another thread running that will sleep on an empty queue and will not wake up until something is inserted into the queue. When a message enters the queue, the thread wakes up, takes out the message and then prints it out via a call back function.
Check the source code for the message queue to see if there is another function to add a message.