Модуль OOT ft8_rxtx подключен к модулю gr-display в блок-графе.
Код следующий:
Код: Выделить всё
from gnuradio import gr
import pmt
class ft8_rxtx(gr.basic_block):
"""
docstring for block ft8_rxtx
"""
def __init__(self, ptt_button, band_selector):
gr.basic_block.__init__(self,
name="ft8_rxtx",
in_sig=[],
out_sig=[])
self.ptt_button = ptt_button
self.band_selector = band_selector
self.portName = "text_out"
self.message_port_register_out(pmt.intern(self.portName))
def set_FT8(self, FT8_button):
if FT8_button == 1:
self.send_msg("Help")
PMT_msg = pmt.to_pmt("Help")
self.message_port_pub(pmt.intern(self.portName), PMT_msg)
main()
else:
quit()
def send_msg(self, msg):
PMT_msg = pmt.to_pmt(msg)
self.message_port_pub(pmt.intern(self.portName), PMT_msg)
def main():
gen_msg = ft8_rxtx(0,1)
gen_msg.send_msg("MAIN")
In main() I am calling send_msg as evidenced by the use of a print statement in the method which correctly displays MAIN. However, the message_port_pub() does not send the message to the gr-display.
Таким образом, передача сообщений работает при вызове send_msg из метода класса, но не работает при вызове из main(). Почему нет? Что я упускаю?
Джим
Подробнее здесь: https://stackoverflow.com/questions/792 ... main-the-c