Hello GNURadio Community,
I wrote a Python OOT block that takes a vector input and outputs a vector of the same size.
In the grc, my OOT block is preceeded by a stream to vector and followed by a vector to stream (I specify the vector number items in both blocks as well as the yml for my Python OOT). My problem lies in the input/output specification that I am unable to figure out.
First I specified the input/output profile as:
in_sig = [np.float32*vectlen],
out_sig = [np.float32*vectlen])
The OOT compiled, but when I ran the grc, it showed that the * breaks the code.
Next I tried:
in_sig = [(np.float32, vectlen)],
out_sig = [(np.float32, vectlen)])
The grc plot for the output came up, but did not work. So I put in some print statements in the work() function after the following lines:
in0 = input_items[0]
out = output_items[0]
print("length of input data: {}".format(len(in0))
for i in range (0, vectlen):
print(" Iteration i = {}".format(i))
out[i] = in0[i]
The printed results in the grc were:
length of input data: 4 definitely an indication of error
For the Iterations it printed i = 0,1,2,3,4 and broke with an Error stating index 4 is out of bound for axis 0.
Obviously, my input/output profile specification must be the problem.
I will appreciate any help or suggestions.
Thank you!
George