|Subject:||Re: [Discuss-gnuradio] Problem with large number of inputs.|
|Date:||Sun, 27 Jul 2014 10:21:12 -0700|
Having your complete general_work function wouldn't have hurt my
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 :)
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::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 << endl;
> I got the aforementioned error!
> But when I set "group = 1" which means 8 input ports, all things are fine.
> any idea please,
|[Prev in Thread]||Current Thread||[Next in Thread]|