或者有没有办法确保每个单个输出项目像连续流一样发送到下一个块?
不,这不是GNU Radio的工作方式(根本不是!):
前一阵子我写了一篇 文章 这解释了GNU Radio如何处理缓冲区,以及它们实际上是什么。虽然GNU Radio缓冲区的内存体系结构可能对您不太感兴趣,但让我快速总结一下它的动态:
general_
work
我甚至不相信在这种完全不确定的时序数据流图模型中基于速度计算有时切换GPIO是一个好主意。也许您更愿意计算应该切换GPIO的“时间戳”,并将(时间戳,gpio状态)命令元组发送到FPGA中保留绝对时间的某个实体?在无线电传播和高速信号处理的规模上,CPU时序是 真 不准确,您应该使用FPGA实际实现确定性时序的事实,并使用CPU上运行的软件(即GNU Radio)来确定 什么时候 那应该发生。
有没有办法监控缓冲区,以便我可以确定何时发送了我的第一部分数据位?
除此之外,一个异步告诉另一个块的方法,是的,你已经处理了N个样本,或者要么只有一个块,它只观察你要同步的两个块的输出并消耗相同数量的块。来自两个输入的样本,或使用消息传递实现某些内容。我再次怀疑,这不是解决您实际问题的方法。