-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Estimate and display contact durations on exposure match #158
Comments
This doesn't seem possible on iOS. The TCNs are generated only when receiving a read request, and the request is sent only of the central hasn't a cached TCN for the device's UUID yet. This UUIDs seems (it's not documented) to be assigned for long periods of time (permanently?). The relationship to the MAC rotation is unclear. I'm observing the UUIDs of 2 iOS peripherals right now and they haven't changed in more than one hour. A possible solution is to store the duration for individual TCNs and aggregate them during matching (checking that they're contiguous). An easier one would be to implement a timer to invalidate the cache, in order to fetch/trigger the TCN generation on the peripheral, but this seems questionable with multiple centrals, as they'd make the peripheral change its TCN very frequently and this would break e.g. the distance tracking (unless we base it on the device UUID). Writing this I'm realizing that we probably need to involve the matching in the distance calculation too, since we need to aggregate all the distances recorded during the exposure, so duration and distance handling would be similar. If we want the handling to be consistent with Android, were we have a mandatory timer, it seems we're left with recording duration/distance per TCN and aggregating during matching. Another possibility may be changing the TCN protocol, e.g. making iOS behave like Android (refresh based on timer instead of read request). I've given this much thought yet. |
“If we want the handling to be consistent with Android, were we have a mandatory timer, it seems we're left with recording duration/distance per TCN and aggregating during matching.” This was my assumption about how it would work. Since we’re looking for closest distance, aggregation across TCNs could be as simple as taking the lowest distance value. |
Okay, an implementation could look like this: Detection:
Matching:
From here nothing changes, other than the alerts have a couple of new fields to display. Assuming that we don't want to link the alerts that come from the same sender but are far apart. Thoughts? |
Btw, just noting that this is mostly about duration. The realization was that we need to handle it similarly to distance (not only during matching), as on iOS a TCN may stand for very large periods of time (it may have been implied, as we probably are interested in time frames shorter than 15 mins). |
Elena was just asking about that in #ux, but I agree that feature can be deferred for a future version. https://coepi.slack.com/archives/CUR0KQRNG/p1594310201140100 |
|
Btw, this spec was just a first draft, off the top of my head. The implementation has some changes (though mostly it matches it). |
|
If more than one TCN matches from a given TCK, we should estimate and display the duration of the contact.
The text was updated successfully, but these errors were encountered: