2017-07-07 7 views
0

Je dois modifier le gain de réception et de transmission sur ma source/récepteur respectivement en fonction des données qui seront calculées dans mon propre code. Quelle est la meilleure façon de procéder? Aucun des tutoriels décrivent comment cela est fait.Comment puis-je modifier par programme les attributs de mon flux GNUradio?

Idéalement, le script GNUradio python appelait simplement quelques fonctions dans une boucle, et renvoyait les valeurs de gain et le système changeait de façon dynamique.

+0

quelle source/puits sont parlons-nous? = –

+0

USRP N210 comme source et récepteur – paddy

+0

Donc c'est le bloc "UHD: USRP Source"? –

Répondre

0

Le récepteur/source UHD peut être contrôlé par une syntaxe de commande spécifique sur le port de message. Pour plus de détails, voir https://gnuradio.org/doc/doxygen/page_uhd.html#uhd_command_syntax.

Voici un exemple bloc de python intégré avec un port de message entrant pour double gain des valeurs et le port de sortie qui doivent être connecté au USRP Sink/Source

from gnuradio import gr 

class tuning_uhd(gr.sync_block): 
    def __init__(self): 
     gr.sync_block.__init__(self, 
      name="Gain Tuning", 
      in_sig=[], 
      out_sig=[] 
      ) 
     # Message ports 
     self.message_port_register_out(gr.pmt.intern("uhd")) 
     self.message_port_register_in(gr.pmt.intern("gain")) 
     self.set_msg_handler(gr.pmt.intern('gain'), self.handle_msg) 

    def handle_msg(self, msg): 
     self.message_port_pub(gr.pmt.intern('uhd'), gr.pmt.to_pmt({'gain': gr.pmt.to_double(msg) })