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

From: discuss-gnuradio-bounces+tmonahan=qti.qualcomm....@gnu.org 
[mailto:discuss-gnuradio-bounces+tmonahan=qti.qualcomm....@gnu.org] On Behalf 
Of Nemanja Savic
Sent: Wednesday, May 29, 2013 4:55 PM
To: discuss-gnuradio@gnu.org
Subject: [Discuss-gnuradio] strange operation when char at input

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.

Best,


-- 
Nemanja Savić 
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to