C++ 跨数据块的连续流计算

C++ 跨数据块的连续流计算,c++,stream,redhawksdr,C++,Stream,Redhawksdr,访问来自bulkio输入流的先前或即将到来的数据块的数据的推荐方法是什么?编辑:我用的是C++。 例如,如果我想对传入数据流执行卷积,其中每个计算取决于流中向前/向后的一些值,那么我如何进入“下一个”数据块或“上一个”数据块以在块边界执行卷积计算?或者将此信息临时存储在组件中的某个位置,以便从一个块到下一个块使用 或者更简单的例子,如果我向我的组件发送8个八位组值的重复向量,我希望组件在收到1时从0简单地翻转到1,反之亦然(取决于前一数据块的最后一个索引,以计算下一数据块的第一个索引) 期望的:

访问来自bulkio输入流的先前或即将到来的数据块的数据的推荐方法是什么?编辑:我用的是C++。 例如,如果我想对传入数据流执行卷积,其中每个计算取决于流中向前/向后的一些值,那么我如何进入“下一个”数据块或“上一个”数据块以在块边界执行卷积计算?或者将此信息临时存储在组件中的某个位置,以便从一个块到下一个块使用

或者更简单的例子,如果我向我的组件发送8个八位组值的重复向量,我希望组件在收到1时从0简单地翻转到1,反之亦然(取决于前一数据块的最后一个索引,以计算下一数据块的第一个索引)

期望的:


in: [0,0,0,1,0,0,0] [0,0,0,1,0,0,0] [0,0,0,1,0,0,0] ->
in: [0,0,0,1,0,0,0] [0,0,0,1,0,0,0] [0,0,0,1,0,0,0] ->
in:[0,0,0,1,0,0,0,0][0,0,0,1,0,0,0,0][0,0,0,0,0]>
输出:[1,1,1,0,0,0,0,0][0,0,0,1,1,1,1][1,1,1,0,0,0,0] 我所取得的成就:


in:[0,0,0,1,0,0,0,0][0,0,0,1,0,0,0,0][0,0,0,0,0]>
输出:[1,1,1,0,0,0,0][1,1,1,0,0,0,0][1,1,1,0,0,0] 我曾想过将先前处理的数据块中的相关信息存储在组件代码serviceFunction()中的某个变量中,尽管我还没有找到一种不重新初始化该值的方法(每个数据块都是对serviceFunction()的新调用吗?)

或者,我想创建一个只读属性来保存我关心的值,但我怀疑可能有一个更好的方法我不知道

谢谢,

-标记

如果需要在读取之间保留一定数量的样本,BulkIO输入流支持数据重叠。您提供了要读取的样本数和要消耗的样本数(必须小于或等于读取大小),下一次读取将从未消耗的第一个样本开始。有关更多详细信息,请参阅BulkIO Stream API的红鹰手册部分(2.0.8手册中的5.7.3)。您还可以通过简单地将最后一个数据块作为组件类的成员变量进行读取来维护历史记录


您的简单示例建议使用状态机,而不是上次读取的内容。通常,如果在serviceFunction()的迭代之间需要存储信息,则可以自由地将自己的成员变量添加到组件类(例如,“MyComponent_i”)。添加成员不需要声明属性。只有基类(例如,“MyComponent_base”)在您修改组件的属性或端口时才会重新生成,因此对组件类所做的任何更改都会保留。

如果您需要在读取之间保留一定数量的样本,则BulkIO输入流支持数据重叠。您提供了要读取的样本数和要消耗的样本数(必须小于或等于读取大小),下一次读取将从未消耗的第一个样本开始。有关更多详细信息,请参阅BulkIO Stream API的红鹰手册部分(2.0.8手册中的5.7.3)。您还可以通过简单地将最后一个数据块作为组件类的成员变量进行读取来维护历史记录


您的简单示例建议使用状态机,而不是上次读取的内容。通常,如果在serviceFunction()的迭代之间需要存储信息,则可以自由地将自己的成员变量添加到组件类(例如,“MyComponent_i”)。添加成员不需要声明属性。当您修改组件的属性或端口时,只打算重新生成基类(例如,“MyComponent_base”),因此您对组件类所做的任何更改都将保留。

因此,我能够实现“所需的”通过组件上的只读属性从上面的问题中输出流,然后在serviceFunction()中根据需要进行操作。对于更复杂的卷积情况,我想这可以用一个只读序列以类似的方式完成。我想我唯一剩下的问题是,是否推荐这种方法,或者是否有更好的方法?因此,我能够通过组件上的只读属性从上面的问题中获得“期望的”输出流,然后在serviceFunction()中根据需要进行操作。对于更复杂的卷积情况,我想这可以用一个只读序列以类似的方式完成。我想我唯一剩下的问题是,是否推荐这种方法,或者是否有更好的方法?
in: [0,0,0,1,0,0,0] [0,0,0,1,0,0,0] [0,0,0,1,0,0,0] ->
out: [1,1,1,0,0,0,0] [1,1,1,0,0,0,0] [1,1,1,0,0,0,0]