Получение данных JSON

С RedBox OBD WiFi можно получать данные в формате JSON, отправив ему GET запрос http://$addr/console/fetch?q=%2Fq%0D%0A

Вернутся данные следующего вида:

{"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 можно отбросить, убедившись в их наличии, предпоследний элемент — контрольный символ, если он не равен «~» — данные не валидны и их нужно проигнорировать. Далее строку можно преобразовать в массив по символу «;»

Элемент массиваСенсорФормула рассчётаЕдиница измерения
0ECTECT-40°C
1EOTEOT-40°C
2IATIAT-40°C
3ATFATF-40°C
4AATAAT-40°C
5EXTEXT-40°C
6SPDкак естьkm/h
7RPMкак естьrpm
8MAPкак естьkpa (абсолютное давление)
9MAFMAF*2g/sec
10TPS (% открытия дросселя)(TPS/2)*255/73%
11IGN (угол опережения зажигания)(IGN+48)/2-64°
12INJ (время впрыска форсунок)INJ*0.125ms
13INJD (загрузка форсунок)как есть%
14IAC (% открытия РХХ)(IAC*100)/125%
15AFRAFR/100a/f
16O2SO2S/200volt
17O2S2O2S2/200volt
18F1 (битовые данные OBD1)bit encoded (см. таблицу F1)
19F2 (битовые данные OBD1)bit encoded (см. таблицу F2)
20EGTкак есть°C
21EOPEOP/100bar
22FPFP/100bar
23ERT (время работы двигателя с момента запуска)как естьseconds
24MHS (моточасы)как естьminutes
25BSTD (duty соленоида турбо-компрессора)как есть%
26FANкак есть% (ШИМ)
— (Режим переключателя)
27GEARкак есть
28BS1как есть
29BS2как есть
30PG0как есть
31PG1как есть
32VLTкак естьvolt
33RLC (код отката)bit encoded (см. таблицу RLC)
34RLCL (последний код отката)bit encoded (см. таблицу RLC)
БитЗначение
0Холодный двигатель
1Холодный запуск
4Детонация
5Обратная связь по датчикам кислорода
6Дополнительное обогащение
Таблица F1
БитЗначение
0Стартер On/Off
1Дроссель Open/Closed
2Кондиционер On/Off
3Нейтраль/паркинг
4O2S1 Lean/Rich
5O2S2 Lean/Rich
Таблица F2
БитЗначение
0Детонация
1Превышение установленной температуры выхлопных газов или неисправность сенсора
2Низкое давление масла, падение давления масла под нагрузкой или неисправность сенсора
3Низкое давление топлива или падение давления топлива под нагрузкой или неисправность сенсора
4Превышение установленной температуры масла или неисправность сенсора
5Превышение установленной температуры антифриза или неисправность сенсора
6Передув
7Обеднение смеси выше установленной границы или неисправность сенсора
8Превышение установленной температуры впуска или неисправность сенсора
9Неисправность MAP сенсора
10Неисправность source сенсора фан-контроллера
11Превышение установленной температуры ATF или неисправность сенсора
12Неисправность сенсора AAT
13Неисправность сенсора EXT
14Низкое напряжение борт-сети
15Отсутствие сигнала тахометра
Таблица RLC