cansend는 보내고
candump는 받는 녀석이다.
$ cansend can0 canid#userdata
로 하면 특정 canid로 보낼 수 있고
$ cansend --help cansend - send CAN-frames via CAN_RAW sockets. Usage: cansend <device> <can_frame>. <can_frame>: <can_id>#{data} for 'classic' CAN 2.0 data frames <can_id>#R{len} for 'classic' CAN 2.0 data frames <can_id>##<flags>{data} for CAN FD frames <can_id>: 3 (SFF) or 8 (EFF) hex chars {data}: 0..8 (0..64 CAN FD) ASCII hex-values (optionally separated by '.') {len}: an optional 0..8 value as RTR frames can contain a valid dlc field <flags>: a single ASCII Hex value (0 .. F) which defines canfd_frame.flags Examples: 5A1#11.2233.44556677.88 / 123#DEADBEEF / 5AA# / 123##1 / 213##311223344 / 1F334455#1122334455667788 / 123#R / 00000123#R3 |
candump 에서는 아래와 같이 하면 특정 id로만 확인할 수 있다.
$ candump can0,canid
$ candump --help candump: invalid option -- '-' candump - dump CAN bus traffic. Usage: candump [options] <CAN interface>+ (use CTRL-C to terminate candump) Options: -t <type> (timestamp: (a)bsolute/(d)elta/(z)ero/(A)bsolute w date) -H (read hardware timestamps instead of system timestamps) -c (increment color mode level) -i (binary output - may exceed 80 chars/line) -a (enable additional ASCII output) -S (swap byte order in printed CAN data[] - marked with '`' ) -s <level> (silent mode - 0: off (default) 1: animation 2: silent) -l (log CAN-frames into file. Sets '-s 2' by default) -L (use log file format on stdout) -n <count> (terminate after reception of <count> CAN frames) -r <size> (set socket receive buffer to <size>) -D (Don't exit if a "detected" can device goes down. -d (monitor dropped CAN frames) -e (dump CAN error frames in human-readable format) -x (print extra message infos, rx/tx brs esi) -T <msecs> (terminate after <msecs> without any reception) Up to 16 CAN interfaces with optional filter sets can be specified on the commandline in the form: <ifname>[,filter]* Filters: Comma separated filters can be specified for each given CAN interface: <can_id>:<can_mask> (matches when <received_can_id> & mask == can_id & mask) <can_id>~<can_mask> (matches when <received_can_id> & mask != can_id & mask) #<error_mask> (set error frame filter, see include/linux/can/error.h) [j|J] (join the given CAN filters - logical AND semantic) CAN IDs, masks and data content are given and expected in hexadecimal values. When the can_id is 8 digits long the CAN_EFF_FLAG is set for 29 bit EFF format. Without any given filter all data frames are received ('0:0' default filter). Use interface name 'any' to receive from all CAN interfaces. Examples: candump -c -c -ta can0,123:7FF,400:700,#000000FF can2,400~7F0 can3 can8 candump -l any,0~0,#FFFFFFFF (log only error frames but no(!) data frames) candump -l any,0:0,#FFFFFFFF (log error frames and also all data frames) candump vcan2,12345678:DFFFFFFF (match only for extended CAN ID 12345678) candump vcan2,123:7FF (matches CAN ID 123 - including EFF and RTR frames) candump vcan2,123:C00007FF (matches CAN ID 123 - only SFF and non-RTR frames) |
'모종의 음모 > CAN' 카테고리의 다른 글
candump, cansend와 vcan (0) | 2025.02.19 |
---|---|
linux can 테스트(가상 CAN IF) (0) | 2025.02.18 |
can invader (0) | 2024.01.09 |
CAN(controller area network) (0) | 2023.10.31 |
mcp2515 can (0) | 2023.10.30 |