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...

Tnx,
/Ulrika

________________________________

Från: Colby Boyer [mailto:[email protected]] 
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.

Thanks,
Colby

_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to