Search code examples
redhawksdr

BURSTIO components?


I have a BURSTIO source that I would like to make a Waveform with in Redhawk. However, I noticed that all the components that come with Redhawk and GNUHawk are BULKIO. To my understanding, BULKIO and BURSTIO components cannot be used together, so therefore my BURSTIO source can't do much with the stock Redhawk components.

I have two questions:

  1. Do I have to re-implement all of the components I want to use into BURSTIO, or is there a way to use BURSTIO and BULKIO components together?
  2. Why doesn't Redhawk provide BURSTIO components?

UPDATE: For the most part, I understand the difference between BulkIO and BurstIO. I am still trying to figure out if it is possible to use BulkIO components on data provided by a BurstIO source. My waveform reads data from a BurstIO source component, and because of this it seems that I cannot use any of the Redhawk or GNUHawk components. I just want to make sure this is the case before I spend the time to implement the components I need as BurstIO. Maybe I have a fundamental misunderstanding of Redhawk IO and should not be using a BurstIO source? Any feedback is appreciated, thanks for your time.


Solution

  • BURSTIO and BULKIO are two different interfaces meant to solve two different problems (see chapter 15 of the manual). One of the needs for BURSTIO is illustrated through the optimization charts in the manual. Essentially when you use a pushPacket on a very small chunks of data (say 100 samples per push), the performance effects are dramatic.

    Second BURSTIO assumes pushSRI is done every pushPacket which is not true for BULKIO (only necessary for changes to the SRI). This is because burst traffic cannot be assumed to be the same (at least BURSTIO does not assume that) push to push.

    Is there a specific component you have in mind as a candidate for a BUSRTIO component?