Цитата:
Сообщение от T_r_D
GASCHE в вики написано что 4 старших бита нулевого байта если 0000, то это одиночный пакет, а если 0001, то длинный, тоесть с мультифреймом.
так, скажите мне по коду- я правильно смещаю?
PHP код:
int Length; if(!digitalRead(9)) // пин 9 можно переназначить { CAN.readMsgBuf(&len, buf); 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 - это что? (понятно, что длина, но длина чего?)