Weird. I don't see a problem between strobe_tags -> moving average ->
vector sink with my test. How is m_tag_offset getting set?

On Thu, Dec 31, 2015 at 7:43 PM, Paul David <pudda...@gmail.com> wrote:

> 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

Reply via email to