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

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

Экран приборов

Плитки, шкалы, графики и карта: как собрать экран под свой стиль езды.

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

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

Как менять экран#

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

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

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

  • Лишнюю плитку можно убрать — остальные не переставляются, а строка, оставшаяся пустой, схлопывается.

  • Тап открывает показатель, даже если палец чуть проехал по экрану, — например, на ходу.

  • В настройках плитки число можно поставить по центру — у графика и у горизонтальных и вертикальной шкал; название остаётся слева.

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

Для некоторых моделей набор по умолчанию уже подобран. Например, у InMotion P6 сразу показывается давление в шине, потому что это колесо его передаёт.

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

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

Какие показатели бывают#

Список зависит от марки и модели. Полный набор, который приложение умеет показывать:

Группа Показатели
Движение скорость, пробег поездки, общий пробег, время в пути, время в движении, средняя скорость в движении, ускорение
Нагрузка ШИМ, ток шины, фазный ток, мощность батареи, полная мощность, мощность мотора, крутящий момент, предел тока
Батарея заряд, напряжение, ток батареи, токи левой и правой батарей, минимальная, максимальная и средняя ячейка, разброс ячеек, средний расход и расход сейчас в ватт-часах на километр
Температуры контроллер, мотор, плата, процессор, датчик наклона, батарея, самая горячая ячейка, самая горячая плата защиты
Положение продольный угол, боковой угол, целевой угол, угол педалей, угол разгона и торможения
Пороги колеса скорость наклона назад, предупреждение по скорости, наклон назад по ШИМ, предупреждение по ШИМ, наклон назад по току
Зарядка идёт ли заряд, напряжение и ток зарядки, мощность зарядки, температура зарядного, залитые ампер-часы и ватт-часы, целевое напряжение
Прочее давление в шине, запас хода, сигнал LTE, максимальные скорость, мощность батареи и мощность мотора по данным колеса
Оценка приложения прогноз заряда, прогноз пробега

Список одинаков на Android и на iPhone: он ведётся одним каталогом в общем ядре, и показатель, забытый на одной платформе, не собирается на другой. До версии от 18 августа 2026 года на iPhone показывалась только часть набора — движки разбирали остальное, но приложение не поднимало его на экран; теперь поднимает.

Если показателя нет в списке добавления, значит ваше колесо его не передаёт или этот участок протокола ещё не разобран.

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

В этот блок не попадают показатели, которые приложение считает само: время поездки, время в движении, средняя скорость движения, расход, средняя ячейка, прогнозы заряда и пробега, скорость по GPS. Колесо их не передаёт и передавать не может — они выводятся из скорости, напряжения и мощности, которые есть у любого колеса, — поэтому они доступны всегда, в том числе на стоящем колесе и до первой поездки. До версии от 21 сентября 2026 года их спрашивали наравне с остальными («а колесо это присылало?»), и на iPhone средняя скорость движения пропадала из выбора ровно тогда, когда дашборд и настраивают.

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

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

Внутри раздела показатели стоят по родству — сначала то, что меряется в тех же единицах и тем же цветом, — а не в порядке, в котором их когда-то завели в каталог. Порядок одинаков на Android и на iPhone.

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

Средний расход и расход сейчас#

Оба показателя приложение считает само — из мощности батареи и скорости, в ватт-часах на километр.

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

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

Пример из настоящей поездки: город, потом трасса на 65–70 км/ч. Средний расход к концу поднялся до 31 Вт·ч/км, а расход сейчас на трассе держался на 37–40 и на разгонах доходил до 49. Для прикидки «хватит ли до дома на этой скорости» смотрите на расход сейчас.

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

Прогноз заряда и прогноз пробега#

Эти два показателя приложение считает само, а не берёт у колеса.

Заряд, который показывает колесо, обычно выводится из напряжения — а напряжение проседает под нагрузкой. На пачке 36S с внутренним сопротивлением около 180 мОм полсотни ампер стоят восьми вольт, поэтому под разгоном процент ныряет, а на светофоре возвращается. На реальных поездках показание прыгало на 20–44 % там, где израсходовано было 9–16 %.

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

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

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

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

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

Оба показателя стоят рядом с заводскими и ничего не подменяют: «Заряд» и «Остаток пробега» остаются такими, какими их отдаёт колесо. На плитки их надо добавить самому — экран у вас молча не поменяется.

Ноль на этой шкале — 2,95 В на банку: до неё современное колесо разряжается безопасно, и её же берёт «режим низкой батареи» у Veteran (106,2 В на сборке 36S). Энергия пакета от настроек не зависит, поэтому порог отката педалей ноль не двигает, а отрезает низ: с выключенным режимом колесо перестанет вас держать на 113,4 В, и всё, что ниже, шкала объявляет недоступным. На одном и том же напряжении включённый режим показывает больший остаток — это не разные пакеты, а разное разрешение на один и тот же.

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

Обученная модель действует сразу: экран «Модель батареи» показывает её, как только обучение закончилось, и следующая поездка учится уже от неё. Только поездка, которая идёт в этот момент, досчитывается на прежней модели.

Выученная модель едет вместе с поездками: она попадает в выгрузку и восстанавливается при импорте на другом телефоне. Раньше при переезде терялось всё, чему приложение научилось.

Точность растёт с накатом. В первые поездки приложение знает про пакет мало и пользуется общей кривой, снятой с трёхчасовой записи зарядки пачки 36S — три часа, 1939 Вт·ч, оба конца замерены на покое; чем больше вы проехали, тем точнее кривая именно вашего пакета — и тем ближе прогноз. Участок заряда, который вы ни разу не проезжали, приложению неизвестен, поэтому глубокая разрядка становится точнее только после того, как вы хотя бы раз до неё доедете.

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

Когда подключено зарядное устройство#

Зарядка — не колесо, и список показателей у неё свой: ни скорости, ни ШИМ, ни своей батареи у неё нет, поэтому в добавление попадает только строка «Зарядка» из таблицы выше. Плитки называют её собственные датчики: «Мощность зарядки», а не «Мощность АКБ», «Температура зарядного», а не «Температура контроллера».

Набор зависит и от модели зарядного: целевое напряжение передаёт СКАТ, у HW Smart Charger такого показателя нет, и в списке добавления он у него не появится.

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

Настройки у зарядного свои, и экран настроек у него тоже свой — колёсных разделов там нет. У СКАТа из приложения пишутся напряжение и ток второй ступени, максимальное напряжение и ток, напряжение и ток предзаряда и два порога защиты от перегрева; это есть и на Android, и на iPhone. Своих текущих настроек зарядка не сообщает — значение вводится руками с её собственного экрана, проверяется по заводским границам и, если вышло за них, отклоняется, а не подрезается молча. Перед записью приложение переспрашивает: ошибка в напряжении может испортить батарею. У HW Smart Charger записи настроек из приложения нет — только показания.

Несколько рабочих столов#

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

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

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

Боковые метрики закреплённой полосы теперь можно переставлять: в настройках полосы потяните строку за ручку слева.

Закреплённая полоса#

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

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

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

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

Рамка у полосы та же, что у плиток, в любой теме, включая «Для пилотов»: цвет рамки плиток в оформлении меняет и её. У порога тревоги полоса подкрашивается и краснеет так же, как плитки.

Оформление#

Меню ☰ → «Оформление». Тема, акцент, фон приложения и фон плиток выбираются по отдельности, и сверху стоит предпросмотр, на котором сразу видно, что получается.

Тем четыре: системная, светлая, тёмная и «Для пилотов».

Движение#

Там же, под темами, стоит «Движение» — сколько в приложении анимации. Три положения: «Полное», «Спокойное» и «Выключено».

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

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

На iPhone то же самое делает «Уменьшение движения» в настройках универсального доступа: при нём анимаций в приложении нет, какое бы положение ни стояло здесь. Своего замедления у iOS нет, поэтому и принимать нечего.

Перекат цифр#

Там же, под «Движением», — «Перекат цифр». Знаки значения не подменяются, а перекатываются: растущая величина выезжает снизу, падающая — сверху. Смысл не в украшении, а в том, что направление читается боковым зрением, ещё до того, как прочитана сама цифра.

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

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

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

На iPhone перекат рисует сама система, и плавного доезда числа перед печатью там нет. Поэтому в переходе «34.2 → 34.8» тоже едет одна цифра, а вот в «99 → 104» знаки перевернутся разом.

Тема «Для пилотов»#

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

Что в ней по-другому:

  • Чёрное поле, светящиеся знаки. Так устроены приборы в кабине. Днём чёрный уровень экрана всё равно задаёт отражённый свет, а ночью светлый фон — это большая лампа, которая светит обратно в стекло и сбивает привыкшие к темноте глаза.
  • Ни одной серой подписи. Название метрики, единица измерения и числа под шкалой набраны теми же по яркости чернилами, что и значение. Иерархия остаётся, но её несут кегль и начертание, а не угасание в фон.
  • Красный — за пределом, янтарный — предел близко. Цвета серьёзности взяты из кабины: красный требует действия сейчас, янтарный предупреждает. Ни один цвет метрики на полной насыщенности эти два не занимает.
  • Опознание по цвету метрики сохраняется. ПВМ остаётся оранжевым, скорость жёлтой, температура красной — каждый оттенок тот же, что в тёмной теме, только поднят по яркости.
  • Цвет всегда в полную силу. В остальных темах насыщенность значения падает по мере удаления от порога. Здесь — нет: спокойная метрика горит тем же цветом, что метрика у предела, и не бывает бледнее собственной подписи. Состояние несёт не сила цвета, а его смена: у порога цвет уходит в янтарь, за порогом становится красным.
  • Цифры занимают плитку. Кегль значения считается по месту, а не по общему потолку в 25 пунктов, поэтому число растёт вместе с плиткой. Прибор и строку шкалы оно при этом не трогает, а на плитке с графиком не растёт вовсе: плитку выбрали под кривую, и съедать её значению нечем.
  • Цвет не единственный канал. Пробитый порог, кроме цвета, красит рамку плитки, кладёт заливку под значение и ставит зарубку на шкале — так пороги видно и тому, кто цвета различает хуже.

Чего она не делает#

  • Не сокращает палитру до шести цветов. В авиации так принято (FAA AC 25-11B, §5.8.3), но там на экране нет девяти семейств метрик, которые райдер узнаёт по цвету. Опознание для нас важнее: оно нужно каждую поездку, а предел в шесть цветов писался для экрана, который обязаны прочесть с первого взгляда и без ошибки.
  • Не освобождает красный и янтарный только под тревогу. Температура остаётся красной, ПВМ оранжевым, скорость жёлтой, и горят они в полную силу постоянно — иначе метрику не найти глазами. Это самое крупное расхождение темы с приборной практикой, и оно осознанное: тревогу отличает не сила цвета, а его смена, вместе с рамкой плитки и зарубкой на шкале.
  • Не меняет яркость экрана. Тема — это цвета; ночная яркость по-прежнему на телефоне.
  • Не увеличивает подписи. Крупнее становится значение; название метрики и единица по-прежнему считаются от ширины плитки, то есть растут вместе с плиткой, а не с темой.

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

У акцента, фона приложения, фона плиток и рамки в конце ряда образцов есть «+» — свой цвет, любой, в том числе по коду вроде 1F8F84. Свой фон один и тот же в светлой и тёмной теме, поэтому тему он выбирает сам, как чёрный: на тёмном своём фоне приложение становится тёмным, на светлом — светлым, иначе цифры встали бы на фон того же тона. Переключить тему наперекор такому фону можно — тогда фон вернётся к стандартному.

Там же две вещи, которые касаются плиток:

  • Рамка плитки. По умолчанию — тонкая линия темы. Рядом шесть цветов палитры для быстрого выбора и «свой цвет», где цвет подбирается целиком. Тот же цвет подхватывает и закреплённая полоса — она первая карточка того же экрана. Рамка пробитого порога цвет не отдаёт никогда: она сообщает состояние, а не оформление, и остаётся цветом серьёзности.
  • Подложка графика. Её можно выключить — кривая тогда ложится прямо на плитку, без углубления под собой. Шкал это не касается: у шкалы подложка означает «вот докуда не дошло», и без неё заливка перестаёт быть отметкой.
  • Замок масштаба. Щипок по дашборду перестаёт менять сетку. Нужен там, где экран трясётся под рукой: случайное сведение пальцев меняет раскладку и запоминает её, а возвращать прежнюю приходится на ходу.

Пресеты оформления#

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

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

Перезапись пресета#

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

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

Четыре способа передать один и тот же пресет:

  • ссылка — «Поделиться» отправляет её в любой мессенджер; открытая на телефоне с LoEUC, она кладёт пресет в библиотеку. Ссылка короткая: сам пресет лежит на loeuc.ru, ссылка несёт только код. Без сети приложение молча отдаёт длинную самодостаточную ссылку — она несёт пресет целиком, ничего никуда не кладёт и работает так же (см. политику конфиденциальности). У сайта два адреса, и ссылка открывается с любого из них;
  • буфер обмена — «Скопировать ссылку» у отправителя, «Вставить из буфера» у получателя;
  • QR — показать на своём экране, снять штатной камерой второго телефона; отдельный сканер для этого не нужен;
  • файл — «Сохранить всё в файл» кладёт рядом всю библиотеку, это же и перенос на новый телефон.

Каталог дашбордов#

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

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

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

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

Что происходит с чужим колесом#

Телеметрия у колёс разная, и пресет применяется частично, но честно. Перед тем как что-то изменится, приложение показывает отчёт из трёх частей:

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

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

Как выглядит плитка#

Вид плитки вы выбираете сами, для каждого показателя свой. Нажатие на плитку открывает экран этого показателя, кнопка «Плитка» на нём — настройку самой плитки: размер, вид, цвет:

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

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

Там же — знаки после запятой. Настройка на показатель, а не на плитку: выбранное действует везде, где он показан, — в плитке, в закреплённой полосе, в строках кластера, на подписях шкал и в виджете, — и одинаково на всех колёсах. «Авто» означает не ноль знаков, а обычное правило: у большинства величин последняя значащая цифра десятая, у ячейки — тысячная, у процентов и ватт дробной части нет вовсе. Выбранное вручную это правило отменяет целиком, включая привычку печатать трёхзначные числа целыми: напряжение пачки с двумя знаками остаётся 175,93, а не округляется до 176.

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

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

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

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

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

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

Шкала напряжения пачки и шкала ячейки размечены одними и теми же числами — от 3,0 до 4,22 В на ячейку, — поэтому на одном и том же напряжении обе ленты заполнены одинаково. Раньше пачка считалась от 3,5 до 4,2 на ячейку, а ячейка — от 3,0 до 4,5, и рядом в одной плитке они показывали разное: 175,9 В на 42S давало почти полную ленту, а те же 4,186 В на ячейку — четыре пятых. Верх в 4,22, а не 4,2, взят под дозаряд в фазе постоянного напряжения; ячейка, ушедшая выше, остаётся на ленте, а не упирается в край, — перезаряд надо видеть отметкой.

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

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

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

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

Несколько показателей в одной плитке#

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

Строки такой плитки показываются полосами, графиками или колонками — вид выбирается там же, где и для обычной плитки.

Экран показателя#

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

Экран показателя: значение, сводка за поездку, график с курсором и список порогов
Экран показателя. Если плитка кластерная, вверху стоят её соседи — переключение между ними не выходя с экрана.

Быстрые действия#

На дашборде висит точка пульта — по тапу из неё вырастает панель быстрых действий. Что в ней будет, зависит от колеса:

  • ближний свет,
  • дальний свет,
  • автосвет,
  • звуковой сигнал,
  • охрана, если на колесе работает её плагин,
  • профиль настроек колеса,
  • сброс максимумов сессии,
  • сброс пробега в колесе, если колесо это умеет.

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

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

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

Долгое нажатие#

Два самых частых действия на ходу — без раскрытия панели:

  • Зажать точку пульта — переключить свет. Панель при этом не открывается. Это та же одна кнопка света, что на виджете и на часах: у LeaperKim, NOSFET и KingSong она включает и выключает фару, у Begode перебирает три режима по кругу (третий — строб у тех колёс, где он есть), у InMotion переключает ближний. Дальний на двухлучевых колёсах остаётся в панели. На Android колесо не сообщает, какой у него сейчас свет, поэтому первое нажатие может повторить уже включённый режим — тогда зажмите ещё раз.
  • Зажать профиль в панели — открыть настройки колеса. Обычный тап, как и раньше, выбирает профиль.

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

Звуковой сигнал#

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

Кнопка есть только у колёс, для которых команда подтверждена:

  • Begode и KingSong;
  • InMotion V9, V11Y, V12 и V12S, а V11 — с прошивкой главной платы 1.4 и новее. У V13, V14 и P6 сигнала нет: источники расходятся в байтах;
  • старые InMotion V5, V8 и V10 — после того как колесо назвало свою модель;
  • LeaperKim и NOSFET, кроме Sherman, Sherman Max, Abrams и Sherman S: в их прошивке нет обработчика этой команды.

У LeaperKim и NOSFET своей команды сигнала нет. Кнопка шлёт команду, которая ничего в колесе не меняет, в расчёте на писк, которым колесо отвечает на принятую команду. Пищит ли оно на самом деле, на живом колесе ещё не проверено.

Без связи с колесом, в демо и при воспроизведении дампа кнопки сигнала нет: слать некуда.

Автосвет#

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

  • по скорости — упали ниже порога, фара погасла;
  • по простою — колесо стоит дольше заданной задержки;
  • по углу педалей — педали наклонились сильнее порога, по умолчанию 45°.

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

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

Угол педалей сообщают не все колёса — его передают LeaperKim и Inmotion. У остальных пункт недоступен, и это честнее, чем предложить режим, который никогда не сработает. Если колесо угол не сообщает, а режим всё-таки выбран, фара не гаснет: выключать свет вслепую хуже, чем не выключить.

Диагностическая сессия#

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

Сброс максимумов#

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

Сброс пробега в колесе#

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

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

Кнопка есть только у LeaperKim и NOSFET — кроме Sherman, Sherman Max, Abrams и Sherman S, в прошивке которых нет обработчика этой команды. У Begode, KingSong и InMotion такой команды не существует вовсе: их родные приложения «обнуляют поездку» собственным счётом, запоминая показания одометра в момент сброса, а в колесо при этом ничего не отправляют. У NOSFET кнопка работает даже там, где кнопка родного приложения не срабатывает: оно шлёт только старый вариант команды, который прошивка Aero и Aeon не разбирает, а LoEUC шлёт оба.

Без связи с колесом, в демо и при воспроизведении дампа кнопки нет: слать некуда.

Коррекция скорости#

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

Значение задаётся с точностью до десятой процента. Целый процент на сорока километрах в час это 0.4 км/ч — шаг заметнее, чем сама ошибка, которую хочется убрать. Ползунок остался грубым инструментом, а десятые набираются кнопками −0.1 и +0.1 рядом с числом: поймать пальцем десятую долю процента на дорожке ползунка нельзя, и притворяться, что можно, значит обещать точность, которой у жеста нет.

Если вы уже настраивали коррекцию раньше, ваше значение сохранилось как есть — например, бывшие 96 % читаются как 96.0 % и ничего не сбрасывается.

Коррекция запоминается отдельно для каждого колеса. У разных колёс разная одометрия, и одно значение на всё приложение было бы неверным для обоих.

Максимум шкалы скорости#

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

Максимум тоже запоминается отдельно для каждого колеса.

Скорость по GPS#

Если включена запись GPS, на панель можно вынести показатель «Скорость по GPS». Он берётся с приёмника телефона, а не с колеса, и коррекция скорости к нему не применяется.

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

Калибровка скорости по GPS#

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

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

Поправка знает не только множитель#

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

Поэтому наблюдения складываются по полосам скорости, шириной десять километров в час, и в каждой полосе считается своя ошибка. Если полос набралось хотя бы три и они раскинуты хотя бы на 20 км/ч, приложение строит по ним прямую и предлагает поправку из двух чисел — множителя и смещения. Карточка тогда показывает, на сколько колесо врёт на 20, 30, 45, 60 и 80 км/ч: разные цифры в этой строке и есть причина, по которой одного множителя мало.

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

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

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

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

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

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

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