Unable to coerce endpoint

Dear all,

I’m trying to feed the received signal from USRP to a low-pass filter
and sink the filtered signal into a data file.

The received signal is in complex format. The receiver is built as:

u = usrp.source_c(0)
coeffs = gr.firdes.low_pass(1.0, 500e3, 20e3,.5e3,gr.firdes.WIN_HAMMING)
lpf = gr.fir_filter_ccf(1,coeffs)
dst = gr.file_sink(gr.sizeof_gr_complex,rxlpf.dat)
connect(u, lpf, dst)

I got a ValueError: unable to coerce endpoint

Without the low-pass filter plugged in, if only feed the received signal
into a data file, the system is running well. By checking the output
from the USRP is complex signal and data sank into the data file is
complex, therefore, the input and the output of the low-pass filter are
both selected as complex type. Why does this ValueError show up? How to
solve this error to plugged this low-pass filter in? I really appreciate
any idea related to this.

Wish you a great day!

Yan

On Thu, Feb 17, 2011 at 7:06 PM, Yan N. [email protected] wrote:

connect(u, lpf, dst)

I got a ValueError: unable to coerce endpoint

Without the low-pass filter plugged in, if only feed the received signal into a
data file, the system is running well. By checking the output from the USRP is
complex signal and data sank into the data file is complex, therefore, the input
and the output of the low-pass filter are both selected as complex type. Why does
this ValueError show up? How to solve this error to plugged this low-pass filter
in? I really appreciate any idea related to this.

Wish you a great day!

Yan

Yan, I don’t know. I copied the above script and it works fine for me.
I’m a bit confused about two aspects of the code, though. First, you
have the second input to file_sink as just rxlpf.dat, which looks like
the name of a file, but it is not quoted. Was this just a
transcription error?

Also, in your connect statement, you don’t use “self.connect()” or
“tb.connect()” where ‘tb’ is a top_block object you have created.
What’s really going on here?

Have you tried to make this script in the gnuradio companion? It
should be very simple to put this one together there, and GRC takes
care of the connections and everything else.

Tom

Tom, I really appreciate your reply. I got another question, how to
pause the system for 5 milliseconds? I’m trying to transmit signal then
suspend the system without any signal transmission for about 5
milliseconds. The following is the part of code that I use to implement
this, but it doesn’t really work as what I expected.

payload_13bit = ‘\x01\x01\x01\x01\x01\x0’
while(start_flag == 1)
msg_13bit = gr.message_from_string(payload_13bit)
top_block._ls_msgq.insert_tail(msg_13bit)
time.sleep(0.005)

Could you please help to see what the problem here? Why it cannot stop
the transmission for 5 milliseconds.

Really appreciate your help.

Thanks,
Yan