Re: [Discuss-gnuradio] Random number of output items
Thanks Activecat you actually answered quite well to my question. I thought it might be better to send 0s, i'm glad you confirmed that. And thanks for the output algorithm. Could you tell me more about forecast? Most of the time I need 8 input samples to produce one byte output so I set the forecast like so: ninput_items_required[0] = noutput_items*8; It seems pretty straight forward. Is this correct? On Mon, May 19, 2014 at 9:32 PM, Activecat active...@gmail.com wrote: On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of output, and return X if X == noutput_items: (either one of above) When you send out a sync byte, add that to the output count. When you are waiting for the preamble, you may want to send out a series of zeros, rather than just producing no output. Producing no output may cause the downstream blocks to become unresponsive. ___ 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] Random number of output items
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Francois, as Activecat, I'm kind of having a hard time understanidng your requirements. If you're emulating a hardware signal source, go for the source approach. If you're basically taking input from anywhere and packing it into packets of varying length, that's exactly what the PDU block infrastructure is for: http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html Greetings, Marcus On 20.05.2014 15:59, Francois Gervais wrote: Thanks Activecat you actually answered quite well to my question. I thought it might be better to send 0s, i'm glad you confirmed that. And thanks for the output algorithm. Could you tell me more about forecast? Most of the time I need 8 input samples to produce one byte output so I set the forecast like so: ninput_items_required[0] = noutput_items*8; It seems pretty straight forward. Is this correct? On Mon, May 19, 2014 at 9:32 PM, Activecat active...@gmail.com wrote: On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of output, and return X if X == noutput_items: (either one of above) When you send out a sync byte, add that to the output count. When you are waiting for the preamble, you may want to send out a series of zeros, rather than just producing no output. Producing no output may cause the downstream blocks to become unresponsive. ___ 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 -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJTe2FKAAoJEBQ6EdjyzlHtrvsH/3EhTVbESphbUfNeWmZe/rNU YYOVD7XVYVndHzstznIwvYlNVRLugjJw74pPJ0DS050b1ggc9mDK/mW4975BICau hQQktHxN3QReWk5qKwpAx6Y/+3bVpC+phyFzZO0+1TBwHNYexsVA+Zw0mkGrOuvA 3pInPREkJxqxcMrbZZhMTYVVDfOpB5MEjxHSKOMWyAQqop2fg1ahlEwpKjVqDmmV 9NhjSbIy29kpayTcEq525ha0QPMb5bRkRiP1sw4GqHDJZSHyUR4RWYYHiVfD3CvP /Bmx74UyS69gnP6NmMxun3OjWngpNHkJNC0lN/GGHVhz7YjwVXINuXNkbYuEVaM= =x2qL -END PGP SIGNATURE- ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] Random number of output items
Sorry about that I'll try to clarify thing. I'm using an rtl-sdr adapter to receive an RF signal. I demodulate it and send it through the MM clock recovery and bit slicer. Then the binary signal enters the block I'm talking about here. This block find a valid packet by matching the preamble and the sync pattern and translates the packet into another format that is understood by a software stack designed for these type of packets. Normally this stack would take it's input from a serial port but in my case I output the packets in the correct serial protocol through a file sink that is binded to a FIFO. I'll take a look at the PDU block but this translation needs to be done between two very specific protocol. I don't think a generic block can achieve that. Right now the development is mostly finished. All I need to make sure is that my block interface correctly with the scheduler since I don't have a fixed input to output number relationship. It's mostly 8:1 but that not always exactly the case. Hope it makes sense. On Tue, May 20, 2014 at 10:06 AM, Marcus Müller mar...@hostalia.de wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Francois, as Activecat, I'm kind of having a hard time understanidng your requirements. If you're emulating a hardware signal source, go for the source approach. If you're basically taking input from anywhere and packing it into packets of varying length, that's exactly what the PDU block infrastructure is for: http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html Greetings, Marcus On 20.05.2014 15:59, Francois Gervais wrote: Thanks Activecat you actually answered quite well to my question. I thought it might be better to send 0s, i'm glad you confirmed that. And thanks for the output algorithm. Could you tell me more about forecast? Most of the time I need 8 input samples to produce one byte output so I set the forecast like so: ninput_items_required[0] = noutput_items*8; It seems pretty straight forward. Is this correct? On Mon, May 19, 2014 at 9:32 PM, Activecat active...@gmail.com wrote: On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of output, and return X if X == noutput_items: (either one of above) When you send out a sync byte, add that to the output count. When you are waiting for the preamble, you may want to send out a series of zeros, rather than just producing no output. Producing no output may cause the downstream blocks to become unresponsive. ___ 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 -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJTe2FKAAoJEBQ6EdjyzlHtrvsH/3EhTVbESphbUfNeWmZe/rNU YYOVD7XVYVndHzstznIwvYlNVRLugjJw74pPJ0DS050b1ggc9mDK/mW4975BICau hQQktHxN3QReWk5qKwpAx6Y/+3bVpC+phyFzZO0+1TBwHNYexsVA+Zw0mkGrOuvA 3pInPREkJxqxcMrbZZhMTYVVDfOpB5MEjxHSKOMWyAQqop2fg1ahlEwpKjVqDmmV 9NhjSbIy29kpayTcEq525ha0QPMb5bRkRiP1sw4GqHDJZSHyUR4RWYYHiVfD3CvP /Bmx74UyS69gnP6NmMxun3OjWngpNHkJNC0lN/GGHVhz7YjwVXINuXNkbYuEVaM= =x2qL -END PGP SIGNATURE- ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org
Re: [Discuss-gnuradio] Random number of output items
Hi, PDU blocks are a *type* of blocks. Basically, you tag your sample stream so that the blocks downstream know how long your packet is. The tagged stream infrastructure is an innovation meant to simplify the design of blocks dealing with packetized data. Lool in the gr-digital/examples subfolder for how some implementations of that principle are used. Greetings, Marcus On Tue, May 20, 2014 at 4:23 PM, Francois Gervais francoisgerv...@gmail.com wrote: Sorry about that I'll try to clarify thing. I'm using an rtl-sdr adapter to receive an RF signal. I demodulate it and send it through the MM clock recovery and bit slicer. Then the binary signal enters the block I'm talking about here. This block find a valid packet by matching the preamble and the sync pattern and translates the packet into another format that is understood by a software stack designed for these type of packets. Normally this stack would take it's input from a serial port but in my case I output the packets in the correct serial protocol through a file sink that is binded to a FIFO. I'll take a look at the PDU block but this translation needs to be done between two very specific protocol. I don't think a generic block can achieve that. Right now the development is mostly finished. All I need to make sure is that my block interface correctly with the scheduler since I don't have a fixed input to output number relationship. It's mostly 8:1 but that not always exactly the case. Hope it makes sense. On Tue, May 20, 2014 at 10:06 AM, Marcus Müller mar...@hostalia.dewrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Francois, as Activecat, I'm kind of having a hard time understanidng your requirements. If you're emulating a hardware signal source, go for the source approach. If you're basically taking input from anywhere and packing it into packets of varying length, that's exactly what the PDU block infrastructure is for: http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html Greetings, Marcus On 20.05.2014 15:59, Francois Gervais wrote: Thanks Activecat you actually answered quite well to my question. I thought it might be better to send 0s, i'm glad you confirmed that. And thanks for the output algorithm. Could you tell me more about forecast? Most of the time I need 8 input samples to produce one byte output so I set the forecast like so: ninput_items_required[0] = noutput_items*8; It seems pretty straight forward. Is this correct? On Mon, May 19, 2014 at 9:32 PM, Activecat active...@gmail.com wrote: On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of output, and return X if X == noutput_items: (either one of above) When you send out a sync byte, add that to the output count. When you are waiting for the preamble, you may want to send out a series of zeros, rather than just producing no output. Producing no output may cause the downstream blocks to become unresponsive. ___ 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 -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJTe2FKAAoJEBQ6EdjyzlHtrvsH/3EhTVbESphbUfNeWmZe/rNU
Re: [Discuss-gnuradio] Random number of output items
Thanks I'll take a closer look. On Tue, May 20, 2014 at 10:34 AM, Marcus Müller marcus.muel...@ettus.comwrote: Hi, PDU blocks are a *type* of blocks. Basically, you tag your sample stream so that the blocks downstream know how long your packet is. The tagged stream infrastructure is an innovation meant to simplify the design of blocks dealing with packetized data. Lool in the gr-digital/examples subfolder for how some implementations of that principle are used. Greetings, Marcus On Tue, May 20, 2014 at 4:23 PM, Francois Gervais francoisgerv...@gmail.com wrote: Sorry about that I'll try to clarify thing. I'm using an rtl-sdr adapter to receive an RF signal. I demodulate it and send it through the MM clock recovery and bit slicer. Then the binary signal enters the block I'm talking about here. This block find a valid packet by matching the preamble and the sync pattern and translates the packet into another format that is understood by a software stack designed for these type of packets. Normally this stack would take it's input from a serial port but in my case I output the packets in the correct serial protocol through a file sink that is binded to a FIFO. I'll take a look at the PDU block but this translation needs to be done between two very specific protocol. I don't think a generic block can achieve that. Right now the development is mostly finished. All I need to make sure is that my block interface correctly with the scheduler since I don't have a fixed input to output number relationship. It's mostly 8:1 but that not always exactly the case. Hope it makes sense. On Tue, May 20, 2014 at 10:06 AM, Marcus Müller mar...@hostalia.dewrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Francois, as Activecat, I'm kind of having a hard time understanidng your requirements. If you're emulating a hardware signal source, go for the source approach. If you're basically taking input from anywhere and packing it into packets of varying length, that's exactly what the PDU block infrastructure is for: http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html Greetings, Marcus On 20.05.2014 15:59, Francois Gervais wrote: Thanks Activecat you actually answered quite well to my question. I thought it might be better to send 0s, i'm glad you confirmed that. And thanks for the output algorithm. Could you tell me more about forecast? Most of the time I need 8 input samples to produce one byte output so I set the forecast like so: ninput_items_required[0] = noutput_items*8; It seems pretty straight forward. Is this correct? On Mon, May 19, 2014 at 9:32 PM, Activecat active...@gmail.com wrote: On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of output, and return X if X == noutput_items: (either one of above) When you send out a sync byte, add that to the output count. When you are waiting for the preamble, you may want to send out a series of zeros, rather than just producing no output. Producing no output may cause the downstream blocks to become unresponsive. ___ 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 -BEGIN PGP SIGNATURE- Version: GnuPG v1 Comment: Using GnuPG with
Re: [Discuss-gnuradio] Random number of output items
Hi Marcus, I'm not sure about the steps required to translate the bit stream from the RF receiver into a tagged stream. I looked at the ofdm_rx example and from what I understand I'll need a first block that takes the output of the demod/Clock Recovery/bit slicer and find the packets inside the stream and tag it so the other blocks can work with the tagged stream. This first block is a normal one that inherit from the generic Block class it that it? Does this first block need to output anything while waiting for the preamble of a packet to prevent the downstream block from freezing? Once the stream is packetized and tagged it seems pretty straight forward. Thanks On Tue, May 20, 2014 at 10:37 AM, Francois Gervais francoisgerv...@gmail.com wrote: Thanks I'll take a closer look. On Tue, May 20, 2014 at 10:34 AM, Marcus Müller marcus.muel...@ettus.comwrote: Hi, PDU blocks are a *type* of blocks. Basically, you tag your sample stream so that the blocks downstream know how long your packet is. The tagged stream infrastructure is an innovation meant to simplify the design of blocks dealing with packetized data. Lool in the gr-digital/examples subfolder for how some implementations of that principle are used. Greetings, Marcus On Tue, May 20, 2014 at 4:23 PM, Francois Gervais francoisgerv...@gmail.com wrote: Sorry about that I'll try to clarify thing. I'm using an rtl-sdr adapter to receive an RF signal. I demodulate it and send it through the MM clock recovery and bit slicer. Then the binary signal enters the block I'm talking about here. This block find a valid packet by matching the preamble and the sync pattern and translates the packet into another format that is understood by a software stack designed for these type of packets. Normally this stack would take it's input from a serial port but in my case I output the packets in the correct serial protocol through a file sink that is binded to a FIFO. I'll take a look at the PDU block but this translation needs to be done between two very specific protocol. I don't think a generic block can achieve that. Right now the development is mostly finished. All I need to make sure is that my block interface correctly with the scheduler since I don't have a fixed input to output number relationship. It's mostly 8:1 but that not always exactly the case. Hope it makes sense. On Tue, May 20, 2014 at 10:06 AM, Marcus Müller mar...@hostalia.dewrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Francois, as Activecat, I'm kind of having a hard time understanidng your requirements. If you're emulating a hardware signal source, go for the source approach. If you're basically taking input from anywhere and packing it into packets of varying length, that's exactly what the PDU block infrastructure is for: http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html Greetings, Marcus On 20.05.2014 15:59, Francois Gervais wrote: Thanks Activecat you actually answered quite well to my question. I thought it might be better to send 0s, i'm glad you confirmed that. And thanks for the output algorithm. Could you tell me more about forecast? Most of the time I need 8 input samples to produce one byte output so I set the forecast like so: ninput_items_required[0] = noutput_items*8; It seems pretty straight forward. Is this correct? On Mon, May 19, 2014 at 9:32 PM, Activecat active...@gmail.com wrote: On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of
Re: [Discuss-gnuradio] Random number of output items
On Tue, May 20, 2014 at 10:23 PM, Francois Gervais francoisgerv...@gmail.com wrote: Sorry about that I'll try to clarify thing. I'm using an rtl-sdr adapter to receive an RF signal. I demodulate it and send it through the MM clock recovery and bit slicer. Then the binary signal enters the block I'm talking about here. This block find a valid packet by matching the preamble and the sync pattern and translates the packet into another format that is understood by a software stack designed for these type of packets. Normally this stack would take it's input from a serial port but in my case I output the packets in the correct serial protocol through a file sink that is binded to a FIFO. A picture is worth a thousand words. If you attached your existing flowgraph then it helps a lot. I'll take a look at the PDU block but this translation needs to be done between two very specific protocol. I don't think a generic block can achieve that. Please be reminded that PDU and tagged stream are two different things. There are PUD to Tagged Stream and also Tagged Stream to PDU blocks, to perform conversions. Tagged Stream Block is a special block that can only take input of tagged stream; the tag of the first element must consists the packet-length information, here the default tag key is packet_len PDU is used for Message Passing, I doubt you really need this in your flowgraph. If you are sure that your custom block needs to produce output in packets (not solely bytes), then you may want to make the block output as tagged stream. If applicable, in alternative, you may consider to use the Stream to Tagged Stream block. In this case, the downstream blocks may be inherited from Tagged Stream Block. In cases other than that, you don't need tagged stream block at all. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] Random number of output items
Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? Thanks ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] Random number of output items
On Tue, May 20, 2014 at 2:17 AM, Francois Gervais francoisgerv...@gmail.com wrote: Hi, I'm making a block which takes bit from a bit slicer and output packets as input comes in. My block will output bytes so it can emulate a usb adapter that receives the RF signal and output a packet stream through an FTDI. That way I can use the stack that comes with the adapter without owning one. I'll use a FIFO file so other than not issuing the serail configuration the stack should be used pretty much as is. However, I'm not sure what I should do about the the number of outputs. Let say I'm waiting for the preamble, I won't output anything. When I get the preamble and the sync I'll send a sync byte of my own. From here every 8 inputs I'll output a byte. So basically my block will output 0 or 1 output. Can someone help me a little with the use of forecast and noutput_items in my case? Also do I need to use the consume_each function? If your block emulates a USB adapter, defines it as a source block, then you don't need to touch forecast(). If your block takes input from another block, then it is not source block. I don't really understand your requirements. The number of outputs (referred as noutput_items) is determined by the scheduler, not yourself. Says, when you have X bytes to send out, if X noutput_items: Send out noutput_items number of output, and return noutput_items if X noutput_items: Send out X number of output, and return X if X == noutput_items: (either one of above) When you send out a sync byte, add that to the output count. When you are waiting for the preamble, you may want to send out a series of zeros, rather than just producing no output. Producing no output may cause the downstream blocks to become unresponsive. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio