Exemple #1
0
    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 );
Exemple #2
0
 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))
Exemple #3
0
    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);
Exemple #4
0
    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();