Happy 4th to everyone!
I am doing a QA test and it goes into an infinite loop and there is nothing in my code to explain this, except my misunderstanding of writing code for Gnuradio.
I am working with the general model because I have M input samples to every N output samples (M and N are not equal and the ratio of M:N does not allow me to use the decimator, the ratio can be anything, let's choose a ratio say 5:4). In the forecast method I tried to inform GnuRadio of the relationship between input and output samples as follows:
ninput_items_required[i] = noutput_items + self.delta
where self.delta was defined in the class initialization
def __init__(self,......):
...
...
self.delta = delta = 2
Here is a simplified version of my code in the general_work method:
in = input_items[0]
out = output_items[0]
jj =0
for n in range(0, len(in)-4, 4): # read in 4 samples at a time
reg = np.array([1,1,1,1])
input = in[n:n+4]
reg = reg + input
print('reg = { }'.format(reg))
for k in range(0,2)
out[jj] = reg[k]
jj = jj+1
return len(output_items[0])
The QA input vector is [0,1,2,3,4,5,6,7]
When I ran the QA test, the program ended up in an infinite loop (I cannot see how this happens). I put a print statement to see what was happening with reg and saw the following results:
reg = [1, 2, 3, 4, 5 ]
reg = [4, 5, 6, 7, 8], and, it keeps repeating these values (infinite loop somewhere).
Q1. It is computing reg correctly, but acts like the input vector [0,1,2,3,4,5,6,7] which occurs once in the QA test file repeat infinitely, why is this happening, the code loop looks good to me?
,
Q2. Can the forecast method be messing things up, in the way that I am trying to pass the relationship between the number of inputs (M) to outputs (N) ?
Will appreciate any help pointing me in the right direction.
Regards
George