SugarLife — объяснения

Почему приложение ведёт себя именно так и чем платят настройки

View the Project on GitHub iMironRU/sugarlife-wiki

Попутчик: когда прибор ведёт другая программа

Если на телефоне уже работает программа, которая читает ваш сенсор, приложение подключается попутчиком: слушает тот же прибор рядом с ней, не мешая и ничего не отбирая.

На карточке прибора это так и написано. Слово важное — от попутчика можно ждать не всего.

Что попутчик получает

Живые показания, как обычно — те же самые, что видит соседняя программа, в тот же момент. Сенсор рассылает их всем, кто его слушает, и подписчиков может быть несколько.

Этого хватает для главного: тревог о низком сахаре, прогноза падения, графика за сегодня.

Чего попутчик не получает

Историю с прибора. Сенсор помнит показания за прошлые часы и дни, но отдаёт эту память только тому, кто ведёт сеанс — то есть соседней программе. На наши запросы он отвечает пустотой.

Поэтому попутчик историю не спрашивает вовсе. Не потому что мы не пробовали, а потому что пробовать — значит долбить прибор запросами, на которые он не ответит, и портить связь заодно соседу.

Практически это значит: дыры в вашей истории у нас останутся дырами. То, что случилось до того, как мы подключились, мы не увидим.

Почему первые показания «сырые»

Алгоритм прибора, считающий сахар по сигналу сенсора, набирает точность постепенно — ему нужно несколько показаний подряд, чтобы понять, как ведёт себя именно ваш сенсор.

Обычно мы прогреваем его историей: прочитали с прибора прошедшие часы — и алгоритм сразу в форме. Попутчику греться нечем, поэтому первые показания помечены как сырые, и число может отличаться от того, что показывает соседняя программа.

Это выравнивается за десять-пятнадцать минут живого потока. Прогретое состояние сохраняется, так что во второй раз ждать не придётся.

Как перестать быть попутчиком

Закрыть другую программу и нажать «Подключить». Тогда прибор ведём мы: и история, и точные числа с первой минуты.

Но подумайте, стоит ли. Пока та программа управляет вашей терапией — например, отдаёт данные помпе, — она важнее нашего удобства. Мы читаем и показываем; она лечит.

Почему мы не забираем прибор сами

Порядок подключения к сенсору несимметричен. Пристроиться к чужому сеансу можно, а вот наоборот — нет: если первыми подключились мы, соседняя программа прибора уже не получит и будет показывать «ищу сенсор», пока вы её не перезапустите.

Поэтому приложение никогда не берёт прибор первым, если видит на телефоне программу, которой вы пользуетесь. Оно ждёт — сколько нужно, — и пристраивается, когда она подключится.

Раньше здесь было «подождём пять минут и возьмём себе». Мы это убрали: захват по таймеру — та же конкуренция, только вежливая, и ломает он чужую программу молча, а вы будете искать причину в ней.

Неожиданная польза

Попутчик слышит тот же поток, что и соседняя программа. Значит, если поток пропал, пропал он у обеих — и наша тревога о молчании расскажет вам не только о нас, но и о том, что ваша основная программа осталась без данных.

Сама она об этом обычно не сообщает.