Is it possible to use a vector input or output with a block that uses the GRExtras interface? All of the examples for specifying the I/O signature for a Python block only show using a numpy type to specify the data width. I also tried creating a C++ block and setting the sizeof_stream_item parameter of the gr_make_io_signature() to the total vector size as has been done in standard blocks that support vectors, but it doesn't appear to be working properly either. For example, I tried setting the size to 4096 bytes (vector of 1024 floats), but each time my work function gets called, input_items.size() is only returning 8, where I would have expected it to only be called when there was a full vector of data available? I suppose I could work around this with a vector to stream conversion block in front of it, but I just wanted to see if it is possible to directly accept vectors with the newer block interface. Thanks, Roy
on 2012-11-13 23:36
on 2012-11-13 23:42
On 11/13/2012 02:35 PM, Roy Thompson wrote: > Is it possible to use a vector input or output with a block that uses > the GRExtras interface? All of the examples for specifying the I/O > signature for a Python block only show using a numpy type to specify > the data width. > Actually the neat thing with the python blocks is the items can be any thing you can represent with numpy dtypes. So vectors, vectors of vectors with arbitrary sizes, structures. And when work gets called, you get the inputs and outputs as arrays of these types. > I also tried creating a C++ block and setting the sizeof_stream_item > parameter of the gr_make_io_signature() to the total vector size as > has been done in standard blocks that support vectors, but it doesn't > appear to be working properly either. For example, I tried setting > the size to 4096 bytes (vector of 1024 floats), but each time my work > function gets called, input_items.size() is only returning 8, where I > would have expected it to only be called when there was a full vector > of data available? > input_items is an array of arrays, where each element represents an input port. If input_items.size() == 8, then you must have a block w/ 8 inputs? -josh
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.