I wouldn’t bother again but I have spent a lot of time trying to figure
out
what’s going on.
Nameli I want to design block with char type at input and char type at
the
output.
After finished with the design I realized strange block operation. Input
samples were always zero. Then I tried with this:
int
out[i] = in1[i]+in2[i];
// Tell runtime system how many output items we produced.
return noutput_items;
}
After quite some time I designed similar block with float ports and it
worked. Then I changed upper block to have short type at input and
output
and it worked just fine.
And yes, in test everything works just fine, but in grc not, It always
spits 0 at the output.
Is there any possible complications with endianess or I don’t know.
I worked on an “interleaved char to complex” block some time ago. It was
not working right until I changed it to specify ‘signed’ char instead of
letting the compiler default happen (which could be either way). - Tim
Hi all guys,
I wouldn’t bother again but I have spent a lot of time trying to figure
out what’s going on.
Nameli I want to design block with char type at input and char type at
the output.
After finished with the design I realized strange block operation. Input
samples were always zero. Then I tried with this:
int
test_proba_sync_bb::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const char *in1 = (const char *) input_items[0];
char *out = (char *) output_items[0];
const char *in2 = (const char *) input_items[1];
// Do <+signal processing+>
for(int i=0;i<noutput_items;i++)
out[i] = in1[i]+in2[i];
// Tell runtime system how many output items we produced.
return noutput_items;
}
After quite some time I designed similar block with float ports and it
worked. Then I changed upper block to have short type at input and
output and it worked just fine.
And yes, in test everything works just fine, but in grc not, It always
spits 0 at the output.
Is there any possible complications with endianess or I don’t know.
On Wed, May 29, 2013 at 7:24 PM, Nemanja S. [email protected]
wrote:
Hm, could be, I will see later, but I see now that for example
digital_correlate block has unsigned.
Thank you Tim.
Nemanja
Yes. Unlike most data types, there’s a strong signed/unsigned property
to chars between Python and C++. A char vector is assumed unsigned.
Looks like you have to force it to be signed.
Tom
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.