On Wed, Dec 17, 2014 at 3:44 PM, Rui Zou <ruizu...@gmail.com> wrote:
>
>  Hi, Marcus,
> I read the doc and examples you recommended, but I still don't understand
> fully how to implement my wok.
> Sorry for my previous omission that the first line of my flow graph design
> is:
> usrp_source -> ptk_dtc -> grab_time_tag -> usrp_sink
> 1. Here is the work function of my grab_time_tag block(not finished), I
> don't know how to code next:
>     const float *sigin = (const float *) input_items[0];
>    const unsigned char *detect = (const unsigned char *) input_items[1];
>    pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];
>
>    std::vector<gr::tag_t> rx_time_tags;
>    const uint64_t samp0_count = this->nitems_read(0);
>    for(i = 0; i < ninput_items; i++){
>        if (detect[0]){
>            get_tags_in_range(rx_time_tags, 0, samp0_count, samp0_count+1,
>                pmt::string_to_symbol("rx_time"));
>            break;
>        }
>    }
> 2. I want to send acks at an intended time at usrp_sink, how to pass this
> time information into usrp_sink?
>

You could tag your ACK burst with "tx_time" to send your ACK after a
prefered delay.
Please look in to Bastian's packet-pad implementation or pre-cog for
reference

[1] https://github.com/bastibl/gr-foo/blob/master/lib/packet_pad_impl.cc
[2] https://github.com/jmalsbury/pre-cog/blob/master/python/packet_framer.py



> I know a C++ method gr::uhd::usrp_sink::set_command_time, but don't know
> how to use it.
> What also confuses me is:
> if I construct a usrp_sink object in python, how to pass the time
> information posted from grab_time_tag into it? (They are not at the same
> level after all). IMHO, Python is not something valuable. It's just to
> build block objects and connect them.
> but if I do the job in C++, does it mean I have to rewrite a new usrp_sink
> block(sounds impratical) to receive the desired time value posted from
> grab_time_tag ? or else?
>
> BTW, the file_sink/source was just for testing.
> I 'm purely a green hand. If something is wrongly understood, please
> correct me with no hesitation.
> Hope your kind reply in specific details on the two query above. Many
> thanks!
>
> 在 2014年12月17日 00:34, Marcus Müller 写道:
>
> Hello Rui,
>
> why do you take the detour through a file? That looks unnecessary.
>
> the USRP sink understands transmission times you specify using tags [1],
> so this will be the easiest way to deal with this. You just need to
> write a really short block (in C++ or python, whatever you prefer) which
> takes the rx_time tag that the USRP source added to the sample stream
> and generates a tag with the desired point in time [2].
>
> There are some examples of the rx_time and tx_time tags usage in gr-uhd,
> so just search for "tx_time" or "rx_time" in gnuradio/gr-uhd/examples/ .
>
> Greetings,
> Marcus
>
> [1] http://gnuradio.org/doc/doxygen/page_stream_tags.html
> [2] http://gnuradio.org/doc/doxygen/page_stream_tags.html
> On 12/16/2014 05:21 PM, Rui Zou wrote:
>
>  Hello,
> I would like to implement the process as follows at the Rx side:
> Record the time when the first sample arrived, and then wait for a
> certain interval and then send ack back to Tx. Meanwhile, finish the
> cfo calculating and compensating.
> Here is my whole flow graph design. (Each means a block)
>
>                            pkt_dtc-> cfo_calc -> file_sink
>                                             cfo_calc -> cfo_cpst
>                                        file_source -> cfo_cpst ->
> usrp_sink
>
> where pkt_dtc, grab_time_tag and cfo_calc was done myself with C++.
> However, My question are:
> 1. Is it correct of my whole desgin (I want to implement them in one
> top block) or are there any easier solutions ?
> 2. After the block grab_time_tag, how should I pass the time
> information (directly got from the method get_tags_in_range) into the
> usrp_sink as a parameter so as to send ack at the intended time?
> Should I write in Python(but they are not the same level) or C++(but I
> can't rewrite a usrp_sink) ?
>
> Any doubts or suggestions are highly appreciated !
>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>  _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>

-- 
Regards
Sreeraj Rajendran
http://radioninja.in/
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to