Hi Marcus,
I was told to send this to the list again and see if anyone can help. Thank you. The new situation is as follows:
1.) I had an error in my python block code where I was unnecessarily doing a list comprehension, which was slowing everything down. So, now the block does not produce Us for the most part (probably 75% of the time), which is enough for my 2 USRP setup, but of course still not ideal.
2.) Now, I am trying to do it for 4 USRPs, and it immediately craps out by spitting out S on the output, and then quickly goes to Us, and the entire thing is dead after that. It clearly has to do with my block, but I was wondering if there is any other option again (in python) that could help optimize?
3.) If not, then I've been trying to make a C++ block anyway, but I'm running into the below issue:
I have gotten far enough to the point where I am having
mismatched sizes, and I'm not sure why. Specifically, the cosines are
sampled at 1M and produce complex outputs, and they go into the inputs
of the c_plus_plus block, but the error I keep getting is this:
"Source IO size "8" does not match sink IO size "4000000"."
While it is clear that something must be wrong with my inputs and outputs of the
C++ block, I don't understand why the cosine size is 8 and why my sink
IO size is 4000000. I tried changing the sampling rate too, to see if
that changed the size from 8 to something else, but it doesn't. In my
block, the relevant code from the cc file is:
babf_c_plus_plus_impl::babf_c_plus_plus_impl()
: gr::sync_block("babf_c_plus_plus",
gr::io_signature::make(2, 2, sizeof(gr_complex)),
gr::io_signature::make(2, 2, sizeof(gr_complex)))
{}
So,
the inputs of the block and outputs of the block are just of size
gr_complex, which I believe is 64 bits (real and imag are 32 bits each),
so where is the 4000000 coming from? I guess I'm a bit confused about
these sizes and where the issue could be. Thank you again for all the
help.