2015-11-25 1 views
2

Je pense que les tags de flux, le passage de message, la transmission de données par paquets sont un peu exagérés, et j'ai du mal à comprendre.GNURADIO 3.7.8: identifier une partie d'un flux d'octets

J'ai un souhait simple: à partir d'un flux d'octets je voudrais "extraire" seulement un nombre fixe d'octets) à partir d'un motif connu. Par exemple d'un ruisseau comme celui-ci: ... 01h 55h XXh YYh ZZh ..., il faudrait extraire XXh YYh ZZh. J'ai utilisé Correlate Access Code Tag Tag - Tagged Stream Align - Pack K Bits pour convertir un flux de bits en flux d'octets et synchroniser avec le code d'accès souhaité (01h 55h), mais comment puis-je dire à gnuradio seulement traiter 3 octets après chaque fois que le code est trouvé? Le bloc OOT probable résoudrait-il, mais y a-t-il un combinatino de bloc GRC standard pour faire cela?

Répondre

1

Je pense qu'avec correllate_access_code_tag_bb vous pouvez réellement construire ceci, avec un peu de torsion cérébrale, à partir de blocs existants seulement. (Note: cette ne comptent sur les étiquettes de flux, car les sont l'outil pour marquer des points spéciaux dans un flux d'échantillon.)

Cependant, votre cas simple pourrait vraiment pas la peine. Suivez simplement le guided tutorials jusqu'au point où vous pouvez écrire votre propre bloc python.

Utilisez self.set_history(len(preamble)+len_payload) dans le constructeur de votre nouveau bloc pour vous assurer que vous voyez toujours les derniers échantillons de l'itération précédente dans votre appel en cours au travail, et il suffit de rechercher le préambule dans votre flux d'échantillons, sortie uniquement les len_payload octets suivants quand vous le trouvez, ne produisez rien si vous ne le trouvez pas.

+0

Salut Marcus, merci pour la réponse. Que penses-tu ** du (meilleur/juste) moyen de le faire à Gnuradio? Je veux dire, si tu devais faire ça, comment le ferais-tu? Cheers, aawnsd – aAWnSD

+0

à peu près la façon dont je l'ai décrit! Cependant, trois octets semblent vouloir que vous passiez des messages au lieu de générer un exemple de flux. Vraiment: je lisais les tutoriels guidés, et j'essayais de comprendre les concepts de tags de flux et de passage de messages :) –

+0

PS: c'est l'ingénierie; il n'y a pas un seul * bon/meilleur moyen de faire * rien. Juste des choses qui conviennent à votre problème, qui est la combinaison de ce que vous voulez réaliser et des compétences, des outils et des ressources dont vous disposez! –