Hi Luca,
Just to clarify that CrossMgr delay has nothing to do with the accuracy of the read times. The times as based on the reader itself. CrossMgr accepts times "in the past". The delay is screen update only.
The delay may be due to processing. Two ideas:
Are you using Quadratic Regression? If so, CrossMgrImpinj waits for a "quiet period" of 0.5 seconds to delimit a sequence of reads to analyse.
Changing this to "First Read" eliminates the delimit delay, but will also result in much less accuracy as only the first read time is used (not computed from multiple reads utilizing multiple strengths).
The chip is still being read after the rider crosses the finish line as the tag is still in range of the antennas. The QR technique uses this to get a more accurate time for when the chip is closest to the antenna. Of course, this means that the processing starts when the chip is out of range.
The second cause is the update delay built into CrossMgr. When CrossMgr gets a read from CrossMgrImpnj, it does not update the display right away.
Rather, it waits an additional 0.1 seconds. If it does not get another read during the 0.1 seconds, it does the update.
If it gets a read during the 0.1 seconds, it resets the update timer to 0.25. Then 0.5, then 1.0 second (the max).
The reason for this (and the way CrossMgr used to work) is that if you update the display on every read, and you have a large number of reads (say of crit with a peleton of 80 riders), the screen flashes and the computer appears to lock up as it processes all the updates individually.
Adding the 0.1, 0.25, 0.5, 1.0 update policy allow CrossMgr to do the updates "in batch": allowing it to keep up with "bursts".
We can estimate the shortest latency for a CrossMgr update. Let say, one rider passes the finish line alone.
With QR, the tag has to go out of range before the processing can start. Let's say this happens when the rider is 3m after the finish.
Then another 0.5 seconds must pass for QR to detect the end of the sequence. It does the regression analysis and sends the chip value and the computed time to CrossMgr.
CrossMgr receives it, then waits an additional 0.1 seconds to see if there are any more reads.
With only one rider, it will update the display after the 0.1 second.
So, the screen update happens about 0.6 seconds after the tag goes out of range.
I am open to ideas to improve this.
The simplest idea would be to shorten the QR "delimit' time from 0.5 seconds to, say, 0.1 seconds. Given that the reader frequency is about 200 reads/second, that should be plenty, and a savings of 0.4 seconds.
It is also possible to add another interval for the CrossMgr update time, say, starting at 0.05 instead of 0.1. A savings of 0.05 seconds in the single-rider case.
Total savings: 0.45 seconds.
With these changes, you would see the screen update in 0.15 seconds instead of 0.6 seconds for the single rider case after the tag went out of range.
Of course, the tag is still reading after the rider passes the line, there will always be that latency. And, there has to be latency for "burst" RFID reads otherwise CrossMgr will appear to hang.
Tightening the delays cannot solve the problem entirely. Tightening the QR delimit delay could be worthwhile.