Итак, продолжаем.
Чтоб магнитола видила дисплей в шину нужно слать ID 0x167.
А чтоб сбросить трип нужно слать в этот ID в нулевой байт 8 и состояние дисплея.
Тоесть.
Дисплей без удержания кнопки трипа 0x9,0x6,0xFF,0xFF,0x7F,0xFF,0x0, 0x0
А с удержанием кнопки 0x89,0x6,0xFF,0xFF,0x7F,0xFF,0x0, 0x0
Сама кнопка находится в ID 0x221 ,байт 0 бит 3:
Код выглядит так:
PHP код:
unsigned char DisplayTripReset[8] = {0x89,0x6,0xFF,0xFF,0x7F,0xFF,0x0, 0x0};
if (bitRead(buf[0],3) == 1) KeyCount = KeyCount + 1;
if (bitRead(buf[0],3) == 0) KeyCount = 0;
if (KeyCount > 1) CAN.sendMsgBuf(0x167, 0, 8, DisplayTripReset);
При удержании кнопки этот ID повторяется раз в секунду!
Надо ещё проверить реакцию на 8А, а то реальный дисплей только при значении А и С отзывается на кнопку трипа.
Но похоже важен только последний бит в 0 байте.
Как вы уже поняли я это оттестировал в машине.
Всё работает. Осталось найти меню самой машины и проект с заменой дисплея будет завершён.
Дальше буду делать умный БП для планшета, но это уже не относиться к данной теме.