我觉得流标签、消息传递、数据包传输有点过头了,我很难理解。
我有一个简单的愿望:从一个字节流开始,我只想"提取"固定数量的字节),从一个已知的模式开始。例如,从这样的流中:。。。01h 55h XXh YYY ZZh。。。,它应该提取XXh-YYh-ZZh。
我使用Correlate Access Code Tag block——Tagged Stream Align——Pack K Bits将比特流转换为字节流,并同步到所需的访问代码(01h 55h),但我如何告诉gnuradio每次找到代码后只处理3个字节?OOT块可能会解决,但有没有标准GRC块的一些组合可以做到这一点?
我认为使用correlate_access_code_tag_bb,您实际上可以只从现有的块中构建它,只需稍微动脑筋。(注意:此确实依赖于流标签,因为是标记样本流中特殊点的正确工具。)
然而,你的简单案例可能真的不值得。只需遵循指导教程,就可以编写自己的python块。
在新块的构造函数中使用self.set_history(len(preamble)+len_payload)
,以确保在当前调用中始终看到上一次迭代的最后一个样本,并简单地在样本流中搜索前导码,找到它时只输出后面的len_payload
字节,如果找不到它,则不产生任何内容。