Ok I’ve decided on somewhat of a revisit of my code. Taking Eric’s
advice
I’m going to reimplement the code in a more flowgraph based behavior.
After
a vector is brought into the system by the MPI (my UDP interface system)
some values will be stripped and the pay load will be passed to a first
code
block that converts the values from an array of U8’s to an array of
unsigned
shorts that represent the physical bit value (each U8 will have 8 values
representing their binary equivalents.). This will then be parsed into
2
streams (broken at the midpoint of the array into 2 separate streams)
and
passed out to the encoding block. This Aloumoti encoder will then use a
bit
from row 0 and 1 from row 1 and convert them into a 2X2 matrix and pass
this
out the other end (so I’m assuming a 1:2 or 2:4 interpolation is needed
here). My question is how to utilize ‘gr_io_signature’ in the class
derivation to create the 2 output streams, how to return on these 2
steams
and then access them on the other end.
I know the python should look something like
#get values from UDP here
MPI_SRC=gr.vector_source(src_data) #the stripped vector
BIT_CONVERT=my.Bit_Vector()
ALOUMOTI_ENCODER=my.Aloumoti()
TX0PAYLOAD=gr.vector_sink()
TX1PAYLOAD=gr.vector_sink()
fg.connect(MPI_SRC, BIT_CONVERTER)
fg.connect((BIT_CONVERTER,0), (ALOUMOTI_ENCODER,0))
fg.connect((BIT_CONVERTER,1), (ALOUMOTI_ENCODER,1))
fg.connect((ALOUMOTI_ENCODER,0), TX0PAYLOAD)#these are sink currently so
I
can check the behavior of my flow graph system.
fg.connect((ALOUMOTI_ENCODER,1), TX1PAYLOAD)
at least this is the impression I get from the documentation.
However the aloumoti needs these 2 streams in combination to create the
output streams, how (in c) do I specify that there are 2 inputs and then
proceed to access those inputs in the C system? I’m already aware it
will
in some way involve the min_in, min_out, etc. variables and their use in
generating an IO signature.
Is it involved in the declaration of the in and out variables at the
beginning of the ‘work’ function:
Specifically do I use something akin to:
const float *in0= (const float *) input_items[0];
const float *in1= (const float *) input_items[1];
Any help would be greatly appreciated.
-Garrett McGrath