Я настроил код Python для передачи файла WAV через NBFM, и он отлично работает для отправки файла один раз ИЛИ если я установлю автоповтор, он продолжит отправлять сообщение. Однако я хотел бы вызвать функцию top_block.run (), подождать, а затем вызывать ее снова и каждый раз, когда он будет запускать потоковый граф (top_block).
В настоящее время у меня есть
self.samp_rate = samp_rate = 44000
##################################################
# Blocks
##################################################
self.rational_resampler_xxx_0 = filter.rational_resampler_ccc(
interpolation=2400000,
decimation=88200,
taps=None,
fractional_bw=None,
)
self.osmosdr_sink_0 = osmosdr.sink( args="numchan=" + str(1) + " " + "" )
self.osmosdr_sink_0.set_sample_rate(2400000)
self.osmosdr_sink_0.set_center_freq(463025000, 0)
self.osmosdr_sink_0.set_freq_corr(6, 0)
self.osmosdr_sink_0.set_gain(0, 0)
self.osmosdr_sink_0.set_if_gain(30, 0)
self.osmosdr_sink_0.set_bb_gain(20, 0)
self.osmosdr_sink_0.set_antenna("", 0)
self.osmosdr_sink_0.set_bandwidth(10000, 0)
self.blocks_wavfile_source_0 = blocks.wavfile_source("/home/ahmad/Test123.wav", True)
self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff((2, ))
self.analog_nbfm_tx_0 = analog.nbfm_tx(
audio_rate=44100,
quad_rate=88200,
tau=75e-6,
max_dev=5e3,
)
##################################################
# Connections
##################################################
self.connect((self.analog_nbfm_tx_0, 0), (self.rational_resampler_xxx_0, 0))
self.connect((self.blocks_multiply_const_vxx_0, 0), (self.analog_nbfm_tx_0, 0))
self.connect((self.blocks_wavfile_source_0, 0), (self.blocks_multiply_const_vxx_0, 0))
self.connect((self.rational_resampler_xxx_0, 0), (self.osmosdr_sink_0, 0))
tb = top_block_cls()
i = 0
while i < 5:
tb.run()
i = i + 1
Как только вышеприведенный код передает только один раз, а в остальное время пропускает команду run cmd, я думаю, у блоков есть логическое значение, которое указывает, что работа была выполнена? И это нужно сбросить. Спасибо за ваше время!