I would like to receive a PDU message containing a string using an Embedded Python Block and, after discarding certain messages, send a PMT message with that string to the output message port. My efforts so far have not produced a valid PMT format. My current code is:
```
import numpy as np
from gnuradio import gr
import pmt
import array
class blk(gr.sync_block):
def __init__(self):
gr.sync_block.__init__(
self,
name='EPB: Packet to PMT', # will show up in GRC
in_sig=None,
out_sig=None)
self.message_port_register_in(pmt.intern('msg_in'))
self.message_port_register_out(pmt.intern('msg_out'))
self.set_msg_handler(pmt.intern('msg_in'), self.handle_msg)
def handle_msg(self, msg):
_debug = 0 # set to zero to turn off diagnostics
try:
buff = pmt.to_python(pmt.cdr(msg))
b_len = len (buff)
except Exception as e:
gr.log.error("Error with message conversion: %s" % str(e))
if (_debug):
print ("new_val =", buff, b_len)
if (b_len != 52):
self.message_port_pub (pmt.intern('msg_out'), pmt.cons(pmt.PMT_NIL,pmt.to_pmt(buff)))
elif ((buff[0] != 37) and (buff[51] != 93)):
self.message_port_pub (pmt.intern('msg_out'), pmt.cons(pmt.PMT_NIL,pmt.to_pmt(buff)))
```
Any help will be appreciated!