Показать сообщение отдельно
Старый 06.08.2015, 22:33   #4
olegik_ah
Новый Пользователь
 
Аватар для olegik_ah
 
Регистрация: 05.08.2015
Возраст: 41
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5
Сообщений: 29
olegik_ah is a jewel in the rougholegik_ah is a jewel in the rougholegik_ah is a jewel in the rough
По умолчанию

Все похоже на рабочий экземпляр. Может при нажатии кнопки на руле генериться несколько сообщений с разными 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();
}
olegik_ah вне форума   Ответить с цитированием