OBD Данные автомобиля
Считайте обороты автомобиля, температуру охлаждающей жидкости, температуру масла, топлива и другие параметры через совместимый адаптер Bluetooth. В этой статье описаны условия считывания, настройка параметров, обновление данных и правила использования показаний в приборах и отключениях.
Параметры автомобиля и результаты считывания
OBD используется для чтения данных, предоставленных контроллером автомобиля. Контроллер автомобиля, также называемый ECU, отвечает за двигатель, трансмиссию и другие системы; CapDrive отправляет запросы этим контроллерам через адаптер и преобразует полученные данные в показания.
«Параметр» в приложении — это часть данных, которые необходимо считывать и отображать, например частота вращения двигателя (об/мин), температура охлаждающей жидкости или состояние. Он содержит запросы на чтение, формулы преобразования и единицы измерения. Числовые параметры можно использовать для чисел, прогресса или кривых; Параметры состояния могут отображаться как D, P и т. д. посредством текстового отображения.
Например, параметр температуры охлаждающей жидкости можно получить с помощью запроса 0105 на получение байта данных A и преобразовать согласно A - 40. Если десятичное значение возвращаемого байта — 123, результат — 83 °C. Чтобы получить полезные показания, метод подключения, определение запроса и правила преобразования должны быть правильными.
Какие параметры поддерживает автомобиль, зависит от модели, года выпуска, системы питания и состояния контроллера. Можно прочитать только те значения, которые фактически предоставлены транспортным средством, и изменение имени или единиц измерения не увеличивает возможности данных самого транспортного средства.
Объем поддержки и условия использования
Для подключения автомобиля OBD требуются CapDrive Plus, Адаптер Bluetooth с низким энергопотреблением (BLE), поддерживающие инструкции ELM327, и разрешения Bluetooth на iPhone. Классические адаптеры Bluetooth и Wi-Fi в настоящее время не поддерживаются.
Только после того, как адаптер будет подключен к интерфейсу OBD автомобиля и включен в соответствии с требованиями автомобиля, приложение сможет взаимодействовать с автомобилем. Определенные параметры требуют, чтобы автомобиль находился в определенном состоянии, например, когда контроллер включен, двигатель работает или соответствующая система работает. Включение «Bluetooth» в название адаптера само по себе не доказывает, что он соответствует BLE и директиве.
Показания OBD, Не нужно сначала начинать путешествие, можно просмотреть и протестировать в списке параметров или в редакторе параметров. От того, началась ли поездка по мобильному телефону, не зависит, будет ли автомобиль возвращать температуру охлаждающей жидкости, скорость (об/мин) и другие параметры.
CapDrive поддерживает настройку запросов на чтение для шестнадцатеричных сервисов 01, 21, 22. Для обычного использования можно использовать предустановку, соответствующую автомобилю; конкретный адрес и формула запроса зависят от предустановки или определения параметров автомобиля.
Подключение и управление устройствами
Запись: Ещё (…) → Подключение OBD автомобиля. На странице устройства отображаются ближайшие адаптеры и сохраненные устройства, а конфигурация параметров адаптера сохраняется в настройках устройства.
Первое подключение и повторное подключение
При первом подключении приложение установит связь Bluetooth, инициализирует адаптер, определит протокол автомобиля и запросит у автомобиля отчет о поддерживаемых стандартных параметрах. В случае успеха инициализируемые стандартные параметры будут добавлены в список устройств. Имеют ли стандартные параметры значения в текущем состоянии, зависит от фактических результатов считывания.
При повторном подключении существующего устройства оно продолжит использовать исходную конфигурацию, включая измененные параметры и активно очищенные списки. После удаления параметра повторное подключение не добавит его обратно. Если необходимы дополнительные показания, можно импортировать предварительно заданные или новые параметры.
Текущий источник данных
«Текущее устройство» относится к адаптеру, который передает данные автомобиля в CapDrive. В качестве текущего источника данных одновременно можно использовать только одно устройство. Параметры и настройки каждого устройства сохраняются независимо; при переключении на другое устройство ссылки на параметры предыдущего устройства не будут автоматически использоваться.
При отключении конфигурация сохраняется. Игнорировать устройство удалит конфигурацию и кэш устройства. Если вам необходимо перенести параметры, вы можете экспортировать конфигурацию, а затем импортировать ее в целевое устройство; для настроенных инструментов необходимо повторно выбрать параметры целевого устройства.
Предварительные настройки параметров и файлы конфигурации
По умолчанию используется набор уже написанных конфигураций чтения параметров, что исключает необходимость поэлементного заполнения запросов и формул. Стандартная предустановка OBD-II предоставляет стандартные параметры, а предустановка модели транспортного средства предоставляет определения параметров для соответствующей модели транспортного средства. При выборе предустановки модели следует проверить год модели и версию мощности.
Импортировать на указанное устройство
Откройте библиотеку конфигурации в нижней части списка параметров устройства. Загрузка в приложении приведет к входу в интерфейс импорта устройства; загрузив файл JSON через браузер, можно выбрать Импорт конфигурации в меню настроек устройства.
По умолчанию список импорта не отмечен, и сохраняются только явно выбранные параметры. Вы можете сначала проверить название и текущие показания, а затем проверить конфигурацию через шестеренку справа. Закрытие интерфейса импорта не сохранит неподтвержденные черновики.
Дубликаты и обновления конфигурации
Параметры, которые уже имеют одинаковый метод чтения, правило декодирования и единицу вывода, будут помечены как дубликаты и продолжат использовать исходный идентификатор параметра. Изменение только отображаемого имени не делает тот же параметр новым читаемым элементом.
Запрос может предоставить несколько параметров, например две температуры в одном ответе; одно и то же имя может также исходить от разных контроллеров или разных формул, поэтому дубликаты нельзя оценивать только по имени. Элементы с измененными правилами запроса или декодирования импортируются как новые параметры и не перезаписывают старые элементы только по имени.
При импорте в другой адаптер устанавливается собственная ссылка на параметр целевого устройства. Пользовательский инструментарий должен повторно выбрать соответствующие параметры целевого устройства во входной привязке; сохраните входной идентификатор неизменным и не нужно изменять код.
Ограничения файла
В конфигурации используется JSON, идентификатор формата — capdrive.obd, а appVersion — необходимая версия приложения; текущий номер версии приложения записывается при экспорте. Если версии недостаточно, вам будет предложено выполнить обновление. Один файл может содержать до 5 MiB и содержать до 3000 параметров. В файле сохраняется прочитанная конфигурация, он не содержит информации о Bluetooth-соединении устройства и не гарантирует, что все элементы будут доступны для чтения на целевом автомобиле.
Конфигурация и декодирование параметров
Откройте редактор через шестеренку справа от параметров. Ниже описаны поля в порядке «что считать с автомобиля → как конвертировать → как определить достоверность». Проверить чтение использует текущую конфигурацию в редакторе для проверки результатов; после нажатия кнопки «Сохранить» изменения становятся сохраненной конфигурацией устройства.
Название и частота обновления
Имя используется для идентификации параметров автомобиля. Внутренние идентификаторы автоматически управляются приложением, не заполняются в редакторе параметров и не запрашиваются PID; экспортированные настройки не содержат собственных идентификаторов устройства. Скрипт инструмента использует свой собственный определенный входной идентификатор и выбирает параметры транспортного средства посредством привязки ввода.
Интервал чтения (секунды) заполняется в секундах и имеет диапазон 0.3–99999. Например, 1 секунда означает, что целевой интервал запроса составляет 1 секунду. На фактическое обновление также влияют ответы автомобиля, другие запросы и текущие требования к чтению. Видимые элементы в списке параметров, выбор приборов и использование данных отключения создают требования к чтению; простой импорт параметров не приводит к тому, что весь список всегда будет опрашиваться с фиксированной частотой. Параметры, которые используют один и тот же запрос, могут быть повторно использованы в ответе.
запросить настройки
| Поле | Значение и способ заполнения |
|---|---|
| Служить | Категория запроса, используя шестнадцатеричный номер. Например, для 0105 запрошена служба 01. |
| PID | Номер элемента данных в этом сервисе. Например, PID 0105 — это 05; 01 и 21 используют двухзначный PID, а 22 использует четырехзначный PID. |
| Запрос CAN ID | Адрес контролера транспортного средства, получившего запрос. Если оставить это поле пустым, протокол использует функциональную адресацию; соответствующие значения по умолчанию обычно должны сохранять исходный адрес. |
| Ответ на фильтрацию CAN ID | Укажите, какой ответ контроллера используется, чтобы избежать выбора неправильного источника, когда несколько контроллеров возвращают данные. |
| Расширенный адрес назначения, расширенный адрес получения | Дополнительная конфигурация адресации связи для использования протоколами транспортных средств, которые этого требуют. |
| Параметры таймаута ответа | Шестнадцатеричная конфигурация тайм-аута, используемая адаптером, не заполняется в секундах; это другая настройка, чем интервал чтения. |
| Пользовательский контроль потока CAN | Используется для запросов, требующих определенной конфигурации управления потоком, как определено соответствующим транспортным средством. |
Формулы преобразования, порядок байтов и единицы измерения
Ответ транспортного средства обычно представляет собой байты данных. A представляет первый байт данных, B представляет второй и т. д., исключая заголовок протокола. Формула поддерживает арифметические, побитовые операции, сравнения, логические операции и условные выражения; это не сценарий, который может вызывать произвольные функции JavaScript.
Например, температура охлаждающей жидкости использует A - 40; стандартная частота вращения двигателя (об/мин) использует (A * 256 + B) / 4. Если A = 26, B = 248, последний получает 1726 rpm. Формула параметра должна соответствовать значению байтов, возвращаемых запросом.
Порядок байтов определяет, как интерпретируются многобайтовые поля: с прямым порядком байтов первым помещается старший байт, а с прямым порядком байтов первым ставится младший байт. Приложение выполняет числовую формулу после настроенного порядка обработки, и формула не должна повторно менять местами байты.
Единицу результата формулы следует отличать от единицы отображения. Изменение имени пользовательской единицы меняет только метку, но не изменяет значение формулы; при выборе совместимой единицы отображения для существующей стандартной физической величины приложение может выполнить соответствующее преобразование. Пожалуйста, проверьте исходные единицы измерения, использованные в формуле, чтобы избежать повторных преобразований.
Условия чтения и действительный диапазон
| Конфигурация | Фактический эффект |
|---|---|
| Минимальное количество байт ответа | Исключите возвраты недостаточной длины, чтобы предотвратить продолжение вычислений при отсутствии байтов. |
| Читать условия | Условие оценивается по необработанным байтам ответа, например A != 0. Это чтение недоступно, если результат равен нулю, отсутствуют байты или вычисление не удалось. |
| минимальное значение, максимальное значение | Зафиксируйте числовые результаты. Например, если допустимый диапазон настроен как 0–100, 120 будет отображаться как 100. Максимальное значение должно быть больше минимального значения; если минимальное значение не установлено, оно будет считаться нулевым. Только установка минимального значения не будет ограничивать амплитуду отдельно. |
| Эффективный нижний предел, эффективный верхний предел | Недействительные результаты исключаются, как и сами границы. Например, если верхний предел равен 100, результаты, превышающие или равные 100, недоступны. |
Перед декодированием ответ проходит проверку длины и условия чтения. Сначала ограничивается цифровой результат, а затем проверяются действующие верхний и нижний пределы; показания не выводятся, если невозможно получить конечное значение. Условие чтения использует необработанный ответ перед преобразованием порядка байтов.
отображение текста
Сопоставление текста отображает значение, полученное по формуле, в виде текста, например 1 → D. Ключ поддерживает десятичные и отрицательные числа и должен быть уникальным конечным значением. 1.5 и 1.50 представляют один и тот же элемент. Литералом может быть пустая строка.
При попадании в сопоставление возвращается соответствующая строка; если он не достигнут, число возвращается, когда Возвращать исходное число при отсутствии соответствия включен, и null, когда он выключен. Этот непревзойденный параметр применяется при наличии сопоставления. Текст попадания не будет продолжать выполнять цифровое обрезку.
Таким образом, один и тот же параметр может возвращать числовое, текстовое или нулевое значение, а код инструментирования должен обрабатывать фактический тип параметра. При возникновении ситуации «некоторые значения могут отображаться, а другие значения исчезают» следует проверить, совпадает ли сопоставление и не совпадают ли настройки.
Сохранение и сообщение об ошибке
В неверных конфигурациях будут указаны поля и причины, а затем сохранены или протестированы после исправления. PID услуг 01 и 21 — двузначное шестнадцатеричное число, 22 — четырехзначное; CAN ID состоит из 3 или 8 цифр, а параметры расширенного адреса и времени ожидания — из двух цифр. Интервал чтения составляет 0.3–99999 секунд, минимальное количество байтов ответа — целое число 0–4096, а формула и условия чтения — до 1024 UTF-8 байтов каждое. Значение должно быть ограничено, минимальное значение не может быть больше максимального значения, а допустимый нижний предел должен быть меньше допустимого верхнего предела; ключ сопоставления текста не может повторяться.
Замена данных о поездке
Заменить данные поездки заставляет базовое чтение использовать указанный параметр OBD. Например, если указать параметр скорости транспортного средства как «Скорость», поле базовой скорости, связанные встроенные датчики и записи поездок могут использовать это показание транспортного средства.
Альтернативные цели включают скорость, продольную перегрузку, боковую перегрузку, тангаж и крен. Принимает km/h или mph для скорости, g или m/s² для ускорения и градусы или радианы для угла. Приложение преобразует единицы измерения по мере необходимости для цели.
Для замены необходимо, чтобы параметрам были присвоены соответствующие номера, единицы измерения и диапазоны. Параметры с отображением текста нельзя использовать для замены штрихов; исходные результаты, выходящие за пределы диапазона конфигурации, также будут отклонены, а предельные значения после ограничения не будут считаться действительными измерениями хода.
Используйте этот источник при наличии действительных показаний OBD; вернуться к мобильным данным, если показания отсутствуют, просрочены или недействительны. Это базовое показание может оставаться пустым, если мобильный источник также недоступен. Обычный импорт параметров не определяет автоматически цели замены.
Такие параметры, как температура охлаждающей жидкости, скорость вращения (об/мин) и т. д., можно отображать отдельно в пользовательском приборе, а их ссылки OBD можно использовать напрямую без настройки замены хода.
Доступ к пользовательскому инструменту
Нажмите на шестеренку рядом с Настройки прибора → Привязки входных данных, чтобы ввести Настройка параметров и добавить вход Данные OBD, например идентификатор coolant. Вернитесь к привязке ввода и выберите для него параметр «Температура охлаждающей жидкости» в разделе «Устройства». Скрипт читает $data.current.coolant; UUID параметров автомобиля не нужно прописывать в код.
Чтения включают value и unit, например { value: 83, unit: '°C' }. Текстовые сопоставления также могут возвращать строки, тип которых следует проверить перед форматированием числа. Если он не связан, весь входной файл — null; когда он привязан, но временно не читается, value становится null, а unit по-прежнему принимает единицу конфигурации.
После импорта чужих работ или смены адаптера повторно привяжите существующие входные данные, чтобы продолжить использование кода. Ожидаемый тип используется для подсказок, возвращаемое значение транспортного средства не приводится. Предварительный просмотр использует аналоговый вход, и при подтверждении реальных данных автомобиля следует проверить текущее устройство и Проверить чтение.
Достоверность данных и диагностика неисправностей
Статус чтения
Соединение действительно, ответ получен и показания действительны — это три разных условия. Ответ может не дать полезного значения из-за недостаточной длины, невыполненных условий чтения, недопустимой формулы или ошибки сопоставления текста.
Показания времени выполнения имеют срок годности. После отключения, сбоя чтения или истечения срока действия данных замена прибора и отключения не должна продолжать использовать старое значение в качестве текущих действительных данных. В списке параметров может сохраняться последнее успешное чтение для демонстрационных целей, которое не соответствует действительным выходным данным в реальном времени; текущий результат запроса можно проверить с помощью Проверить чтение.
Ноль является допустимым значением, а нулевое значение означает, что в данный момент доступных показаний нет. Пустая строка в текстовой карте — это совпавший текстовый результат, который также отличается от отсутствующего теста.
Найдите по уровню неисправности
| Производительность | Соответствующий объем проверки |
|---|---|
| Не удалось обнаружить устройство | Питание от адаптера, тип BLE, iPhone Bluetooth и разрешения для приложений. |
| Bluetooth подключен, но инициализация не удалась | Поддержка команд адаптера, состояние связи с автомобилем и идентификация протокола. |
| Список параметров пуст | Сохраненная конфигурация текущего устройства, результаты первого запроса возможностей и информация о том, был ли список активно очищен. Повторное подключение не приведет к автоматическому восстановлению удаленных элементов. |
| Нет достоверных показаний для одного параметра. | Адрес запроса и PID, длина ответа, условия чтения, формула декодирования, отображение диапазона и текста. |
| Значение существует, но значение или единица измерения ненормальны. | Предварительно установите, соответствуют ли соответствующая модель автомобиля, порядок байтов, формула и единица измерения. |
| В списке отображается старое значение, счетчик не имеет значения | Истек ли срок действия текущего чтения или его не удалось прочитать; кэш отображения списка не означает, что данные в реальном времени действительны. |
| Имеются действительные показания, но пользовательский счетчик не отображается. | Текущее устройство, выбранные параметры, выражения и обработка кодом чисел, литералов и нулевых значений. |
| Замена маршрута не вступила в силу. | Цели замены, типы значений параметров, совместимость единиц измерения и диапазона, а также достоверность показаний. |
Обратная связь о проблеме может включать следующую информацию, позволяющую различать проблемы с подключением, проблемы с конфигурацией и проблемы с отображением:
- Модель, год, версия мощности и модель адаптера.
- Текущее устройство, имена предустановок и параметров.
- Результаты тестового чтения или конкретные ошибки.
- Влияет ли это на все параметры или на отдельные параметры, и возникает ли проблема в списке параметров, замене отключения или пользовательском приборе.