def __init__( self, radioParam={ "type": "ndr804-ptt", "host": "ndr308", "port": 8617, "obj": None }, index=1, enable=True, idString="USER", rate=0, ddcFreq=0, tunerIndex=1, radioInterface=1, dipIndex=-1, localInterface="eth6", udpPort=11000, testFilename="", otherDdcArgs={}, ): gr.hier_block2.__init__( self, "NDR804-PTT Narrowband IQ Source", gr.io_signature(0, 0, 0), gr.io_signature(1, 1, gr.sizeof_gr_complex * 1), ) self.message_port_register_hier_out("control") self.message_port_register_hier_in("control") ################################################## # Parameters ################################################## self.ddcFreq = ddcFreq self.dipIndex = dipIndex self.index = index self.localInterface = localInterface self.otherDdcArgs = otherDdcArgs self.radioInterface = radioInterface self.radioParam = radioParam self.rate = rate self.tunerIndex = tunerIndex self.udpPort = udpPort self.enable = enable self.idString = idString self.testFilename = testFilename ################################################## # Blocks ################################################## self.vitaIqSource = CyberRadio.vita_iq_source_2( 3, 1024 * 4 / 4, 9 * 4, 1 * 4, False, True, "0.0.0.0", udpPort, False, False, False, ) self.vecToStream = blocks.vector_to_stream(gr.sizeof_gr_complex * 1, 1024 / 4) self.nullSink = blocks.null_sink(gr.sizeof_int * (9 + 1024 / 4 + 1)) self.ddcControl = generic_ddc_control_block( radioParam, index, self.idString, enable, # enable False, # wideband rate, 0, ddcFreq, tunerIndex, 0, radioInterface, dipIndex, localInterface, udpPort, dict(otherDdcArgs), False) if self.testFilename != "": self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex * 1, 31250, True) self.blocks_interleaved_short_to_complex_0 = blocks.interleaved_short_to_complex( False, False) self.blocks_file_source_0 = blocks.file_source( gr.sizeof_short * 1, self.testFilename, True) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc( (1.0 / 32767, )) ################################################## # Connections ################################################## self.msg_connect((self.ddcControl, 'control'), (self, 'control')) self.msg_connect((self, 'control'), (self.ddcControl, 'control')) if self.testFilename != "": self.connect((self.blocks_multiply_const_vxx_0, 0), (self, 0)) self.connect((self.blocks_throttle_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.blocks_interleaved_short_to_complex_0, 0), (self.blocks_throttle_0, 0)) self.connect((self.blocks_file_source_0, 0), (self.blocks_interleaved_short_to_complex_0, 0)) else: self.connect((self.vecToStream, 0), (self, 0)) self.connect((self.vitaIqSource, 0), (self.nullSink, 0)) self.connect((self.vitaIqSource, 1), (self.vecToStream, 0))