def add_mobile_station(self,station_id): """ Adds new receiver mobile station. Station ID must be unique. Initializes BER reference source. """ # Initialize id_src = self._control._id_source dmux = self._data_multiplexer port = self._data_multiplexer_nextport self._data_multiplexer_nextport += 1 # Setup ctrl_port = self._control.add_mobile_station(station_id) options = self._options if options.imgxfer: ref_src = ofdm.imgtransfer_src( options.img ) else: ref_src = ber_reference_source(self._options) if(options.coding): ## Encoder encoder = self._encoder = ofdm.encoder_bb(fo,0) unpack = self._unpack = blocks.unpack_k_bits_bb(2) ## Puncturing if not options.nopunct: puncturing = self._puncturing = puncture_bb(options.subcarriers) #sah = gr.sample_and_hold_bb() #sah_trigger = blocks.vector_source_b([1,0],True) #decim_sah=gr.keep_one_in_n(gr.sizeof_char,2) self.connect(self._bitmap_trigger_puncturing,(puncturing,2)) frametrigger_bitmap_filter = blocks.vector_source_b([1,0],True) bitmap_filter = self._puncturing_bitmap_src_filter = skip(gr.sizeof_char*options.subcarriers,2)# skip_known_symbols(frame_length,subcarriers) bitmap_filter.skip_call(0) #self.connect(self._bitmap_src_puncturing,bitmap_filter,(puncturing,1)) self.connect(self._map_src,bitmap_filter,(puncturing,1)) self.connect(frametrigger_bitmap_filter,(bitmap_filter,1)) #bmt = gr.char_to_float() #self.connect(bitmap_filter,blocks.vector_to_stream(gr.sizeof_char,options.subcarriers), bmt) #log_to_file(self, bmt, "data/bitmap_filter_tx.float") self.connect((self._control,ctrl_port),ref_src,encoder,unpack) if not options.nopunct: self.connect(unpack,puncturing,(dmux,port)) #self.connect(sah_trigger, (sah,1)) else: self.connect(unpack,(dmux,port)) else: self.connect((self._control,ctrl_port),ref_src,(dmux,port)) if options.log and options.coding: log_to_file(self, encoder, "data/encoder_out.char") log_to_file(self, ref_src, "data/reference_data_src.char") log_to_file(self, unpack, "data/encoder_unpacked_out.char") if not options.nopunct: log_to_file(self, puncturing, "data/puncturing_out.char")
def __init__(self): gr.top_block.__init__(self) sig_src = gr.sig_source_i(200,gr.GR_CONST_WAVE,0,0,3600) src = ofdm.imgtransfer_src( "test.bmp" ) UDP_PACKET_SIZE = 4096 imgsink = ofdm.imgtransfer_sink( UDP_PACKET_SIZE, "127.0.0.1", 0, "127.0.0.1", 45454, "test.bmp" ) self.connect(sig_src,(src,0)) self.connect(sig_src,(imgsink,0)) self.connect(src,(imgsink,1))
def __init__(self): gr.top_block.__init__(self) sig_src = gr.sig_source_i(200, gr.GR_CONST_WAVE, 0, 0, 3600) src = ofdm.imgtransfer_src("test.bmp") UDP_PACKET_SIZE = 4096 imgsink = ofdm.imgtransfer_sink(UDP_PACKET_SIZE, "127.0.0.1", 0, "127.0.0.1", 45454, "test.bmp") self.connect(sig_src, (src, 0)) self.connect(sig_src, (imgsink, 0)) self.connect(src, (imgsink, 1))
def __init__(self): gr.top_block.__init__(self) #sig_src = gr.sig_source_i(512,gr.GR_SIN_WAVE,0.1,1000,3600) sig_src = gr.sig_source_i(200, gr.GR_CONST_WAVE, 0, 0, 3600) #sig_src = gr.noise_source_i(gr.GR_UNIFORM, 1000) src_file = "test.bmp" src = ofdm.imgtransfer_src(src_file) err_src = ofdm.bernoulli_bit_src(0.01) test_channel = ofdm.imgtransfer_testkanal() sequenz = [0] * 256 for i in range(256): sample = random() if sample < 0.1: sequenz[i] = randint(-100, 100) * 3 print sequenz vector_src = gr.vector_source_i(sequenz, True) add_block = gr.add_ii() self.connect(vector_src, (add_block, 0)) self.connect(sig_src, (add_block, 1)) xor = gr.xor_bb() UDP_PACKET_SIZE = 4096 imgsink = ofdm.imgtransfer_sink(UDP_PACKET_SIZE, "127.0.0.1", 0, "127.0.0.1", 45454, src_file) self.connect(sig_src, (src, 0)) self.connect(sig_src, (test_channel, 0)) self.connect(add_block, (imgsink, 0)) self.connect(src, (test_channel, 1)) self.connect(vector_src, (test_channel, 2)) self.connect(test_channel, (xor, 0)) self.connect(err_src, (xor, 1)) self.connect(xor, (imgsink, 1))
def __init__(self): gr.top_block.__init__(self) #sig_src = gr.sig_source_i(512,gr.GR_SIN_WAVE,0.1,1000,3600) sig_src = gr.sig_source_i(200,gr.GR_CONST_WAVE,0,0,3600) #sig_src = gr.noise_source_i(gr.GR_UNIFORM, 1000) src_file = "test.bmp" src = ofdm.imgtransfer_src( src_file ) err_src = ofdm.bernoulli_bit_src( 0.01 ) test_channel = ofdm.imgtransfer_testkanal() sequenz = [0]*256 for i in range(256): sample = random() if sample<0.1: sequenz[i]=randint(-100,100)*3 print sequenz vector_src = gr.vector_source_i(sequenz,True) add_block = gr.add_ii() self.connect(vector_src,(add_block,0)) self.connect(sig_src,(add_block,1)) xor = gr.xor_bb() UDP_PACKET_SIZE = 4096 imgsink = ofdm.imgtransfer_sink( UDP_PACKET_SIZE, "127.0.0.1", 0, "127.0.0.1", 45454, src_file ) self.connect(sig_src,(src,0)) self.connect(sig_src,(test_channel,0)) self.connect(add_block,(imgsink,0)) self.connect(src,(test_channel,1)) self.connect(vector_src,(test_channel,2)) self.connect(test_channel,(xor,0)) self.connect(err_src,(xor,1)) self.connect(xor,(imgsink,1))
def add_mobile_station(self, station_id): """ Adds new receiver mobile station. Station ID must be unique. Initializes BER reference source. """ # Initialize id_src = self._control._id_source dmux = self._data_multiplexer port = self._data_multiplexer_nextport self._data_multiplexer_nextport += 1 # Setup ctrl_port = self._control.add_mobile_station(station_id) options = self._options if options.imgxfer: ref_src = ofdm.imgtransfer_src(options.img) else: ref_src = ber_reference_source(self._options) if (options.coding): ## Encoder encoder = self._encoder = ofdm.encoder_bb(fo, 0) unpack = self._unpack = blocks.unpack_k_bits_bb(2) ## Puncturing if not options.nopunct: puncturing = self._puncturing = puncture_bb( options.subcarriers) #sah = gr.sample_and_hold_bb() #sah_trigger = blocks.vector_source_b([1,0],True) #decim_sah=gr.keep_one_in_n(gr.sizeof_char,2) self.connect(self._bitmap_trigger_puncturing, (puncturing, 2)) frametrigger_bitmap_filter = blocks.vector_source_b([1, 0], True) bitmap_filter = self._puncturing_bitmap_src_filter = skip( gr.sizeof_char * options.subcarriers, 2) # skip_known_symbols(frame_length,subcarriers) bitmap_filter.skip_call(0) #self.connect(self._bitmap_src_puncturing,bitmap_filter,(puncturing,1)) self.connect(self._map_src, bitmap_filter, (puncturing, 1)) self.connect(frametrigger_bitmap_filter, (bitmap_filter, 1)) #bmt = gr.char_to_float() #self.connect(bitmap_filter,blocks.vector_to_stream(gr.sizeof_char,options.subcarriers), bmt) #log_to_file(self, bmt, "data/bitmap_filter_tx.float") self.connect((self._control, ctrl_port), ref_src, encoder, unpack) if not options.nopunct: self.connect(unpack, puncturing, (dmux, port)) #self.connect(sah_trigger, (sah,1)) else: self.connect(unpack, (dmux, port)) else: self.connect((self._control, ctrl_port), ref_src, (dmux, port)) if options.log and options.coding: log_to_file(self, encoder, "data/encoder_out.char") log_to_file(self, ref_src, "data/reference_data_src.char") log_to_file(self, unpack, "data/encoder_unpacked_out.char") if not options.nopunct: log_to_file(self, puncturing, "data/puncturing_out.char")