Hi all,
I’m now trying to use message_sink and msg_queue to receive data from
USRP.
And I’m having a problem that I cannot figure out. Please tell me where
I am
wrong.
####top block:
self.source = uhd.usrp_source(device_addr="",
stream_args=uhd.stream_args(‘fc32’, ‘sc16’, args=“scalar=1024”))
self.source.set_samp_rate(4e5)
self.queue = gr.msg_queue()
self.sink = gr.message_sink(gr.sizeof_float*2, self.queue, False) #what
does
True and False mean here?
self.connect(self.source, self.sink)
###top block
if name==“main”:
tb = probe_this()
tb.start()
while True:
sleep(1)
count = tb.queue.count()
print count
if count>0:
msg = tb.queue.delete_head()
print msg.arg1(), msg.arg2(), msg.length()
The result is like this:
8090
8.0 2172.0 17376
16309
8.0 362.0 2896
24536
8.0 724.0 5792
32724
8.0 362.0 2896
40906
8.0 362.0 2896
49133
8.0 362.0 2896
57362
8.0 724.0 5792
65574
8.0 362.0 2896
73798
8.0 362.0 2896
81997
8.0 362.0 2896
90221
8.0 724.0 5792
98433
8.0 362.0 2896
106643
8.0 362.0 2896
114872
8.0 362.0 2896
123094
8.0 724.0 5792
131263
8.0 362.0 2896
139448
8.0 724.0 5792
147621
8.0 362.0 2896
155840
8.0 724.0 5792
164050
8.0 362.0 2896
It seems that the number of data in each message is limited. I hope the
number can be much larger, say, 4e5 data in one message, so that each
message can hold the data of one second.
Anyone can tell me where is the problem and what should I do about it?
Thanks.
Wu