Перейти к содержимому

Документация

Поездки, карта и обмен

Как пишется история, что показывают графики, и как отдать данные наружу.

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

Воспроизведение и синхронизация на Android#

На экране поездки «Разбор поездки» и «Воспроизвести поездку» находятся в одном блоке под картой. Воспроизведение показывает сохранённые показания на дашборде; возврат открывает ту же поездку.

Синхронизация включается отдельно в «Меню» → «Аккаунт». Во время обмена видны текущий этап, номер поездки, объём передаваемого файла и ожидание подтверждения сервера. При неизвестном объёме показывается текущий этап без выдуманных процентов. После ошибки приложение объясняет причину и предлагает повтор; уже переданные поездки не нужно загружать заново.

Большие поездки обрабатываются сервером в фоне. На Android и iOS видно, стоит ли поездка в очереди, идёт ли обработка или повтор после сбоя; во время проверки отображается число обработанных записей. Поездка считается сохранённой в аккаунте только после завершения обработки. Если приложение закрыть или сеть оборвётся, повторная синхронизация проверит уже принятую задачу.

История поездок#

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

Каждая поездка — карточка с миниатюрой маршрута: форму трека узнаёшь быстрее, чем читаешь дату. Заголовок карточки — дистанция; рядом с ней цветная точка, если за поездку был пройден порог предупреждения. Цвет точки — та же полоса серьёзности, что и на приборах.

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

Сверху — сводка: километры, время в пути, число поездок и максимальная скорость. Пока колесо не выбрано, она считается по всей истории; с отбором по колесу — за месяц его последней поездки. Поездки сгруппированы по дням, у каждого дня свой итог. Записи короче трёхсот метров — подключение на парковке, перестановка колеса — свёрнуты в одну строку и списку не мешают; нажатие на неё разворачивает их обратно. Диагностические сессии показывают число полей StR и отсчётов, а не нули по скорости.

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

Имя здесь — то, которым вы назвали колесо в гараже. Переименовали — новое имя встаёт и в записях прошлого года: имя принадлежит колесу, а не той поездке.

Несколько поездок можно выделить долгим нажатием и затем удалить сразу или объединить в одну.

Тепловая карта#

Кнопка «Тепловая карта» над поиском собирает треки всех поездок на одну карту. Чем ярче линия, тем больше поездок по ней прошло; пунктир — участок, где GPS пропал больше чем на полкилометра и путь между точками неизвестен. Сверху выбирается период — всё время, месяц или год — и, если колёс несколько, одно из них. «Вписать» показывает все треки целиком.

Карта строится на телефоне из записанных точек GPS, тем же сглаживанием, что и карта одной поездки, и никуда не отправляется. Удалённая поездка пропадает с неё при следующем открытии.

Заблокированные поездки#

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

  • Заблокировать поездку можно на её экране — строка с замком под датой — или сразу несколько в режиме выбора: «Заблокировать выбранные». Там же блокировка снимается.
  • Заблокированная поездка отмечена в списке замком рядом с дистанцией.
  • «Удалить незаблокированные» — последний пункт меню истории. Перед удалением приложение называет, сколько поездок уйдёт, и только после подтверждения удаляет. Поездка, которая идёт прямо сейчас, и та, что закончилась в последние минуты — её приложение может продолжить после переподключения, — не удаляются никогда, даже незаблокированные.
  • Несколько секунд после удаления внизу экрана висит кнопка «Вернуть»: она возвращает всё, что удалила эта чистка, вместе с телеметрией и треками.
  • Блокировка бережёт поездку от массовой чистки и от срока хранения. Удалить заблокированную поездку вручную, выделив её, по-прежнему можно.
  • При объединении блокировка любого из кусков переходит на объединённую поездку.

Обрыв связи посреди поездки#

Короткий обрыв склеивать вручную не нужно: если вы подключились к тому же колесу в течение пяти минут, запись продолжится в ту же поездку сама. В истории это одна строка, один трек и один расход от начала до конца, а время в пути идёт от настоящего старта, а не от момента переподключения. Поездки разного вида — обычная, с часов, диагностическая — не склеиваются никогда.

Счётчик ватт-часов на дашборде при этом начинает заново: он живёт в памяти приложения, и обрыв его обнуляет. В самой поездке расход остаётся полным, так что смотреть надо в историю, а не на плитку.

Объединение поездок#

Одна поездка часто попадает в историю несколькими кусками: колесо разрядилось и вы поменяли батарею, вы заехали в магазин и приложение закрылось. В режиме выбора отметьте эти куски и выберите «Объединить».

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

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

Одна поездка#

Трек, окрашенный скоростью, шесть итогов — максимальная и средняя скорость, максимальный ШИМ, расход батареи, расход на километр и пробег после поездки, — профиль выбранных показателей и список показателей со сводкой «минимум · среднее · максимум». Нажатие на строку сводки открывает полный график этого показателя, нажатие на трек — карту.

Под дистанцией — дата и время в пути: вся запись, от подключения до отключения, со стоянками. Если колесо заметно стояло с включённой записью, рядом стоит и время в движении — только то, что колесо ехало быстрее 1 км/ч. Полчаса у подъезда тогда не превращают 13 км за 25 минут в 13 км за 52. На дашборде то же время в движении есть отдельной плиткой.

Средние у показателей езды считаются только на ходу — по отсчётам, когда колесо ехало быстрее 1 км/ч. Это скорость, ШИМ, токи, момент, мощность, углы (тангаж, крен, угол педалей), ускорение и ослабление поля: пять минут на подножке не превращают средний угол педалей в −30°, а светофоры не тянут среднюю скорость к нулю. Температуры, напряжение, ячейки и заряд усредняются по всему времени поездки, стоянки тоже в счёт. Минимум и максимум — всегда по всей поездке. Если колесо так и не тронулось, среднее считается по всем отсчётам.

Если в поездке вы разгонялись с места до 60 или до 100 км/ч, к итогам добавляется лучший разгон: «Разгон 0–60 — 4,3 с», «Разгон 0–100 — 9,8 с». С места значит, что колесо перед этим постояло хотя бы секунду. Время считается по той скорости, которую вы видели на приборах, то есть с вашей поправкой спидометра, и с точностью до десятой секунды. Если запись прорежена в настройках, разгон не считается: при редкой записи время было бы угаданным. Это цифра для себя, никаких проверок за ней нет.

Расход батареи на короткой поездке показывается с тильдой: «≈0,4 %». Колесо отдаёт заряд целыми процентами, и на дистанции в пару километров честный ответ — не «0 %», а оценка по напряжению. Тильда и означает «посчитано по напряжению, а не прочитано у колеса».

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

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

Кнопка «Метрики» открывает полный список записанных показателей поездки со спарклайнами — форма кривой видна до открытия. Иконка графика в строке добавляет показатель на экран графиков и убирает оттуда. Графики не ограничены скоростью и ШИМ: на дорожки можно вывести любой записанный показатель.

Полный график показателя печатает число так, как его прислало колесо: напряжение — с сотыми, «150,94 В», и у 134- и 151-вольтовых колёс тоже. На экране поездки и на приборах хватает десятой, а сюда приходят как раз за точным значением. Если в настройках точности вы задали свою разрядность, график следует ей.

Из графика, как и с любого другого экрана, назад возвращаетесь туда же, где были: список показателей остаётся пролистанным до той строки, с которой вы ушли.

Разбор поездки#

Под картой на экране поездки стоит кнопка «Разбор поездки». Она открывает отдельный экран, который отвечает не на вопрос «сколько», как итоги поездки, а на вопрос «как».

Разбор есть у каждой поездки — в том числе записанной задолго до того, как он появился в приложении. Он считается по уже сохранённой телеметрии, и ничего не нужно «начать собирать».

Нагрузка#

Главное число — пик ШИМа. Под ним полоса, которая несёт сразу три величины: заливка — это обычный рабочий ШИМ (выше него колесо ехало лишь двадцатую часть времени), белая каретка — пик, штриховка справа — зона выше 70 %. Под полосой то же словами: «Обычно до 60 % · выше 70 % — 1 % времени езды». Пик бывает одиночным всплеском на кочке, и рядом с рабочим ШИМом это видно сразу.

Нагрузка меряется двумя каналами. Кроме доли времени выше 70 % ШИМа, показывается доля времени выше 70 % собственного предела тока колеса — если колесо этот предел сообщает. Скважность и ток упираются в разное, и колесо может подойти к одному пределу, не приблизившись ко второму. Ниже — пики мощности, тока, фазного тока и температура контроллера.

Стиль езды#

Три строки: плавность, разгон и торможение. У каждой стоит измеренное число — например, «5.8 км/ч/с» — и полоса. Оценок здесь нет: резкая езда — это стиль, а не ошибка, и приложение описывает, как вы ехали, а не ставит за это балл.

У плавности полоса тем длиннее, чем плавнее езда. У разгона и торможения — чем резче. Об этом напоминает строка под блоком.

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

Полосы не цветные. В приложении цвет означает «порог пробит», а стиль езды никакого порога не пробивает.

Всё считается так, что частота опроса колеса на результат не влияет. Одна и та же езда, записанная с колеса, отдающего данные пять раз в секунду, и с колеса, отдающего тридцать, даёт одни и те же числа.

Сравнение с другими поездками#

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

Отличия меньше 4 % не называются вовсе — это примерно то, что даёт разная дорога при одном и том же стиле.

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

Засечка «обычно» со временем двигается — медиана пересчитывается с каждой новой поездкой. Измеренные числа самой поездки не меняются никогда.

Насколько можно верить разбору#

Если больше пятой части езды не записано — приложение теряло связь с колесом, — над разбором появляется рамка: «Часть поездки не записана» и сколько записано. Цифры ниже тогда приблизительные. Хорошая запись ничего не сообщает.

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

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

Короткие поездки#

Поездка короче 90 секунд или 300 метров стиля не получает: на таком отрезке это один манёвр, а не стиль. Экран так и пишет, а не показывает случайные числа.

Графики#

По умолчанию показатели идут дорожками друг под другом — у каждой своя шкала и свои подписи. Наложение на одну ось остаётся вторым режимом: оно удобно для показателей одной природы. В наложении цвет принадлежит семейству показателей — все температуры красные, — поэтому у каждой линии там свой рисунок: сплошная, штриховая, пунктирная, штрих-пунктирная. Тот же кусочек линии стоит в легенде перед названием, так что температуру контроллера, мотора и мосфетов на графике теперь различить можно. Курсор проходит через все дорожки сразу, в шапке каждой — значение в этой точке. Пороги предупреждений нарисованы теми же начертаниями, что и на приборах.

  • График приближается двумя пальцами, точка увеличения там, где пальцы.
  • Приближённый участок двигается двумя пальцами по горизонтали.
  • Вертикальная шкала при этом стоит на месте: она построена по всей поездке, а не по участку на экране. Спокойный отрезок и разгон рисуются в одной шкале, и размах колебаний на них можно сравнить на глаз. Живые плитки дашборда по-прежнему подстраивают шкалу под свежие значения.
  • Там, где запись прерывалась — потеря связи, пауза между кусками склеенной поездки, — линия рвётся, а не тянется прямой через пустоту. Так же ведут себя трек на карте и профиль высот: прямая между кусками не считается ни пройденным расстоянием, ни набором высоты.
История поездок на Android: поиск, итог за период, поездки по дням с силуэтом маршрута
Android. Поездки собраны по дням, у каждой силуэт маршрута и точка серьёзности.
История поездок на iPhone: итог за месяц, поездки по дням, силуэт маршрута и точка серьёзности
iPhone. Тот же список: итог за месяц, дни и силуэты.
Графики поездки на Android: скорость, ШИМ и напряжение дорожками с общим курсором
Android. Дорожки со своими шкалами, общий курсор и окно просмотра внизу.
Одна поездка на iPhone: трек, окрашенный скоростью, и шесть итогов
iPhone. Одна поездка: трек, окрашенный скоростью, и итоги.
Графики поездки на iPhone: скорость, ШИМ и напряжение дорожками со своими шкалами
iPhone. Дорожки со своими шкалами и общей осью времени.

Замер разгона#

Кроме лучшего разгона в итогах поездки есть замер по просьбе: меню дашборда → «Замер разгона». Пока экран открыт, приложение ждёт старта с места и меряет 0–60 и 0–100 км/ч.

  1. Остановитесь. Когда колесо простоит секунду, экран и голос скажут «Можно ехать».
  2. Разгоняйтесь. На экране крупно секундомер, скорость и ШИМ — ШИМ красится вашими порогами оповещений, как плитка на дашборде. На 60 км/ч — писк, на 100 — двойной писк. Если в этот момент звучит оповещение, писк отметки уступает ему.
  3. После заезда время говорится голосом и остаётся на экране. «Ещё раз» — новая попытка.

Замер сбрасывается, если колесо встало или скорость упала до 60, если до 60 прошло больше минуты или прервалась связь с колесом. Если 60 уже было, а до 100 не дошло, заезд сохраняется с одним временем 0–60.

Время считается по скорости на приборах, с вашей поправкой спидометра, с точностью до десятой секунды. Под заездом написано, был ли GPS весь заезд: точка раз в секунду с точностью лучше 10 м и без подменённых координат. На время замера GPS сам переходит на точку раз в секунду, а если запись трека выключена — включается и выключается обратно, когда вы уходите с экрана. В трек поездки такие точки не пишутся.

Заезды хранятся на телефоне, списком по колесу, с лучшим временем сверху; ненужный можно удалить. В демо и на записи замер не работает: их скорость не проехана.

Запись трека и карта#

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

Запись маршрута требует разрешения на точную геопозицию. Без разрешения остальные функции работают как обычно, только трека не будет.

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

Откуда берётся подложка#

Тайлы приходят от CARTO, и с 2026 года они выдаются по ключу: без него сервер отдаёт ту же картинку, но с надписью «API KEY REQUIRED» поперёк каждого квадрата. Отвечает он при этом как на успех, поэтому приложение проверяет подложку само — раз в час скачивает один заведомо пустой квадрат и смотрит на его вес. Помеченный весит почти в двадцать раз больше чистого.

Если проба показывает надпись, карта переходит на запасную подложку — Esri Gray Canvas, такую же приглушённую и тоже бесплатную. У неё свой предел приближения, z16: ближе она не детализирована, и карта честно упирается в него, вместо того чтобы показывать пустоту.

В разделе настроек «Карта и GPS» подложку можно выбрать руками: Авто, CARTO или Esri. «Авто» — это описанная проба; два других пункта её решение отменяют.

Кто двигает карту#

Масштаб — щипком или кнопками «+» и «−» в углу карты. Под ними «вписать трек»: она возвращает камеру так, чтобы маршрут целиком помещался на экран.

Сама по себе карта встаёт по треку ровно один раз — когда трек впервые появился. Дальше она принадлежит вам: во время поездки маршрут растёт, но камера остаётся там, куда её увели рукой, и не прыгает обратно. Вернуть её к треку — той самой кнопкой.

Трек красится показателем#

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

Шкала цвета натягивается на саму поездку. Причина простая: предел — это ваш порог, скажем 62 км/ч, а городская поездка идёт на 20–44, то есть в средней трети шкалы. Растянутая по поездке, она показывает разницу между «неспешно» и «бодро» там, где вы на самом деле ехали. Отсюда одно следствие, о котором стоит знать: цвета сравнимы внутри одной поездки, но не между поездками. «Здесь было горячее, чем там» — да; «эта поездка горячее прошлой» — для этого есть история и графики.

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

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

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

Что стоит за одной точкой трека#

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

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

Цвет каждой точки — худшее за её секунду, а не значение ровно на её отметке. Телеметрия пишется в разы чаще секунды, и провал ШИМ на треть секунды раньше проваливался между точками и не красил ничего. Поэтому и подпись в строке показаний говорит «за секунду»: под ней стоит пик этой секунды — тот самый, которым покрашен участок.

Второй показатель — толщиной#

Двух оттенков у одной линии не бывает: оттенок и есть имя показателя. Поэтому второй показатель трек несёт не цветом, а толщиной: спокойный участок — тонкая жила, нагруженный — линия во всю ширину. Скорость цветом и ШИМ толщиной отвечают на два вопроса сразу, не перекрашивая маршрут дважды.

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

Отметки#

  • Старт — кольцо, финиш — залитая точка. Стоят всегда, и по ним видно направление движения.
  • Пик каждого выбранного показателя — отдельная отметка со значением: пик у всего, что растёт к опасности, минимум у заряда и напряжений. Показатель, который красит трек, подписан словом «Пик» и крупным числом; остальные — числом с единицей в своём оттенке. Подписи без плашек, чтобы не закрывать то, ради чего карту открыли, и расходятся так, чтобы не наезжать друг на друга. Пик у края карты подписан сразу: подпись сдвигается внутрь экрана, а не ждёт, пока карту подвинут. Если места подписи не нашлось, остаётся кольцо — число всё равно стоит в дорожке под картой.

Дорожки под картой#

Под картой — тот же трек, распрямлённый по пройденному пути: по дорожке на каждый выбранный показатель, все на одной оси и под одним курсором. Так видно то, чего на сложенном маршруте не увидеть: где ШИМ подскочил при спокойной скорости, где мотор грелся дольше, чем длился подъём.

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

Дорожки делают три работы, которых карта не делает.

  • Легенда. У цветной загогулины на карте легенды быть не может. Распрямлённая, она читается сразу: видно, какой цвет спокойный, какой густой, и в каком порядке они шли по поездке.
  • Ведение пальцем. Попасть пальцем в сложенный трек мучительно, вести по ленте — нет. Курсор на ленте и точка на карте — одно и то же место, вести можно любым из двух. И там, и там выбирается место под пальцем, а не ближайшая отметка спутников: отметки пишутся раз в две секунды, то есть метрах в двадцати друг от друга, а показания берутся из записи поездки — она идёт независимо от неба и есть даже там, где отметки нет. Нажатие мимо трека снимает выбор.
  • Все срывы порога сразу. На карте они прячутся за складками маршрута, на дорожке выстроены в ряд засечками по верхней кромке. Сколько раз за поездку сработал порог и в каких местах — видно одним взглядом.

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

Выбор показателей#

Внизу экрана ряд чипов — показатели, которые записаны в этой поездке. У чипа четыре состояния, и нажатие ведёт показатель по кругу:

  1. выключен — нажали, и он появился дорожкой под картой;
  2. дорожка — нажали ещё раз, и он красит трек;
  3. цвет — нажали ещё раз, и он уходит в толщину, а цвет забирает предыдущий;
  4. толщина — нажали ещё раз, и он выключается.

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

По умолчанию — скорость цветом и ШИМ толщиной. Выбор запоминается между открытиями экрана, но не переносится с поездки на поездку: он относится к тому, что вы разбираете прямо сейчас.

Карточка поездки#

Из любой поездки можно сделать картинку и отправить друзьям. На карточке маршрут, дата, дистанция, время в пути, максимальная и средняя скорость, максимальный ШИМ и расход батареи.

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

Из разбора поездки на карточку можно поставить две плитки: плавность — оценку от 0 до 100 с кольцом — и время с ШИМ выше 70 % — долю времени под нагрузкой. Именно две, а не все четыре оценки стиля: четыре оценки на картинке для друзей превращают её в табель. Плавность читается как гордость без хвастовства, а доля под нагрузкой рассказывает о маршруте, а не о человеке. Карточка по умолчанию не меняется — эти плитки появляются, только если выбрать их самому.

Карточка поездки на тёмной теме: маршрут на карте, дистанция, максимальная и средняя скорость, максимальный ШИМ, расход батареи и профиль высот
Тёмная тема.
Та же карточка на светлой теме, трек окрашен по значению ШИМ со шкалой
Светлая тема, трек окрашен по ШИМ. Карточка следует языку приложения.

Сколько всё это занимает#

Подробность записи вы задаёте сами.

  • Частота записи: всё подряд или каждая вторая, третья точка и так далее. По умолчанию пишется всё — короткие события вроде клевка колеса носом длятся доли секунды, и разрежённая запись их теряет. Приложение сразу показывает, сколько мегабайт это примерно даст за час поездки.
  • Срок хранения: новая поездка вытесняет поездки старше выбранного срока. Пока новых поездок нет, история не трогается. Заблокированные поездки срок хранения не вытесняет.

Кадры, в которых поставлен новый рекорд поездки по скорости, ШИМ или току, записываются всегда, независимо от выбранной частоты. Иначе разрежённая запись съедала бы именно те моменты, ради которых её и смотрят.

Кроме того, что видно на экране, у LeaperKim в запись идут скорость и ток фазы со знаком: на дашборде они показываются по модулю, а при разборе падения важно, катилось ли колесо назад и тянул мотор или тормозил. Эти величины есть в выгрузке всех поездок, в экранах поездки их нет.

Выгрузка и загрузка#

  • Все поездки, телеметрия и точки маршрута выгружаются в один файл таблицы и загружаются обратно. Так переносят историю на новый телефон или между Android и iPhone.
  • Загрузка не создаёт дубликатов: поездки и записи сверяются по устойчивым ключам.
  • Блокировка поездки едет вместе с ней: на новом телефоне «Удалить незаблокированные» бережёт то же, что берегли на старом. Файлы, выгруженные до появления блокировки, загружаются как прежде — поездки из них приходят незаблокированными. Загрузка может заблокировать поездку, которая уже есть в истории, но никогда не снимает блокировку.
  • Трек отдельной поездки выгружается в формат GPX, который понимают сторонние карты и спортивные программы.
  • Отдельная поездка выгружается в формат WheelLog — «Экспорт Wheellog». Это тот самый файл таблицы, который принимают euc.world и разборы поездок, которыми обмениваются райдеры: в нём и телеметрия, и точки маршрута. Поездке, записанной без доступа к геопозиции, выгрузка тоже доступна — колонки координат просто останутся пустыми.
  • Отдельная поездка выгружается и в свой формат — «Архив LoEUC». GPX теряет телеметрию, WheelLog — всё, чего нет в его колонках; архив принимает наша же загрузка, поэтому поездка переезжает на другой телефон целиком, вместе со сводкой, по которой строится прогноз заряда. Тем же архивом выгружаются и отмеченные поездки — «Экспортировать выбранные» в режиме выбора; там же рядом стоит удаление выбранных, и оно спрашивает, прежде чем удалить.
  • Выгрузка и загрузка показывают окно с полосой: сколько поездок из скольких уже перенесено. Его можно отменить. Отмена останавливается на границе поездок, поэтому в истории остаются только целые поездки — половины ни одна не получит. Остаток довозит повторная загрузка того же файла: дубликатов она не создаёт.

Плеер записей#

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

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

Приватность трека#

Настройки → «Карта и GPS».

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

Режется то, что уходит к чужим глазам: GPX, экспорт в формате WheelLog и карточка поездки. Не режется то, что остаётся вашим: карта в приложении и архив LoEUC. Архив — это переезд на новый телефон, и обрезать в нём ваши же данные значило бы стереть их насовсем.

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

По умолчанию выключено.