Looking for an explanation,

File Source  -> GMSK MOD -> GMSK Demod ->  Head Block -> File sinks

Works fine, terminates after x number of bytes have been transferred and
returns.

However:
File Source -> Packet Encoder -> GMSK MOD -> GMSK Demod -> Packet Decoder
-> File sinks

Does not return after head block limit (just hangs). Seams like the packet
encode/decode block is not exiting?

Attached flow-graph.
from gnuradio import blocks
from gnuradio import analog
from gnuradio import digital
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import uhd
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from grc_gnuradio import blks2 as grc_blks2
from optparse import OptionParser
import time
import datetime


class Client(gr.top_block):
	def __init__(self):
		gr.top_block.__init__(self, "client")

		####### VARIBLES #######
		self.receiveFile = "/home/ken/out.txt"
		self.sendFile =    "/home/ken/in.txt"
		self.sample_rate = 250000

		####### BLOCKS #######
		self.sendBlock_FileSource = blocks.file_source(gr.sizeof_char*1, self.sendFile, True)
		self.sendBlock_PacketEncoder = grc_blks2.packet_mod_b(grc_blks2.packet_encoder(samples_per_symbol=2, bits_per_symbol=1, access_code="",pad_for_usrp=True,),payload_length=0,)
		self.sendBlock_GMSKMod = digital.gmsk_mod(samples_per_symbol=2,bt=0.35,verbose=False,log=False,)

		self.receiveBlock_GMSKDemod =  digital.gmsk_demod(samples_per_symbol=2,gain_mu=0.175,mu=0.5,omega_relative_limit=0.005,freq_error=0.0,	verbose=False,log=False,)
		self.receiveBlock_FileSink = blocks.file_sink(gr.sizeof_char*1, self.receiveFile, False)
		self.receiveBlock_FileSink.set_unbuffered(False)
		self.receiveBlock_PacketDecod = grc_blks2.packet_demod_b(grc_blks2.packet_decoder(access_code="",threshold=-1,callback=lambda ok, payload: self.receiveBlock_PacketDecod.recv_pkt(ok, payload),),)

		self.throttle = blocks.throttle(gr.sizeof_char, self.sample_rate)
		self.src = analog.sig_source_f(self.sample_rate, analog.GR_COS_WAVE, 1000, 1, 0)
		self.receiveHead = blocks.head(gr.sizeof_char*1, 12)

		####### CONNECTIONS #######

		#self.connect(self.sendBlock_FileSource,  self.sendBlock_PacketEncoder, self.sendBlock_GMSKMod, self.receiveBlock_GMSKDemod, self.receiveBlock_PacketDecod, self.receiveHead, self.receiveBlock_FileSink)
		self.connect(self.sendBlock_FileSource,  self.sendBlock_GMSKMod, self.receiveBlock_GMSKDemod, self.receiveHead , self.receiveBlock_FileSink)


if __name__ == '__main__':
	parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
	(options, args) = parser.parse_args()

	tb = Client()
	tb.start()
	print "hello"
	tb.wait()
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to