
Обычно в этом канале я пересказываю, что пишут о наших «китайцах» там, где они ездят массово и давно, — в Австралии, Малайзии, самом Китае. Сегодня выпуск другой: из собственного гаража.
Я инженер, девятнадцать лет работаю с расчётами. Машина у меня — Haval F7x с двухлитровым турбомотором на 190 сил, если верить каталогу Drom для российской версии. Штатная приборка в нём красивая, но малоинформативная, и в какой-то момент я сделал себе собственную: написал Android-приложение, которое читает данные прямо с шины автомобиля и выводит их на отдельный экран. Расскажу, что из этого вышло и что я узнал о своей машине.
Штатная панель отдаёт водителю от силы полтора десятка величин: скорость, обороты, топливо, температуру, пробег, средний расход. Ещё есть пиктограммы, но это уже не данные, а сигналы «что-то случилось».
При этом сам автомобиль знает о себе на порядки больше. В обзорах автомобильной электроники — например, у компании Total Phase — пишут, что в современной машине от 70 до 100 электронных блоков управления, а по внутренним шинам ходят тысячи сигналов. Исследователи, работавшие с реальными CAN-данными, называют те же порядки.
В моём F7x я насчитал 838 доступных свойств — столько позиций в референсном списке параметров, которые бортовая система умеет отдавать. Восемьсот тридцать восемь. Водителю из них показывают единицы процентов.
Технически это Android-приложение. Данные оно берёт через системный сервис с названием IntelligentVehicleControl — штатный механизм, через который головное устройство общается с автомобилем. Для этого нужен технический доступ уровня разработчика; подробности я сознательно опускаю — это рассказ о данных, а не инструкция.
Картинка уходит на отдельный дисплей через механизм Presentation: так в Android приложение рисует на втором экране независимо от основного. Все раскладки приборки отрисованы кодом, без готовых виджетов. Сейчас их 56 — от классических круглых шкал до чисто цифровых экранов под трассу, город и диагностику. Пятьдесят шесть не потому, что все необходимы: когда каждая шкала — твой собственный код, остановиться трудно.
Из 838 свойств на экран я вывел 28 — те, что мне реально нужны. Это температуры узлов, давления, реальный расход топлива, состояния агрегатов, напряжение бортсети.
Первое — температуры. Штатный указатель охлаждающей жидкости по сути индикатор «норма или не норма»: он стоит на месте, пока реальная температура гуляет в широком диапазоне. По шине видно точное значение в градусах: как мотор прогревается, когда открывается термостат, что происходит в пробке жарким днём.
Второе — реальный расход. Штатный борткомпьютер усредняет и сглаживает, а по шине видна живая величина, и по ней быстро понимаешь цену каждого обгона и каждого зимнего прогрева.
Третье — состояния агрегатов. Машина непрерывно сообщает, в каком режиме что работает, и заранее видно то, о чём штатный экран промолчит до последнего.
Четвёртое — напряжение бортсети. Параметр скучный ровно до тех пор, пока не увидишь его в динамике: слабеющий аккумулятор на графике заметен за недели до того утра, когда машина откажется заводиться.
Злого умысла тут, на мой взгляд, нет — есть экономика и осторожность. Приборка проектируется под массового водителя: каждая лишняя цифра — лишний вопрос в сервисе. Указатель, спокойно стоящий в середине шкалы, для производителя удобнее честного графика.
Вторая причина — унификация. Одна и та же панель ставится на разные рынки и комплектации и показывает гарантированный минимум. Всё остальное машина знает, пишет в шину — и молчит.
Дешёвый OBD-адаптер решает проблему лишь отчасти: стандартный диагностический разъём отдаёт несколько десятков параметров, в основном про мотор и выхлоп. Сотни остальных свойств живут глубже — на внутренней шине.
Мой список из 28 параметров — субъективный, под мои задачи. Напишите в комментариях, что вывели бы на приборку вы, если бы могли выбрать любой параметр: температуру масла, напряжение бортсети, состояние муфты полного привода, что-то ещё. Самые частые ответы возьму в работу — и покажу раскладку номер 57.