![]() |
![]() |
#1 |
Новый Пользователь
![]() Регистрация: 06.08.2015
Возраст: 36
Регион: 43
Сообщений: 12
![]() |
![]() Ребята может кто сталкивался, имеется volvo s80 2008 год, при нажатии любой кнопки на руле связанной с управлением магнитолой (например переключить следующую песню или включить предыдущую ) выводится одно и тоже сообщение. Если нажимаю кнопку на магнитоле, то последнии два значения в CAN сообщение меняются, т.е сообщение для каждой кнопки уникально. Пользуюсь can-bus shield от elekfreks и arduino, кнопки ловлю самопальным снифером.
Последний раз редактировалось heilwood; 06.08.2015 в 21:10. |
![]() |
![]() |
![]() |
#2 |
Новый Пользователь
![]() Регистрация: 05.08.2015
Возраст: 42
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5
Сообщений: 29
![]() ![]() ![]() |
![]() Привет! Что-то слабо верится. Походу либо библиотека для ардуины дурит, либо сам сниффер, либо не тот ID смотришь
![]() |
![]() |
![]() |
![]() |
#3 | |
Новый Пользователь
![]() Регистрация: 06.08.2015
Возраст: 36
Регион: 43
Сообщений: 12
![]() |
![]() Остальные кнопки на руле с уникальном ID, проверял на круиз контроле. На arduino в serial monitor выдается тоже самое, что и в мой сниффер, проверял. Сообщение фильтруется по CAN-ID и появляется исключительно при нажатии кнопки, это тоже точно, тогда вопрос, может ли быть на одну кнопку два сообщения? И второй вопрос кто бы мог посмотреть мой arduino sketch, может проблема в нём?
Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Новый Пользователь
![]() Регистрация: 05.08.2015
Возраст: 42
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5
Сообщений: 29
![]() ![]() ![]() |
![]() Все похоже на рабочий экземпляр. Может при нажатии кнопки на руле генериться несколько сообщений с разными ID? Одно, которое ты поймал и еще одно - в котором от нажатия кнопки что-то меняется?
А по скетчу - с CAN удобнее работать в шестнадцатиричном или в двоичном виде. Мне кажется нагляднее... Но дело вкуса... мой вариант примерно такой: unsigned char canId = 0; if(CAN_MSGAVAIL == CAN.checkReceive()) { canId = CAN.getCanId(); CAN.readMsgBuf(&len, rxBuf); Serial.print(canId, HEX); Serial.print("#"); // CAN ID for(int i = 0; i<len; i++) { if(rxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero { Serial.print("0"); } Serial.print(rxBuf[i], HEX); Serial.print("#"); } Serial.println(); } |
![]() |
![]() |
![]() |
#5 |
Пользователь
![]() Регистрация: 29.07.2015
Регион: 64
Машина: VW Tiguan
Сообщений: 89
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() heilwood, тип canId в коде принимает значения максимум 255, в принципе криминала нет в данном случае, просто будет криво отображать ID с номером выше 0xFF. А вот если надо отфильтровать по ID, то будет косяк, все что выше 0xFF не поймаешь. Сделай его unsigned long.
|
![]() |
![]() |
![]() |
#6 |
Новый Пользователь
![]() Регистрация: 05.08.2015
Возраст: 42
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5
Сообщений: 29
![]() ![]() ![]() |
![]() Точно, точно! не char, а long! Копи-пейст, блин!
|
![]() |
![]() |
![]() |
#7 |
Новый Пользователь
![]() Регистрация: 06.08.2015
Возраст: 36
Регион: 43
Сообщений: 12
![]() |
![]() спасибо ребята, завтра попробую
|
![]() |
![]() |
![]() |
#8 |
Новый Пользователь
![]() Регистрация: 06.08.2015
Возраст: 36
Регион: 43
Сообщений: 12
![]() |
![]() не помогло к сожалению
|
![]() |
![]() |
![]() |
#10 |
Новый Пользователь
![]() Регистрация: 06.08.2015
Возраст: 36
Регион: 43
Сообщений: 12
![]() |
![]() ID тот, но скорее всего два сообщения приходит с разными айди, так например на некоторых машинах вроде как VIN код приходит. Всем спасибо, буду мучать дальше
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
|
|