С RedBox OBD WiFi (RA150) можно получать данные в формате JSON, отправив ему GET запрос http://$addr/fetch
Или можно подключиться к WebSocket серверу RA150 ws://$addr:81/ws (wss://$addr/ws если RA150 находится за reverse-proxy с SSL сертификатом) и после подключения отправлять любые бинарные сообщения длиной 1 байт. WebSocket ограничен максимум двумя подключениями.
Частоту опроса не имеет смысл устанавливать выше 100Гц, Fetch API упрется в накладные расходы HTTP протокола задолго до 100Гц, WebSocket в максимальную частоту выдачи данных MCU.
Вернутся данные следующего вида:
{"len":101, "text": "[;69;69;0;0;0;0;0;2350;223;0;0;0;0;0;0;0;0;0;0;0;0;0;0;38708;3849;60;0;255;0;0;0;0;13.18;0;0;~;]"}
Ключ len должен быть больше 0. Первый и последний элементы строки ключа text можно отбросить, убедившись в их наличии, предпоследний элемент — контрольный символ, если он не равен «~» — данные не валидны и их нужно проигнорировать. Далее строку можно преобразовать в массив по символу «;»
| Элемент массива | Сенсор | Формула рассчёта | Единица измерения |
|---|---|---|---|
| 0 | ECT (Темп. воды) | ECT-40 | °C |
| 1 | EOT (Темп. масла) | EOT-40 | °C |
| 2 | IAT (Темп. впуска) | IAT-40 | °C |
| 3 | ATF (Темп. трансмиссии) | ATF-40 | °C |
| 4 | AAT (Темп. внешняя) | AAT-40 | °C |
| 5 | EXT (Темп. дополнительная) | EXT-40 | °C |
| 6 | SPD (Скорость) | как есть | km/h |
| 7 | RPM | как есть | rpm |
| 8 | MAP | как есть | kpa (абсолютное давление) |
| 9 | MAF | MAF*2 | g/sec |
| 10 | TPS (% открытия дросселя) | (TPS/2)*255/73 | % |
| 11 | IGN (угол опережения зажигания) | (IGN+48)/2-64 | ° |
| 12 | INJ (время впрыска форсунок) | INJ*0.125 | ms |
| 13 | INJD (загрузка форсунок) | как есть | % |
| 14 | IAC (% открытия РХХ) | (IAC*100)/125 | % |
| 15 | AFR (Смесь A/F) | AFR/100 | a/f |
| 16 | O2S (Кислородник 1) | O2S/200 | volt |
| 17 | O2S2 (Кислородник 2) | O2S2/200 | volt |
| 18 | F1 (битовые данные OBD1) | bit encoded (см. таблицу F1) | — |
| 19 | F2 (битовые данные OBD1) | bit encoded (см. таблицу F2) | — |
| 20 | EGT (Темп. Выхлопных газов) | как есть | °C |
| 21 | EOP (Давление масла) | EOP/100 | bar |
| 22 | FP (Давление топлива) | FP/100 | bar |
| 23 | ERT (время работы двигателя с момента запуска) | как есть | seconds |
| 24 | MHS (моточасы) | как есть | minutes |
| 25 | BSTD (duty соленоида турбо-компрессора) | как есть | % |
| 26 | FAN (Вентиляторы) | как есть | % (ШИМ) 1/0 (Режим переключателя) |
| 27 | GEAR (Передача) | как есть | — |
| 28 | BS1 (Состояние входа. 0/1 GND/+12 (зависит от подтяжки) | как есть | — |
| 29 | BS2 (Состояние входа. 0/1 GND/+12 (зависит от подтяжки) | как есть | — |
| 30 | PG0 (Логический выход 0) | как есть | — |
| 31 | PG1 (Логический выход 1) | как есть | — |
| 32 | VLT (Напряжение борт. сети) | как есть | volt |
| 33 | RLC (код отката) | bit encoded (см. таблицу RLC) | — |
| 34 | RLCL (последний код отката) | bit encoded (см. таблицу RLC) | — |
| Бит | Значение |
|---|---|
| 0 | Холодный двигатель |
| 1 | Холодный запуск |
| 4 | Детонация |
| 5 | Обратная связь по датчикам кислорода |
| 6 | Дополнительное обогащение |
| Бит | Значение |
|---|---|
| 0 | Стартер On/Off |
| 1 | Дроссель Open/Closed |
| 2 | Кондиционер On/Off |
| 3 | Нейтраль/паркинг |
| 4 | O2S1 Lean/Rich |
| 5 | O2S2 Lean/Rich |
| Бит | Значение |
|---|---|
| 0 | Детонация |
| 1 | Превышение установленной температуры выхлопных газов или неисправность сенсора |
| 2 | Низкое давление масла, падение давления масла под нагрузкой или неисправность сенсора |
| 3 | Низкое давление топлива или падение давления топлива под нагрузкой или неисправность сенсора |
| 4 | Превышение установленной температуры масла или неисправность сенсора |
| 5 | Превышение установленной температуры антифриза или неисправность сенсора |
| 6 | Передув |
| 7 | Обеднение смеси выше установленной границы или неисправность сенсора |
| 8 | Превышение установленной температуры впуска или неисправность сенсора |
| 9 | Неисправность MAP сенсора |
| 10 | Неисправность source сенсора фан-контроллера |
| 11 | Превышение установленной температуры ATF или неисправность сенсора |
| 12 | Превышение установленной температуры AAT или неисправность сенсора |
| 13 | Превышение установленной температуры EXT или неисправность сенсора |
| 14 | Низкое или слишком высокое напряжение борт-сети |
| 15 | Отсутствие сигнала тахометра |