cangen: support fixed length values for len8_dlc
Allow raw DLC values up to 15 in combination with the '-8' option. Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>pull/260/head
parent
ff11fe7ad7
commit
f567b75c6c
14
cangen.c
14
cangen.c
|
|
@ -369,9 +369,17 @@ int main(int argc, char **argv)
|
||||||
/* ensure discrete CAN FD length values 0..8, 12, 16, 20, 24, 32, 64 */
|
/* ensure discrete CAN FD length values 0..8, 12, 16, 20, 24, 32, 64 */
|
||||||
frame.len = can_dlc2len(can_len2dlc(frame.len));
|
frame.len = can_dlc2len(can_len2dlc(frame.len));
|
||||||
} else {
|
} else {
|
||||||
/* sanitize CAN 2.0 frame length */
|
/* sanitize Classical CAN 2.0 frame length */
|
||||||
if (frame.len > 8)
|
if (len8_dlc) {
|
||||||
frame.len = 8;
|
if (frame.len > CAN_MAX_RAW_DLC)
|
||||||
|
frame.len = CAN_MAX_RAW_DLC;
|
||||||
|
|
||||||
|
if (frame.len > CAN_MAX_DLEN)
|
||||||
|
ccf->len8_dlc = frame.len;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (frame.len > CAN_MAX_DLEN)
|
||||||
|
frame.len = CAN_MAX_DLEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue