[Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Mostafa Alizadeh
Hi,
I worked on GNURadio for many hours. After all, I prepared my blocks in
c++. However, the source by which I produce random bits (items with
sizeof(char) ) doesn't work properly! By properly I mean, I wanted GNURadio
to lead me control how it's going to call the *source.* It's crazily
calling the random bit generator so many times.

I think this is because of the GNURadio's strategy for executing blocks to
achieve as maximum throughput as possible! So GNURadio translates it* to
call the source as much as possible*.(no matter what is the source, here is
the random bit generator)

Am I right? If I am, what is the solution?

Best,
Mostafa
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Mike Jameson
The Throttle block is required if you are not using any external hardware:

http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1throttle.html

Mike

--
Mike Jameson M0MIK BSc MIET
Ettus Research Technical Support
Email: supp...@ettus.com
Web: http://ettus.com


On Sun, Jun 1, 2014 at 9:30 AM, Mostafa Alizadeh m.alizade...@gmail.com
wrote:

 Hi,
 I worked on GNURadio for many hours. After all, I prepared my blocks in
 c++. However, the source by which I produce random bits (items with
 sizeof(char) ) doesn't work properly! By properly I mean, I wanted GNURadio
 to lead me control how it's going to call the *source.* It's crazily
 calling the random bit generator so many times.

 I think this is because of the GNURadio's strategy for executing blocks to
 achieve as maximum throughput as possible! So GNURadio translates it* to
 call the source as much as possible*.(no matter what is the source, here
 is the random bit generator)

 Am I right? If I am, what is the solution?

 Best,
 Mostafa

 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Mostafa Alizadeh
Hi Mike,

No, the throttle isn't a source! It just controls the flow of items in an
specific time interval. I don't want this! I want cognitively tell the
source produces the random bits after some special procedures have done (a
message can do this for the source). But the scheduler crazily wants the
source to produce items! :)

How could I deal with this problem?
please.

Best,



On Sun, Jun 1, 2014 at 1:18 PM, Mike Jameson mike.jame...@ettus.com wrote:

 The Throttle block is required if you are not using any external
 hardware:

 http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1throttle.html

 Mike

 --
 Mike Jameson M0MIK BSc MIET
 Ettus Research Technical Support
 Email: supp...@ettus.com
 Web: http://ettus.com


 On Sun, Jun 1, 2014 at 9:30 AM, Mostafa Alizadeh m.alizade...@gmail.com
 wrote:

 Hi,
 I worked on GNURadio for many hours. After all, I prepared my blocks in
 c++. However, the source by which I produce random bits (items with
 sizeof(char) ) doesn't work properly! By properly I mean, I wanted GNURadio
 to lead me control how it's going to call the *source.* It's crazily
 calling the random bit generator so many times.

 I think this is because of the GNURadio's strategy for executing blocks
 to achieve as maximum throughput as possible! So GNURadio translates it*
 to call the source as much as possible*.(no matter what is the source,
 here is the random bit generator)

 Am I right? If I am, what is the solution?

 Best,
 Mostafa

 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Marcus Müller
Mostafa,

I know you've been working many hours on this :) so don't worry, you're
being heard.

Nevertheless, GNU Radio is surely not calling the asking the source
crazily to produce items.

GNU Radio is a streaming-into-buffers architecture, which means that the
runtime will ask a source to produce output when there is space in the
output buffer. I fail to see the problem with this, since your source
can just take as much time as it wants to finish a work call, can
produce less than noutput_items, and generally should just be as fast as
it could. Not a single one of the items it produced is going to waste!

It is good practice and done by *every* externally rate-limited source
to just block in work until enough items can be produced. If you need to
wait to get more random seed, well, then wait in work(). I admit, that
gets a little tricky when you want your seed to come in using a message,
because messages are not going to disturb your work due to design for
thread-safety.

But then again, before I start proposing wait-notify/condition
multithreading methods, I'd like to hear a bit about your source and why
being called often is a problem; that's usually not the case, so chances
are we might help you find a solution if we understood what's wrong with
your source ;)

Greetings,
Marcus

On 01.06.2014 10:56, Mostafa Alizadeh wrote:
 Hi Mike,

 No, the throttle isn't a source! It just controls the flow of items in an
 specific time interval. I don't want this! I want cognitively tell the
 source produces the random bits after some special procedures have done (a
 message can do this for the source). But the scheduler crazily wants the
 source to produce items! :)

 How could I deal with this problem?
 please.

 Best,



 On Sun, Jun 1, 2014 at 1:18 PM, Mike Jameson mike.jame...@ettus.com wrote:

 The Throttle block is required if you are not using any external
 hardware:

 http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1throttle.html

 Mike

 --
 Mike Jameson M0MIK BSc MIET
 Ettus Research Technical Support
 Email: supp...@ettus.com
 Web: http://ettus.com


 On Sun, Jun 1, 2014 at 9:30 AM, Mostafa Alizadeh m.alizade...@gmail.com
 wrote:

 Hi,
 I worked on GNURadio for many hours. After all, I prepared my blocks in
 c++. However, the source by which I produce random bits (items with
 sizeof(char) ) doesn't work properly! By properly I mean, I wanted GNURadio
 to lead me control how it's going to call the *source.* It's crazily
 calling the random bit generator so many times.

 I think this is because of the GNURadio's strategy for executing blocks
 to achieve as maximum throughput as possible! So GNURadio translates it*
 to call the source as much as possible*.(no matter what is the source,
 here is the random bit generator)

 Am I right? If I am, what is the solution?

 Best,
 Mostafa

 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio




 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Mostafa Alizadeh
Hi Marcus,
By mentioning that I spent many hours I wanted to say I'm hardly stuck on
this problem yet! :)

You said the there is no problem that we wait on the source to produce as
long as we want! But this is not true when I have other blocks waiting for
processing!! In other word, when the source produces one packet, I want
this packet go down through blocks and amid of these blocks a message must
tells the source to produce again.
*If the source doesn't produce anything after generating some packets, the
scheduler will be locked on the source and does nothing with other blocks!!*

As you said, the *wait* will work for this source, but it's also has the
same problem I mentioned.

Here is the summary of *random bit generator:*


#include gnuradio/io_signature.h

#include stdlib.h

#include time.h

#include bitset

#include unistd.h



namespace gr {

  namespace my_lte {


  lte_random_bit_gen::sptr

  lte_random_bit_gen::make(int packet_len) // packet_len: the size of
generating packet bits

  {

return gnuradio::get_initial_sptr

  (new lte_random_bit_gen_impl(packet_len));

  }


  /*

   * The private constructor

   */

  lte_random_bit_gen_impl::lte_random_bit_gen_impl(int packet_len)

: gr::sync_block(lte_random_bit_gen,

gr::io_signature::make(0, 0, 0),

gr::io_signature::make(1, 1, sizeof(char))),

  packet_length(packet_len),

  {

  srand (time(NULL)); // randomizing the seed


  set_max_noutput_items(packet_length);


  }


  lte_random_bit_gen_impl::~lte_random_bit_gen_impl()

  {

  }


  int

  lte_random_bit_gen_impl::work(int noutput_items,

gr_vector_const_void_star input_items,

gr_vector_void_star output_items)

  {


  char *out = (char *) output_items[0];


  int random_val, nout_written = 0;



  for (int i=0; ipacket_length; i++)

  {

  random_val = rand();

  bitset8 b(random_val);


  if (b[0] == 0)

  *out = 1;

  else

  *out = 0;


  out++;

  nout_written++;

  }


 // add tag

  add_item_tag(0,

   nitems_written(0),

   pmt::string_to_symbol(length),

   pmt::from_long(packet_length));


  cout  bit generator   endl ;


  return nout_written;

  }





On Sun, Jun 1, 2014 at 1:43 PM, Marcus Müller marcus.muel...@ettus.com
wrote:

 Mostafa,

 I know you've been working many hours on this :) so don't worry, you're
 being heard.

 Nevertheless, GNU Radio is surely not calling the asking the source
 crazily to produce items.

 GNU Radio is a streaming-into-buffers architecture, which means that the
 runtime will ask a source to produce output when there is space in the
 output buffer. I fail to see the problem with this, since your source
 can just take as much time as it wants to finish a work call, can
 produce less than noutput_items, and generally should just be as fast as
 it could. Not a single one of the items it produced is going to waste!

 It is good practice and done by *every* externally rate-limited source
 to just block in work until enough items can be produced. If you need to
 wait to get more random seed, well, then wait in work(). I admit, that
 gets a little tricky when you want your seed to come in using a message,
 because messages are not going to disturb your work due to design for
 thread-safety.

 But then again, before I start proposing wait-notify/condition
 multithreading methods, I'd like to hear a bit about your source and why
 being called often is a problem; that's usually not the case, so chances
 are we might help you find a solution if we understood what's wrong with
 your source ;)

 Greetings,
 Marcus

 On 01.06.2014 10:56, Mostafa Alizadeh wrote:
  Hi Mike,
 
  No, the throttle isn't a source! It just controls the flow of items in an
  specific time interval. I don't want this! I want cognitively tell the
  source produces the random bits after some special procedures have done
 (a
  message can do this for the source). But the scheduler crazily wants the
  source to produce items! :)
 
  How could I deal with this problem?
  please.
 
  Best,
 
 
 
  On Sun, Jun 1, 2014 at 1:18 PM, Mike Jameson mike.jame...@ettus.com
 wrote:
 
  The Throttle block is required if you are not using any external
  hardware:
 
  http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1throttle.html
 
  Mike
 
  --
  Mike Jameson M0MIK BSc MIET
  Ettus Research Technical Support
  Email: supp...@ettus.com
  Web: http://ettus.com
 
 
  On Sun, Jun 1, 2014 at 9:30 AM, Mostafa Alizadeh 
 m.alizade...@gmail.com
  wrote:
 
  Hi,
  I worked on GNURadio for many hours. After all, I prepared my blocks in
  c++. However, the source by which I produce random bits (items with
  sizeof(char) ) doesn't work properly! By properly I mean, I wanted
 GNURadio
  to lead me control 

Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Marcus Müller
Hi Mostafa,

 You said the there is no problem that we wait on the source to produce
as long as we want! But this is not true when I have other blocks
waiting for processing!!

Not true. If your block can't produce something, it's not GNU Radio's
fault your downstream blocks don't have anything to consume...

   In other word, when the source produces one packet, I want this
packet go down through blocks and amid of these blocks a message must
tells the source to produce again.

This sounds like a bad design choice, why would a downstream block need
to tell the source to produce again?
I think we might have tried to convince you not to do this before, but I
just can't find the thread where you describe your problem.

  If the source doesn't produce anything after generating some packets,
the scheduler will be locked on the source and does nothing with other
blocks!!

Exactly. If your source doesn't produce anything, your downstream blocks
can't consume anything -- there's nothing GNU Radio could do about this.
I'm fairly certain that GNU Radio will not stall a flow graph if there
is more than zero unprocessed items in the buffers. Haven't tested that,
though. Maybe someone else might comment on this.
So you have a logical deadlock, not a GNU Radio problem, if I understand
you correctly.

 As you said, the *wait* will work for this source, but it's also has
the same problem I mentioned.

Sorry, still don't undertand which problem you are writing about :(


I've read your code. There's absolutely no reason why the standard
behaviour of GNU Radio filling the output buffer of your source wouldn't
work -- these are pseudorandom numbers,
and there's absolutely no difference between generating e.g. 8192 at
once and producing them one at a time.


Greetings,
Marcus

Müller marcus.muel...@ettus.com wrote:
 Mostafa,

 I know you've been working many hours on this :) so don't worry, you're
 being heard.

 Nevertheless, GNU Radio is surely not calling the asking the source
 crazily to produce items.

 GNU Radio is a streaming-into-buffers architecture, which means that the
 runtime will ask a source to produce output when there is space in the
 output buffer. I fail to see the problem with this, since your source
 can just take as much time as it wants to finish a work call, can
 produce less than noutput_items, and generally should just be as fast as
 it could. Not a single one of the items it produced is going to waste!

 It is good practice and done by *every* externally rate-limited source
 to just block in work until enough items can be produced. If you need to
 wait to get more random seed, well, then wait in work(). I admit, that
 gets a little tricky when you want your seed to come in using a message,
 because messages are not going to disturb your work due to design for
 thread-safety.

 But then again, before I start proposing wait-notify/condition
 multithreading methods, I'd like to hear a bit about your source and why
 being called often is a problem; that's usually not the case, so chances
 are we might help you find a solution if we understood what's wrong with
 your source ;)

 Greetings,
 Marcus

 On 01.06.2014 10:56, Mostafa Alizadeh wrote:
 Hi Mike,

 No, the throttle isn't a source! It just controls the flow of items in an
 specific time interval. I don't want this! I want cognitively tell the
 source produces the random bits after some special procedures have done
 (a
 message can do this for the source). But the scheduler crazily wants the
 source to produce items! :)

 How could I deal with this problem?
 please.

 Best,



 On Sun, Jun 1, 2014 at 1:18 PM, Mike Jameson mike.jame...@ettus.com
 wrote:
 The Throttle block is required if you are not using any external
 hardware:

 http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1throttle.html

 Mike

 --
 Mike Jameson M0MIK BSc MIET
 Ettus Research Technical Support
 Email: supp...@ettus.com
 Web: http://ettus.com


 On Sun, Jun 1, 2014 at 9:30 AM, Mostafa Alizadeh 
 m.alizade...@gmail.com
 wrote:

 Hi,
 I worked on GNURadio for many hours. After all, I prepared my blocks in
 c++. However, the source by which I produce random bits (items with
 sizeof(char) ) doesn't work properly! By properly I mean, I wanted
 GNURadio
 to lead me control how it's going to call the *source.* It's crazily
 calling the random bit generator so many times.

 I think this is because of the GNURadio's strategy for executing blocks
 to achieve as maximum throughput as possible! So GNURadio translates
 it*
 to call the source as much as possible*.(no matter what is the source,
 here is the random bit generator)

 Am I right? If I am, what is the solution?

 Best,
 Mostafa

 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 

Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Activecat
On Sun, Jun 1, 2014 at 4:56 PM, Mostafa Alizadeh m.alizade...@gmail.com
wrote:

 Hi Mike,

 No, the throttle isn't a source! It just controls the flow of items in an
 specific time interval. I don't want this! I want cognitively tell the
 source produces the random bits after some special procedures have done (a
 message can do this for the source). But the scheduler crazily wants the
 source to produce items! :)



Mostafa,

Why not you tell us what you are trying to accomplish using this flowgraph
(not this block).
Give us a big picture of what you try to accomplish, let us figure out the
implementation details for you.

Chances are there is no problem with gnuradio but with your knowledge about
gnuradio.
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Mostafa Alizadeh
Hi Marcus,


On Sun, Jun 1, 2014 at 2:44 PM, Marcus Müller marcus.muel...@ettus.com
wrote:

 Hi Mostafa,

  You said the there is no problem that we wait on the source to produce
 as long as we want! But this is not true when I have other blocks
 waiting for processing!!

 Not true. If your block can't produce something, it's not GNU Radio's
 fault your downstream blocks don't have anything to consume...


This is not true because when I produce 1-3 packet of bits, the scheduler
doesn't go to the other blocks while there is items for them! The scheduler
calls the random bit generator for about 10 times!!


In other word, when the source produces one packet, I want this
 packet go down through blocks and amid of these blocks a message must
 tells the source to produce again.

 This sounds like a bad design choice, why would a downstream block need
 to tell the source to produce again?
 I think we might have tried to convince you not to do this before, but I
 just can't find the thread where you describe your problem.


I think you're right. I would control something somewhere else. :)


   If the source doesn't produce anything after generating some packets,
 the scheduler will be locked on the source and does nothing with other
 blocks!!

 Exactly. If your source doesn't produce anything, your downstream blocks
 can't consume anything -- there's nothing GNU Radio could do about this.
 I'm fairly certain that GNU Radio will not stall a flow graph if there
 is more than zero unprocessed items in the buffers. Haven't tested that,
 though. Maybe someone else might comment on this.
 So you have a logical deadlock, not a GNU Radio problem, if I understand
 you correctly.

  As you said, the *wait* will work for this source, but it's also has
 the same problem I mentioned.

 Sorry, still don't undertand which problem you are writing about :(


 I've read your code. There's absolutely no reason why the standard
 behaviour of GNU Radio filling the output buffer of your source wouldn't
 work -- these are pseudorandom numbers,
 and there's absolutely no difference between generating e.g. 8192 at
 once and producing them one at a time.


 Greetings,
 Marcus

 Müller marcus.muel...@ettus.com wrote:
  Mostafa,
 
  I know you've been working many hours on this :) so don't worry, you're
  being heard.
 
  Nevertheless, GNU Radio is surely not calling the asking the source
  crazily to produce items.
 
  GNU Radio is a streaming-into-buffers architecture, which means that the
  runtime will ask a source to produce output when there is space in the
  output buffer. I fail to see the problem with this, since your source
  can just take as much time as it wants to finish a work call, can
  produce less than noutput_items, and generally should just be as fast as
  it could. Not a single one of the items it produced is going to waste!
 
  It is good practice and done by *every* externally rate-limited source
  to just block in work until enough items can be produced. If you need to
  wait to get more random seed, well, then wait in work(). I admit, that
  gets a little tricky when you want your seed to come in using a message,
  because messages are not going to disturb your work due to design for
  thread-safety.
 
  But then again, before I start proposing wait-notify/condition
  multithreading methods, I'd like to hear a bit about your source and why
  being called often is a problem; that's usually not the case, so chances
  are we might help you find a solution if we understood what's wrong with
  your source ;)
 
  Greetings,
  Marcus
 
  On 01.06.2014 10:56, Mostafa Alizadeh wrote:
  Hi Mike,
 
  No, the throttle isn't a source! It just controls the flow of items in
 an
  specific time interval. I don't want this! I want cognitively tell the
  source produces the random bits after some special procedures have done
  (a
  message can do this for the source). But the scheduler crazily wants
 the
  source to produce items! :)
 
  How could I deal with this problem?
  please.
 
  Best,
 
 
 
  On Sun, Jun 1, 2014 at 1:18 PM, Mike Jameson mike.jame...@ettus.com
  wrote:
  The Throttle block is required if you are not using any external
  hardware:
 
  http://gnuradio.org/doc/doxygen/classgr_1_1blocks_1_1throttle.html
 
  Mike
 
  --
  Mike Jameson M0MIK BSc MIET
  Ettus Research Technical Support
  Email: supp...@ettus.com
  Web: http://ettus.com
 
 
  On Sun, Jun 1, 2014 at 9:30 AM, Mostafa Alizadeh 
  m.alizade...@gmail.com
  wrote:
 
  Hi,
  I worked on GNURadio for many hours. After all, I prepared my blocks
 in
  c++. However, the source by which I produce random bits (items with
  sizeof(char) ) doesn't work properly! By properly I mean, I wanted
  GNURadio
  to lead me control how it's going to call the *source.* It's crazily
  calling the random bit generator so many times.
 
  I think this is because of the GNURadio's strategy for executing
 blocks
  to achieve as maximum throughput as possible! So GNURadio 

Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Mostafa Alizadeh
Activecat,

I think change my topology to get rid of this things. :)
However, I still believe in that the GNURadio fails in this scenario.
As we have throttle or message_strobe blocks, I need to have a source which
generates items controlled by another block.

I'll try to see this problem in another way to escape from it!


On Sun, Jun 1, 2014 at 3:13 PM, Activecat active...@gmail.com wrote:

 On Sun, Jun 1, 2014 at 4:56 PM, Mostafa Alizadeh m.alizade...@gmail.com
 wrote:

 Hi Mike,

 No, the throttle isn't a source! It just controls the flow of items in an
 specific time interval. I don't want this! I want cognitively tell the
 source produces the random bits after some special procedures have done (a
 message can do this for the source). But the scheduler crazily wants the
 source to produce items! :)



 Mostafa,

 Why not you tell us what you are trying to accomplish using this flowgraph
 (not this block).
 Give us a big picture of what you try to accomplish, let us figure out the
 implementation details for you.

 Chances are there is no problem with gnuradio but with your knowledge
 about gnuradio.

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Marcus Müller
Hi Mostafa,

this is no good. If you don't tell us why and how you would want to do
that, we can't discuss if and how GNU Radio is lacking.
Really, the GNU Radio architecture wasn't meant for this kind of flow
control, but that's less of a shortcoming than a design choice, keeping
flow graph designs a little saner.
Neither throttle nor message strobe are controlled by another block, and
the latter doesn't even produce items.

Greetings,
Marcus

On 01.06.2014 19:27, Mostafa Alizadeh wrote:
 Activecat,

 I think change my topology to get rid of this things. :)
 However, I still believe in that the GNURadio fails in this scenario.
 As we have throttle or message_strobe blocks, I need to have a source which
 generates items controlled by another block.

 I'll try to see this problem in another way to escape from it!


 On Sun, Jun 1, 2014 at 3:13 PM, Activecat active...@gmail.com wrote:

 On Sun, Jun 1, 2014 at 4:56 PM, Mostafa Alizadeh m.alizade...@gmail.com
 wrote:

 Hi Mike,

 No, the throttle isn't a source! It just controls the flow of items in an
 specific time interval. I don't want this! I want cognitively tell the
 source produces the random bits after some special procedures have done (a
 message can do this for the source). But the scheduler crazily wants the
 source to produce items! :)


 Mostafa,

 Why not you tell us what you are trying to accomplish using this flowgraph
 (not this block).
 Give us a big picture of what you try to accomplish, let us figure out the
 implementation details for you.

 Chances are there is no problem with gnuradio but with your knowledge
 about gnuradio.



 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Marcus Müller
Hi Mostafa,
On 01.06.2014 19:23, Mostafa Alizadeh wrote:
 This is not true because when I produce 1-3 packet of bits, the
 scheduler doesn't go to the other blocks while there is items for
 them! The scheduler calls the random bit generator for about 10 times!!
I have tried that, and can disprove by example. My python code is under
[1], feel free to test and modify.
It generates timestamped output:

21.341874 src: sleeping
22.342275 src: producing 3 items, 0 total so far
22.342600 src: sleeping
22.342774 sink: got 3 items, total 0 so far

23.343531 src: producing 3 items, 3 total so far
23.343843 src: sleeping
23.344011 sink: got 3 items, total 3 so far

As you can see, the items that got produced are being processed *the
same millisecond* the sources'  work finishes.

My source sleeps a second, then produces three items.
Maybe there's a block downstream that needs bigger multiples of inputs
than single bytes?

Greetings,
Marcus

[1] https://github.com/marcusmueller/gr-trickling_items ; a GRC demo
flowgraph is under examples/

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] a criticism to GNURadio's scheduler!

2014-06-01 Thread Activecat
On Mon, Jun 2, 2014 at 1:27 AM, Mostafa Alizadeh m.alizade...@gmail.com
wrote:

 Activecat,

 I think change my topology to get rid of this things. :)
 However, I still believe in that the GNURadio fails in this scenario.
 As we have throttle or message_strobe blocks, I need to have a source
 which generates items controlled by another block.


It is very common to have blocks generating items while they are controlled
by another block.
These blocks are not source block but they could be sync block,
decimation block, interpolation block, general block etc.
Apparently you have seriously wrong concept at the very basic level, from
the very beginning.



 I'll try to see this problem in another way to escape from it!


As you refuse to tell us what you try to accomplish with this flowgraph, I
have to leave you alone and wish all the best to you.
Please don't seek help when you are not yet ready to be helped.
Don't abuse the forum please.
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] C++11 support

2014-06-01 Thread Activecat
Hi list,

Could anyone tell me about the C++11 support in gnuradio?

Thanks.
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] C++11 support

2014-06-01 Thread Tom Rondeau
On Sun, Jun 1, 2014 at 7:54 PM, Activecat active...@gmail.com wrote:

 Hi list,

 Could anyone tell me about the C++11 support in gnuradio?

 Thanks.



For continued support with various and older systems, we don't support
C++11.

Tom
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] OFDM_Cyclic_Prefixer

2014-06-01 Thread xianda
Hi all:
 Thank you in advance.
  I want to test my understanding about ofdm_cyclic_prefixer.As this 
picture say:I place a file sink before and after ofdm_cyclic_prefixer block 
respectively.And the result is that file d.dat just add the 16 cp when 
compared to c.dat.And maybe the block doesn't perform pulse shaping.Is it 
right?I just want to know whether what i said is right or not.Thanks.
   
Thank you.
Best regards





___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] OFDM_Cyclic_Prefixer

2014-06-01 Thread Ron Economos

If the rolloff parameter is zero, the block does not
do any pulse shaping. The rolloff parameter is in
symbols, and must be at least 2 and less than or
equal to CP length.

Ron

On 6/1/2014 5:53 PM, xianda wrote:

Hi all:
Thank you in advance.
I want to test my understanding about ofdm_cyclic_prefixer.As this 
picture say:I place a file sink before and after ofdm_cyclic_prefixer 
block respectively.And the result is that file d.dat just add the 16 
cp when compared to c.dat.And maybe the block doesn't perform pulse 
shaping.Is it right?I just want to know whether what i said is right 
or not.Thanks.

Thank you.
Best regards
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio