duggabe

pkt_rcv_epy_block_0.py

Jul 25th, 2023
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.64 KB | None | 0 0
  1. import numpy as np
  2. from gnuradio import gr
  3. import pmt
  4. import base64
  5.  
  6. class blk(gr.sync_block):
  7.     def __init__(self):
  8.         gr.sync_block.__init__(
  9.             self,
  10.             name='EPB: Decode Packet',   # will show up in GRC
  11.             in_sig=None,
  12.             out_sig=None)
  13.         self.message_port_register_in(pmt.intern('msg_in'))
  14.         self.message_port_register_out(pmt.intern('msg_out'))
  15.         self.set_msg_handler(pmt.intern('msg_in'), self.handle_msg)
  16.  
  17.     def handle_msg(self, msg):
  18.         _debug = 0          # set to zero to turn off diagnostics
  19.         try:
  20.             buff = pmt.to_python(pmt.cdr(msg))
  21.         except Exception as e:
  22.             gr.log.error("Error with message conversion: %s" % str(e))
  23.             return
  24.  
  25.         b_len = len (buff)
  26.         if (_debug):
  27.             print ("new_val =", buff, b_len)
  28.         u8_data = []
  29.         if (b_len != 52):
  30.             # decode Base64
  31.             data = base64.b64decode(buff)
  32.             i = 0
  33.             while (i < len(data)):
  34.                 u8_data.append(pmt.to_pmt (data[i]))
  35.                 i += 1
  36.             pdu = pmt.cons(pmt.PMT_NIL,pmt.init_u8vector(len(u8_data), u8_data))
  37.             self.message_port_pub(pmt.intern('msg_out'), pdu)
  38.         elif ((buff[0] != 37) and (buff[51] != 93)):
  39.             # decode Base64
  40.             data = base64.b64decode(buff)
  41.             i = 0
  42.             while (i < len(data)):
  43.                 u8_data.append(pmt.to_pmt (data[i]))
  44.                 i += 1
  45.             pdu = pmt.cons(pmt.PMT_NIL,pmt.init_u8vector(len(u8_data), u8_data))
  46.             self.message_port_pub(pmt.intern('msg_out'), pdu)
  47.  
Add Comment
Please, Sign In to add comment