[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Problem with large number of inputs.
From: |
Marcus Müller |
Subject: |
Re: [Discuss-gnuradio] Problem with large number of inputs. |
Date: |
Sun, 27 Jul 2014 13:21:51 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Having your complete general_work function wouldn't have hurt my
understanding much...
I really can't make out what you're trying to do without doubt.
Anyway, from the code below I think "in" *must at least* have the same
number of entries that your for loop has iterations; did you just try using
d_group * N_FS(d_normal) instead of d_N_phich_group * N_FS_phich(d_normal_cp)
when allocating your array?
It seems to me that having two ways to determine how many inputs there is a
likely cause for mistake. Use the size() of the input_items to determine how
many inputs you really have, and assert(input_items.size() ==
number_of_inputs_like_I_calculate_it); to make sure things line up.
Also, the whole process seems unnecessary, since you do nothing more than
copying the pointers from input_items to in; the typecast is nothing but
syntactic magic and can be done by having "in = ((const gr_complex*)*)
input_items;"; also, I encourage you to use the C++-style explicit cast
operators (in this case, reinterpret_cast<>) for their clarity, but that's more
a question of personal liking :)
Greetings,
Marcus
On 26.07.2014 21:55, Mostafa Alizadeh wrote:
> Hi Marcus,
>
> You're right. I didn't clarify the problem.
>
> Actually in C++, I wrote:
>
> block_impl::block_impl(bool normal, int group)
> : gr::block("phich_grouping",
> gr::io_signature::make(1, group * N_FS(normal), sizeof
> (gr_complex)),
> gr::io_signature::make(1, 1, sizeof(gr_complex))),
>
> // N_FS function returns 8 or 4 depends on its input.
> // in the work function :
> // d_normal and d_group are defined in the .h file
>
>
> const gr_complex *in[d_N_phich_group * N_FS_phich(d_normal_cp)];
> for (int i=0; i<d_group * N_FS(d_normal); i++)
> {
> in[i] = (const gr_complex *) input_items[i];
> }
>
>
> when I set the "group" value to 3, the number of input ports would be 24.
> In this case, I want to access to one element of "in" like this:
>
> cout << " in " << in[0][0] << endl;
>
> I got the aforementioned error!
>
> But when I set "group = 1" which means 8 input ports, all things are fine.
>
>
> any idea please,
>
> Best
>
- [Discuss-gnuradio] Problem with large number of inputs., Mostafa Alizadeh, 2014/07/26
- Re: [Discuss-gnuradio] Problem with large number of inputs., Marcus Müller, 2014/07/26
- Re: [Discuss-gnuradio] Problem with large number of inputs., Mostafa Alizadeh, 2014/07/26
- Re: [Discuss-gnuradio] Problem with large number of inputs.,
Marcus Müller <=
- Re: [Discuss-gnuradio] Problem with large number of inputs., Mostafa Alizadeh, 2014/07/27
- Re: [Discuss-gnuradio] Problem with large number of inputs., Marcus Müller, 2014/07/27
- Re: [Discuss-gnuradio] Problem with large number of inputs., Mostafa Alizadeh, 2014/07/27
- Re: [Discuss-gnuradio] Problem with large number of inputs., Mostafa Alizadeh, 2014/07/27
- Re: [Discuss-gnuradio] Problem with large number of inputs., Activecat, 2014/07/28
- Message not available
- [Discuss-gnuradio] Fwd: Problem with large number of inputs., Mostafa Alizadeh, 2014/07/28