I'm gonna check this out. I may have fixed this according to the tests we were looking at, but introduced a bug elsewhere. A QA test involving the moving average blocks and stream tags might help clear things up.
On Thu, Dec 31, 2015 at 10:38 AM, Tom Rondeau <t...@trondeau.com> wrote: > On Wed, Dec 30, 2015 at 3:32 PM, <mark.w.christian...@l-3com.com> wrote: > >> It’s a tag generator that goes through several other blocks before >> getting to the tag receiver. >> >> >> >> tag generator - mag^2 - moving average ------------------- divide - add >> constant - tag receiver >> >> \- moving average -/ >> >> >> >> Basically I’m computing the ration of a fast average to a slow average >> and sending that to a threshold detector sink (tag receiver) to watch for >> the signal to go above threshold. It then sends a message with the time >> stamp of that event to another block for other processing. I wrote the tag >> generator and tag receiver. >> >> >> >> Mark. >> >> > > I'd recommend plugging the tag generator directly into the tag receiver > just to make sure both of those are handling the tags properly. If they > are, then we can dive into the rest of the chain to see where things might > be having problems. My guess is that it'll be related to the different > delays of the moving average filters. > > This also might be related to a bug that we recently patched: > > https://github.com/gnuradio/gnuradio/commit/ae2e24f86b562a5bdcb9f5170e0abb1cd15838cf > > Tom > > > > >> >> >> *From:* trond...@trondeau.com [mailto:trond...@trondeau.com] *On Behalf >> Of *Tom Rondeau >> *Sent:* Wednesday, December 30, 2015 9:36 AM >> *To:* Christiansen, Mark W. @ CSG - CSW >> *Cc:* GNURadio Discussion List >> *Subject:* Re: [Discuss-gnuradio] Working with Tags >> >> >> >> On Wed, Dec 30, 2015 at 11:15 AM, <mark.w.christian...@l-3com.com> wrote: >> >> I wrote a block that writes the rx_time tag and another block that reads >> it. After reading them for a 20 to thirty calls to the work function, it >> stops getting any. The amount it reads varies from run to run. Any ideas? >> >> This code snippet is from the work function my block that writes the tag. >> The cerr statement continues to print to the console until I stop execution. >> >> >> >> <code> >> >> VITA49_packet_info packet_info = p_packet->get_VITA49_packet_info(); >> >> if (m_do_send_tags) >> >> { >> >> double timestamp_in_seconds = >> >> static_cast<double>(p_packet->get_integer_seconds()) + >> >> static_cast<double>(p_packet->get_fraction_seconds()) * 1e-12; >> >> const pmt::pmt_t timestamp = pmt::make_tuple( >> >> pmt::from_uint64(static_cast<long >> long>(floor(timestamp_in_seconds))), >> >> pmt::from_double(timestamp_in_seconds - >> floor(timestamp_in_seconds))); >> >> std::cerr << "SEND (" << d_id << ") " >> >> << " tag_offset=" << m_tag_offset >> >> << >> std::setprecision(std::numeric_limits<double>::digits10 + 1) >> >> << " timesamp_in_seconds=" << timestamp_in_seconds << >> std::endl; >> >> add_item_tag(0, m_tag_offset, TIME_KEY, timestamp, d_id); >> >> </code> >> >> >> >> >> >> How are you setting m_tag_offset? >> >> >> >> >> >> This code snippet is from my work function in the block that reads the >> tag. The cerr statement stops printing after twenty to thirty times >> suggesting that it no longer sees the time tags. The rest of the work >> function continues to operate properly. >> >> >> <code> >> >> static const pmt::pmt_t TIME_KEY = pmt::string_to_symbol("rx_time"); >> >> std::vector<tag_t> tags; >> >> get_tags_in_range( >> >> tags, 0, nitems_read(0), nitems_read(0) + noutput_items); >> >> std::vector<tag_t>::iterator itr; >> >> size_t j = 0; >> >> for (itr = tags.begin(); itr != tags.end(); itr++, j++) >> >> { >> >> if (pmt::eq((*itr).key, TIME_KEY)) >> >> { >> >> d_real_time_seconds = >> >> static_cast<double>(pmt::to_uint64(pmt::tuple_ref((*itr).value, >> 0))) + >> >> static_cast<double>(pmt::to_double(pmt::tuple_ref((*itr).value, >> 1))); >> >> std::cerr << "RECEIVE (" << d_id << ") " << j >> >> << " tag_offset=" << (*itr).offset >> >> << " noutput_items=" << noutput_items >> >> << >> std::setprecision(std::numeric_limits<double>::digits10 + 1) >> >> << " time_seconds=" << d_real_time_seconds << std::endl; >> >> } >> >> } >> >> } >> >> <code> >> >> >> >> /\/\ark. >> >> >> >> >> >> What does your flowgraph look like? Or is it just the tag producing block >> going straight in to the tag getter block? >> >> >> >> Tom >> >> >> > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio