(unsigned long)data[0] << 16)
Вот оно что!
я писал
(int)buf[2] << 16 | (int)buf[3] << 8| buf[4]
и у меня выходила охинея
Просто данные не входили!
Во блин!
Зато пока искал причину- нашёл где расход на 100км не моментальный.
2A1 байты 3 и 4
Почти всё отискал

Осталось найти где данные от кнопок стрелочек магнитолы в режиме отличного от меню
и данные которые передаются текстом о названии радиостанции и данные которые она передаёт