Тема: CITROEN-ARDUINO
Показать сообщение отдельно
Старый 04.02.2016, 14:57   #159
autowp
Пользователь
 
Аватар для autowp
 
Регистрация: 13.12.2012
Возраст: 40
Город: Москва
Регион: 77, 97, 99, 177
Машина: Peugeot 407 Coupe
Сообщений: 82
autowp is on a distinguished road
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
GASCHE в вики написано что 4 старших бита нулевого байта если 0000, то это одиночный пакет, а если 0001, то длинный, тоесть с мультифреймом.

так, скажите мне по коду- я правильно смещаю?

PHP код:
int Length;
       if(!
digitalRead(9)) // пин 9 можно переназначить                         
       
{
       
CAN.readMsgBuf(&lenbuf);
       
canId CAN.getCanId();

          if(
canId == 293// 125HEX
          
{
            if ((
buf[0] >> 4) == 16){
              
Length = ((buf[0] << 4) | buf[1]) - (len 2); 
            }
          }


Чтобы не писать "if(canId == 293) // 125HEX" и не забивать себе голову никому не нужными DEC'ами, рекомендую "if(canId == 0x125)"

(buf[0] >> 4) == 16

Это всегда false, не может быть равен 16и байт, 4 раза поделенный на 2

- (len - 2)

Вот это не понятно. Length - это что? (понятно, что длина, но длина чего?)
autowp вне форума   Ответить с цитированием