The input vector may contain more items than the scheduler is expecting you to return. Use len(output_items[0]) to determine how much to consume and return. For reference, here is the autogenerated code for a new module:
def work(self, input_items, output_items): in0 = input_items[0] out = output_items[0] # <+signal processing here+> out[:] = in0 return len(output_items[0]) On Wed, Oct 27, 2021 at 11:46 AM Verónica Toro Betancur <vetor...@gmail.com> wrote: > Hi, > > I've been trying to implement a sync python embedded block that processes > all input_items. At the end of the work() function, I call > > output_items[0][:] = input_items[0] > self.consume_each(len(input_items[0])) > return len(input_items[0]) > > This works well the first time and all data is processed correctly, but > then, the block stops working, i.e., it doesn't process any new upcoming > data and input_items[0] is always filled with zeros. > > I hope someone could help me with this. > > Thanks in advance. > > > Best regards, > Verónica >