summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2017-07-13 11:33:06 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2017-07-13 11:33:06 -0700
commit11f9915a1adb133813a1b959f24dda547a977001 (patch)
tree718d7aac1aa321a6fbf193de8254df361826c08f
parent7cc01edff4982699b1f85b270ce4b2756a3ffad1 (diff)
parent31170ae61a1da7d5dcdedba99c5d3e5cfdd1f806 (diff)
Merge remote-tracking branch 'github/pr/1370' into maint
-rw-r--r--gr-digital/python/grc_gnuradio/blks2/packet.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/gr-digital/python/grc_gnuradio/blks2/packet.py b/gr-digital/python/grc_gnuradio/blks2/packet.py
index dc06544c19..298453a104 100644
--- a/gr-digital/python/grc_gnuradio/blks2/packet.py
+++ b/gr-digital/python/grc_gnuradio/blks2/packet.py
@@ -54,13 +54,21 @@ class _packet_encoder_thread(_threading.Thread):
self.start()
def run(self):
- sample = '' #residual sample
while self.keep_running:
+ sample = '' # residual sample
msg = self._msgq.delete_head() #blocking read of message queue
sample = sample + msg.to_string() #get the body of the msg as a string
+
while len(sample) >= self._payload_length:
payload = sample[:self._payload_length]
sample = sample[self._payload_length:]
+
+ #check if sample has remaining data to transmit that is shorter than the payload length
+ if len(sample) > 0 and len(sample) < self._payload_length:
+ #arbitrary padding to satisfy send on next loop for payload less than _payload_length
+ padding = ('x' * (self._payload_length - len(sample)))
+ sample = sample + padding
+
self._send(payload)
class packet_encoder(gr.hier_block2):
@@ -107,6 +115,7 @@ class packet_encoder(gr.hier_block2):
#connect
self.connect(msg_source, self)
+
print "Warning: the blks2.packet_encoder block is deprecated."
def send_pkt(self, payload):
@@ -197,9 +206,10 @@ class packet_mod_base(gr.hier_block2):
"""
def __init__(self, packet_source=None, payload_length=0):
+
if not payload_length: #get payload length
payload_length = DEFAULT_PAYLOAD_LEN
- if payload_length%self._item_size_in != 0: #verify that packet length is a multiple of the stream size
+ if (payload_length % self._item_size_in) != 0: #verify that packet length is a multiple of the stream size
raise ValueError, 'The payload length: "%d" is not a mutiple of the stream size: "%d".'%(payload_length, self._item_size_in)
#initialize hier2
gr.hier_block2.__init__(