def test_004_es_source_pdus(self): print "test_004_es_source_pdus" msg = pmt.cons( pmt.to_pmt( {"somekey":"val2", "somekey2":"someval2" } ), pmt.to_pmt( numpy.array( [0,1,2,3,4,5,6,7,8,9] , dtype=numpy.float32) ) ); src = es.source([gr.sizeof_float], 8, 2); stb = blocks.message_strobe( msg, 100.0 ); tb = gr.top_block(); tb.msg_connect(stb, "strobe", src, "schedule_event"); th = blocks.throttle(gr.sizeof_float, 1000*100); hd = blocks.head(gr.sizeof_float, 1000*100); snk = blocks.vector_sink_f(); tb.connect(src,th,hd,snk); # TODO: this can not use run because it is # subject to GNU Radio's shutdown msg block bug # for remaining upstream msg blocks ... #tb.run(); # workaround tb.start(); time.sleep(1); tb.stop(); tb.wait(); self.assertEqual( sum(snk.data())>0, True );
def test_001_alloc_things(self): print "test_001_alloc_things" b = [] b.append(es.sink([1,1], 8)) b.append(es.source([1], 8)) b.append(es.es_handler_file( es.es_handler_file.TYPE_F32, "/dev/null", "test")) b.append(es.es_handler_insert_vector()) b.append(es.es_handler_print(es.es_handler_print.TYPE_C32)) b.append(es.es_handler_pdu(es.es_handler_pdu.TYPE_C32)) b.append(es.trigger_edge_f(0, 100, 0, 1, 0)) b.append(es.trigger_sample_timer(1, 1000, 0, 0, 100))
def test_002_es_source (self): print "test_002_es_source" tb = gr.top_block(); src = es.source( [gr.sizeof_float], 8 ); src.set_max(20); # set up a vector sink for printing snk = blocks.vector_sink_f(); tb.connect(src, snk); # run the graph to completion and print output stream tb.run(); print snk.data(); print len(snk.data()); self.assertEqual( len(snk.data()), 20);
def test_004_es_loopback(self): tb = gr.top_block(); arb = es.es_make_arbiter(); queue = es.queue(); queue_snk = es.queue(); max_idx = 10000; sig = [gr.sizeof_float]; src = es.source(arb, queue, sig ); src.set_max(max_idx); count = 0; xloc = 0; firstiter = True; while xloc < max_idx: count = float(count + 1); xloc = xloc + random.randint(1,50); dvec = []; for i in range(1,10): dvec.append(count); vec = es.pmt_float_vector( dvec ); e1 = es.event_create_gen_vector_f( xloc, vec ); queue.add_event( e1 ); print "queue adding done" snk = gr.vector_sink_f(); #snk = es.sink(arb, queue_snk, sig); tb.connect(src,snk); print "Total Events = %d"%(count); tb.run(); print snk.data();