] by
chw
2019-04-26 06:37:38.
0000: 44 20 32 30 31 39 2d 30 34 2d 32 36 54 30 36 3a D 2019-04-26T06:
0010: 33 37 3a 33 38 2e 35 38 35 0a 4c 20 74 63 6c 63 37:38.585.L tclc
0020: 61 6e 0a 50 20 31 37 32 62 65 65 32 39 63 33 64 an.P 172bee29c3d
0030: 32 65 62 37 35 31 36 62 66 39 36 31 35 35 63 31 2eb7516bf96155c1
0040: 35 61 61 36 34 32 62 30 38 35 39 31 32 0a 55 20 5aa642b085912.U
0050: 63 68 77 0a 57 20 31 34 30 32 39 0a 3c 68 32 3e chw.W 14029.<h2>
0060: 63 61 6e 20 63 6f 6d 6d 61 6e 64 3c 2f 68 32 3e can command</h2>
0070: 0d 0a 0d 0a 3c 68 33 3e 4e 61 6d 65 3c 2f 68 33 ....<h3>Name</h3
0080: 3e 0d 0a 0d 0a 3c 62 3e 63 61 6e 3c 2f 62 3e 20 >....<b>can</b>
0090: 2d 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 20 - Tcl interface
00a0: 74 6f 20 4c 69 6e 75 78 20 53 6f 63 6b 65 74 43 to Linux SocketC
00b0: 41 4e 0d 0a 0d 0a 3c 68 33 3e 53 79 6e 6f 70 73 AN....<h3>Synops
00c0: 69 73 3c 2f 68 33 3e 0d 0a 0d 0a 3c 74 74 3e 70 is</h3>....<tt>p
00d0: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 54 ackage require T
00e0: 63 6c 20 38 2e 36 3c 2f 74 74 3e 3c 62 72 3e 0d cl 8.6</tt><br>.
00f0: 0a 3c 74 74 3e 70 61 63 6b 61 67 65 20 72 65 71 .<tt>package req
0100: 75 69 72 65 20 74 63 6c 63 61 6e 3c 2f 74 74 3e uire tclcan</tt>
0110: 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 62 63 <br>..<tt>can bc
0120: 6d 6f 70 65 6e 20 3c 69 3e 69 66 6e 61 6d 65 3c mopen <i>ifname<
0130: 2f 69 3e 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 /i></tt><br>..<t
0140: 74 3e 63 61 6e 20 62 69 74 72 61 74 65 20 3c 69 t>can bitrate <i
0150: 3e 69 66 6e 61 6d 65 20 3f 72 61 74 65 3f 20 3f >ifname ?rate? ?
0160: 73 61 6d 70 6c 65 5f 70 6f 69 6e 74 3f 3c 2f 69 sample_point?</i
0170: 3e 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e ></tt><br>..<tt>
0180: 63 61 6e 20 62 69 74 74 69 6d 69 6e 67 20 3c 69 can bittiming <i
0190: 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e >ifname</i></tt>
01a0: 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 62 69 <br>..<tt>can bi
01b0: 74 74 74 69 6d 69 6e 67 5f 63 6f 6e 73 74 20 3c tttiming_const <
01c0: 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 i>ifname</i></tt
01d0: 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 62 ><br>..<tt>can b
01e0: 65 72 72 20 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 err <i>ifname</i
01f0: 3e 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e ></tt><br>..<tt>
0200: 63 61 6e 20 63 6c 6f 63 6b 20 3c 69 3e 69 66 6e can clock <i>ifn
0210: 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 3c 62 72 3e ame</i></tt><br>
0220: 0d 0a 3c 74 74 3e 63 61 6e 20 63 6c 6f 73 65 20 ..<tt>can close
0230: 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e <i>chan</i></tt>
0240: 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 63 74 <br>..<tt>can ct
0250: 72 6c 6d 6f 64 65 20 3c 69 3e 69 66 6e 61 6d 65 rlmode <i>ifname
0260: 20 3f 6d 6f 64 65 20 2e 2e 2e 3f 3c 2f 69 3e 3c ?mode ...?</i><
0270: 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 /tt><br>..<tt>ca
0280: 6e 20 64 65 76 73 74 61 74 20 3c 69 3e 69 66 6e n devstat <i>ifn
0290: 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 3c 62 72 3e ame</i></tt><br>
02a0: 0d 0a 3c 74 74 3e 63 61 6e 20 64 75 6d 70 20 3c ..<tt>can dump <
02b0: 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e 3c i>chan</i></tt><
02c0: 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 69 6e 74 br>..<tt>can int
02d0: 65 72 66 61 63 65 73 3c 2f 69 3e 3c 2f 74 74 3e erfaces</i></tt>
02e0: 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 6f 70 <br>..<tt>can op
02f0: 65 6e 20 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e en <i>ifname</i>
0300: 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 63 </tt><br>..<tt>c
0310: 61 6e 20 72 65 61 64 20 3c 69 3e 63 68 61 6e 3c an read <i>chan<
0320: 2f 69 3e 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 /i></tt><br>..<t
0330: 74 3e 63 61 6e 20 72 65 73 74 61 72 74 20 3c 69 t>can restart <i
0340: 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e >ifname</i></tt>
0350: 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 72 65 <br>..<tt>can re
0360: 73 74 61 72 74 5f 6d 73 20 3c 69 3e 69 66 6e 61 start_ms <i>ifna
0370: 6d 65 20 3f 6d 73 3f 3c 2f 69 3e 3c 2f 74 74 3e me ?ms?</i></tt>
0380: 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 73 74 <br>..<tt>can st
0390: 61 72 74 20 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 art <i>ifname</i
03a0: 3e 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e ></tt><br>..<tt>
03b0: 63 61 6e 20 73 74 61 74 65 20 3c 69 3e 69 66 6e can state <i>ifn
03c0: 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 3c 62 72 3e ame</i></tt><br>
03d0: 0d 0a 3c 74 74 3e 63 61 6e 20 73 74 6f 70 20 3c ..<tt>can stop <
03e0: 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 i>ifname</i></tt
03f0: 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 63 61 6e 20 77 ><br>..<tt>can w
0400: 72 69 74 65 20 3c 69 3e 63 68 61 6e 20 63 61 6e rite <i>chan can
0410: 69 64 20 64 61 74 61 20 3f 69 66 69 6e 64 65 78 id data ?ifindex
0420: 3f 3c 2f 69 3e 3c 2f 74 74 3e 3c 62 72 3e 0d 0a ?</i></tt><br>..
0430: 3c 74 74 3e 63 61 6e 20 77 72 69 74 65 20 3c 69 <tt>can write <i
0440: 3e 63 68 61 6e 20 6f 70 63 6f 64 65 20 66 6c 61 >chan opcode fla
0450: 67 73 20 63 6f 75 6e 74 20 74 69 6d 65 31 20 74 gs count time1 t
0460: 69 6d 65 32 20 63 61 6e 69 64 20 3f 69 66 69 6e ime2 canid ?ifin
0470: 64 65 78 20 2e 2e 2e 3f 3c 2f 69 3e 3c 2f 74 74 dex ...?</i></tt
0480: 3e 0d 0a 0d 0a 3c 68 33 3e 44 65 73 63 72 69 70 >....<h3>Descrip
0490: 74 69 6f 6e 3c 2f 68 33 3e 0d 0a 0d 0a 54 68 69 tion</h3>....Thi
04a0: 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 s package provid
04b0: 65 73 20 54 63 6c 20 73 75 70 70 6f 72 74 20 66 es Tcl support f
04c0: 6f 72 20 4c 69 6e 75 78 20 53 6f 63 6b 65 74 43 or Linux SocketC
04d0: 41 4e 20 3c 62 3e 43 41 4e 5f 52 41 57 3c 2f 62 AN <b>CAN_RAW</b
04e0: 3e 20 61 6e 64 20 3c 62 3e 43 41 4e 5f 42 43 4d > and <b>CAN_BCM
04f0: 3c 2f 62 3e 20 73 6f 63 6b 65 74 20 74 79 70 65 </b> socket type
0500: 73 2e 20 54 68 65 20 70 61 63 6b 61 67 65 20 69 s. The package i
0510: 6d 70 6c 65 6d 65 6e 74 73 20 61 20 6e 65 77 20 mplements a new
0520: 63 68 61 6e 6e 65 6c 20 74 79 70 65 20 61 6e 64 channel type and
0530: 20 61 20 20 54 63 6c 20 20 63 6f 6d 6d 61 6e 64 a Tcl command
0540: 20 74 6f 20 70 65 72 66 6f 72 6d 20 6f 70 65 72 to perform oper
0550: 61 74 69 6f 6e 73 20 6f 6e 20 74 68 65 73 65 20 ations on these
0560: 63 68 61 6e 6e 65 6c 73 2e 20 54 68 65 20 73 74 channels. The st
0570: 61 6e 64 61 72 64 20 3c 74 74 3e 67 65 74 73 3c andard <tt>gets<
0580: 2f 74 74 3e 2c 20 3c 74 74 3e 70 75 74 73 3c 2f /tt>, <tt>puts</
0590: 74 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 72 65 61 tt>, and <tt>rea
05a0: 64 3c 2f 74 74 3e 20 54 63 6c 20 63 6f 6d 6d 61 d</tt> Tcl comma
05b0: 6e 64 73 20 61 72 65 20 6e 6f 74 20 73 75 70 70 nds are not supp
05c0: 6f 72 74 65 64 2c 20 62 75 74 20 3c 74 74 3e 63 orted, but <tt>c
05d0: 6c 6f 73 65 3c 2f 74 74 3e 2c 20 3c 74 74 3e 66 lose</tt>, <tt>f
05e0: 63 6f 6e 66 69 67 75 72 65 3c 2f 74 74 3e 2c 20 configure</tt>,
05f0: 20 61 6e 64 20 20 3c 74 74 3e 66 69 6c 65 65 76 and <tt>fileev
0600: 65 6e 74 3c 2f 74 74 3e 20 61 72 65 20 61 76 61 ent</tt> are ava
0610: 69 6c 61 62 6c 65 20 61 73 20 66 6f 72 20 6e 6f ilable as for no
0620: 72 6d 61 6c 20 63 68 61 6e 6e 65 6c 73 2c 20 65 rmal channels, e
0630: 2e 67 2e 20 73 6f 63 6b 65 74 73 2e 20 57 68 65 .g. sockets. Whe
0640: 6e 20 74 68 65 20 3c 62 3e 6c 69 62 73 6f 63 6b n the <b>libsock
0650: 65 74 63 61 6e 3c 2f 62 3e 20 73 68 61 72 65 64 etcan</b> shared
0660: 20 6c 69 62 72 61 72 79 20 69 73 20 61 76 61 69 library is avai
0670: 6c 61 62 6c 65 2c 20 76 61 72 69 6f 75 73 20 73 lable, various s
0680: 75 62 63 6f 6d 6d 61 6e 64 73 20 20 63 61 6e 20 ubcommands can
0690: 20 62 65 20 20 75 73 65 64 20 20 74 6f 20 6d 61 be used to ma
06a0: 6e 61 67 65 20 43 41 4e 20 69 6e 74 65 72 66 61 nage CAN interfa
06b0: 63 65 73 2c 20 74 6f 6f 2e 0d 0a 0d 0a 3c 68 33 ces, too.....<h3
06c0: 3e 43 6f 6d 6d 61 6e 64 73 3c 2f 68 33 3e 0d 0a >Commands</h3>..
06d0: 0d 0a 3c 74 74 3e 63 61 6e 20 62 63 6d 6f 70 65 ..<tt>can bcmope
06e0: 6e 20 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c n <i>ifname</i><
06f0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 4f 70 65 6e /tt>.... Open
0700: 73 20 61 20 63 68 61 6e 6e 65 6c 20 62 79 20 63 s a channel by c
0710: 72 65 61 74 69 6e 67 20 61 20 62 72 6f 61 64 63 reating a broadc
0720: 61 73 74 20 6d 61 6e 61 67 65 72 20 73 6f 63 6b ast manager sock
0730: 65 74 20 28 74 79 70 65 20 3c 62 3e 43 41 4e 5f et (type <b>CAN_
0740: 42 43 4d 3c 2f 62 3e 20 29 20 6f 6e 20 74 68 65 BCM</b> ) on the
0750: 20 67 69 76 65 6e 20 43 41 4e 20 69 6e 74 65 72 given CAN inter
0760: 66 61 63 65 20 3c 74 74 3e 3c 69 3e 69 66 6e 61 face <tt><i>ifna
0770: 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 49 66 20 me</i></tt>. If
0780: 3c 74 74 3e 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 <tt><i>ifname</i
0790: 3e 3c 2f 74 74 3e 20 69 73 20 73 70 65 63 69 66 ></tt> is specif
07a0: 69 65 64 20 61 73 20 61 6e 20 65 6d 70 74 79 20 ied as an empty
07b0: 73 74 72 69 6e 67 2c 20 74 68 65 20 63 68 61 6e string, the chan
07c0: 6e 65 6c 20 69 73 20 20 62 6f 75 6e 64 20 74 6f nel is bound to
07d0: 20 61 6c 6c 20 43 41 4e 20 69 6e 74 65 72 66 61 all CAN interfa
07e0: 63 65 73 2e 20 54 68 65 20 63 6f 6d 6d 61 6e 64 ces. The command
07f0: 20 72 65 74 75 72 6e 73 20 61 6e 20 69 64 65 6e returns an iden
0800: 74 69 66 69 65 72 20 66 6f 72 20 74 68 65 20 63 tifier for the c
0810: 68 61 6e 6e 65 6c 20 77 68 69 63 68 20 69 73 20 hannel which is
0820: 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 73 75 to be used in su
0830: 62 73 65 71 75 65 6e 74 20 3c 74 74 3e 63 61 6e bsequent <tt>can
0840: 20 72 65 61 64 3c 2f 74 74 3e 20 61 6e 64 20 3c read</tt> and <
0850: 74 74 3e 63 61 6e 20 77 72 69 74 65 3c 2f 74 74 tt>can write</tt
0860: 3e 20 63 6f 6d 6d 61 6e 64 73 2e 0d 0a 0d 0a 3c > commands.....<
0870: 74 74 3e 63 61 6e 20 62 69 74 72 61 74 65 20 3c tt>can bitrate <
0880: 69 3e 69 66 6e 61 6d 65 20 3f 72 61 74 65 3f 20 i>ifname ?rate?
0890: 3f 73 61 6d 70 6c 65 5f 70 6f 69 6e 74 3f 3c 2f ?sample_point?</
08a0: 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 47 i></tt>.... G
08b0: 65 74 73 20 6f 72 20 73 65 74 73 20 74 68 65 20 ets or sets the
08c0: 62 69 74 72 61 74 65 20 3c 74 74 3e 3c 69 3e 72 bitrate <tt><i>r
08d0: 61 74 65 3c 2f 69 3e 3c 2f 74 74 3e 20 28 61 6e ate</i></tt> (an
08e0: 64 20 73 65 74 73 20 6f 70 74 69 6f 6e 61 6c 20 d sets optional
08f0: 73 61 6d 70 6c 65 20 70 6f 69 6e 74 20 74 6f 20 sample point to
0900: 3c 74 74 3e 3c 69 3e 73 61 6d 70 6c 65 5f 70 6f <tt><i>sample_po
0910: 69 6e 74 3c 2f 69 3e 3c 2f 74 74 3e 29 20 6f 6e int</i></tt>) on
0920: 20 74 68 65 20 43 41 4e 20 69 6e 74 65 72 66 61 the CAN interfa
0930: 63 65 20 3c 74 74 3e 3c 69 3e 69 66 6e 61 6d 65 ce <tt><i>ifname
0940: 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 </i></tt>.....<t
0950: 74 3e 63 61 6e 20 62 69 74 74 69 6d 69 6e 67 20 t>can bittiming
0960: 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 <i>ifname</i></t
0970: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 72 69 65 t>.... Retrie
0980: 76 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 ves the current
0990: 62 69 74 20 74 69 6d 69 6e 67 20 6f 66 20 74 68 bit timing of th
09a0: 65 20 43 41 4e 20 69 6e 74 65 72 66 61 63 65 20 e CAN interface
09b0: 3c 74 74 3e 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 <tt><i>ifname</i
09c0: 3e 3c 2f 74 74 3e 2e 20 46 6f 72 20 64 65 74 61 ></tt>. For deta
09d0: 69 6c 73 20 72 65 66 65 72 20 74 6f 20 3c 62 3e ils refer to <b>
09e0: 2f 75 73 72 2f 69 6e 63 6c 75 64 65 2f 63 61 6e /usr/include/can
09f0: 5f 6e 65 74 6c 69 6e 6b 2e 68 3c 2f 62 3e 2e 0d _netlink.h</b>..
0a00: 0a 0d 0a 3c 74 74 3e 63 61 6e 20 62 69 74 74 69 ...<tt>can bitti
0a10: 6d 69 6e 67 5f 63 6f 6e 73 74 20 3c 69 3e 69 66 ming_const <i>if
0a20: 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d name</i></tt>...
0a30: 0a 20 20 20 20 52 65 74 72 69 65 76 65 73 20 63 . Retrieves c
0a40: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f 6e 20 onfiguration on
0a50: 62 69 74 20 74 69 6d 69 6e 67 20 6f 66 20 74 68 bit timing of th
0a60: 65 20 43 41 4e 20 69 6e 74 65 72 66 61 63 65 20 e CAN interface
0a70: 3c 74 74 3e 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 <tt><i>ifname</i
0a80: 3e 3c 2f 74 74 3e 2e 20 46 6f 72 20 64 65 74 61 ></tt>. For deta
0a90: 69 6c 73 20 72 65 66 65 72 20 74 6f 20 3c 62 3e ils refer to <b>
0aa0: 2f 75 73 72 2f 69 6e 63 6c 75 64 65 2f 63 61 6e /usr/include/can
0ab0: 5f 6e 65 74 6c 69 6e 6b 2e 68 3c 2f 62 3e 2e 0d _netlink.h</b>..
0ac0: 0a 0d 0a 3c 74 74 3e 63 61 6e 20 62 65 72 72 20 ...<tt>can berr
0ad0: 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 <i>ifname</i></t
0ae0: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 72 69 65 t>.... Retrie
0af0: 76 65 73 20 65 72 72 6f 72 20 63 6f 75 6e 74 65 ves error counte
0b00: 72 73 20 6f 66 20 74 68 65 20 43 41 4e 20 69 6e rs of the CAN in
0b10: 74 65 72 66 61 63 65 20 3c 74 74 3e 3c 69 3e 69 terface <tt><i>i
0b20: 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 fname</i></tt>.
0b30: 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 The result is a
0b40: 64 69 63 74 69 6f 6e 61 72 79 20 6d 61 64 65 20 dictionary made
0b50: 75 70 20 6f 66 20 74 68 65 20 6b 65 79 73 20 3c up of the keys <
0b60: 74 74 3e 74 78 65 72 72 3c 2f 74 74 3e 20 61 6e tt>txerr</tt> an
0b70: 64 20 3c 74 74 3e 72 78 65 72 72 3c 2f 74 74 3e d <tt>rxerr</tt>
0b80: 20 77 69 74 68 20 72 65 73 70 65 63 74 69 76 65 with respective
0b90: 20 69 6e 74 65 67 65 72 20 65 72 72 6f 72 20 63 integer error c
0ba0: 6f 75 6e 74 65 72 73 2e 0d 0a 0d 0a 3c 74 74 3e ounters.....<tt>
0bb0: 63 61 6e 20 63 6c 6f 63 6b 20 3c 69 3e 69 66 6e can clock <i>ifn
0bc0: 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a ame</i></tt>....
0bd0: 20 20 20 20 52 65 74 72 69 65 76 65 73 20 74 68 Retrieves th
0be0: 65 20 63 6c 6f 63 6b 20 66 72 65 71 75 65 6e 63 e clock frequenc
0bf0: 79 20 6f 66 20 74 68 65 20 43 41 4e 20 69 6e 74 y of the CAN int
0c00: 65 72 66 61 63 65 20 3c 74 74 3e 3c 69 3e 69 66 erface <tt><i>if
0c10: 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 20 name</i></tt>.
0c20: 46 6f 72 20 64 65 74 61 69 6c 73 20 72 65 66 65 For details refe
0c30: 72 20 74 6f 20 3c 62 3e 2f 75 73 72 2f 69 6e 63 r to <b>/usr/inc
0c40: 6c 75 64 65 2f 63 61 6e 5f 6e 65 74 6c 69 6e 6b lude/can_netlink
0c50: 2e 68 3c 2f 62 3e 2e 0d 0a 0d 0a 3c 74 74 3e 63 .h</b>.....<tt>c
0c60: 61 6e 20 63 6c 6f 73 65 20 3c 69 3e 63 68 61 6e an close <i>chan
0c70: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 </i></tt>....
0c80: 20 43 6c 6f 73 65 73 20 74 68 65 20 63 68 61 6e Closes the chan
0c90: 6e 65 6c 20 3c 74 74 3e 3c 69 3e 63 68 61 6e 3c nel <tt><i>chan<
0ca0: 2f 69 3e 3c 2f 74 74 3e 20 77 68 69 63 68 20 77 /i></tt> which w
0cb0: 61 73 20 66 6f 72 6d 65 72 6c 79 20 6f 62 74 61 as formerly obta
0cc0: 69 6e 65 64 20 62 79 20 3c 74 74 3e 63 61 6e 20 ined by <tt>can
0cd0: 6f 70 65 6e 3c 2f 74 74 3e 2e 20 54 68 69 73 20 open</tt>. This
0ce0: 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f is equivalent to
0cf0: 20 69 6e 76 6f 6b 69 6e 67 20 74 68 65 20 3c 74 invoking the <t
0d00: 74 3e 63 6c 6f 73 65 3c 2f 74 74 3e 20 63 6f 6d t>close</tt> com
0d10: 6d 61 6e 64 20 20 77 69 74 68 20 3c 74 74 3e 3c mand with <tt><
0d20: 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e 20 i>chan</i></tt>
0d30: 61 73 20 70 61 72 61 6d 65 74 65 72 2e 0d 0a 0d as parameter....
0d40: 0a 3c 74 74 3e 63 61 6e 20 63 74 72 6c 6d 6f 64 .<tt>can ctrlmod
0d50: 65 20 3c 69 3e 69 66 6e 61 6d 65 20 3f 6d 6f 64 e <i>ifname ?mod
0d60: 65 20 2e 2e 2e 3f 3c 2f 69 3e 3c 2f 74 74 3e 0d e ...?</i></tt>.
0d70: 0a 0d 0a 20 20 20 20 47 65 74 73 20 6f 72 20 73 ... Gets or s
0d80: 65 74 73 20 6d 6f 64 65 73 20 6f 6e 20 74 68 65 ets modes on the
0d90: 20 43 41 4e 20 69 6e 74 65 72 66 61 63 65 20 3c CAN interface <
0da0: 74 74 3e 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e tt><i>ifname</i>
0db0: 3c 2f 74 74 3e 2e 20 49 66 20 6e 6f 20 3c 74 74 </tt>. If no <tt
0dc0: 3e 3c 69 3e 6d 6f 64 65 3c 2f 69 3e 3c 2f 74 74 ><i>mode</i></tt
0dd0: 3e 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 > is specified,
0de0: 74 68 65 20 63 75 72 72 65 6e 74 20 61 63 74 69 the current acti
0df0: 76 65 20 6d 6f 64 65 73 20 61 72 65 20 72 65 74 ve modes are ret
0e00: 75 72 6e 65 64 20 61 73 20 61 20 6c 69 73 74 2e urned as a list.
0e10: 20 4f 74 68 65 72 77 69 73 65 2c 20 3c 74 74 3e Otherwise, <tt>
0e20: 3c 69 3e 6d 6f 64 65 3c 2f 69 3e 3c 2f 74 74 3e <i>mode</i></tt>
0e30: 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 72 20 must be one or
0e40: 6d 6f 72 65 20 77 6f 72 64 73 20 6f 66 20 3c 74 more words of <t
0e50: 74 3e 6c 6f 6f 70 62 61 63 6b 3c 2f 74 74 3e 2c t>loopback</tt>,
0e60: 20 3c 74 74 3e 6c 69 73 74 65 6e 6f 6e 6c 79 3c <tt>listenonly<
0e70: 2f 74 74 3e 2c 20 3c 74 74 3e 33 5f 73 61 6d 70 /tt>, <tt>3_samp
0e80: 6c 65 73 3c 2f 74 74 3e 2c 20 3c 74 74 3e 6f 6e les</tt>, <tt>on
0e90: 65 5f 73 68 6f 74 3c 2f 74 74 3e 2c 20 3c 74 74 e_shot</tt>, <tt
0ea0: 3e 62 65 72 72 5f 72 65 70 6f 72 74 69 6e 67 3c >berr_reporting<
0eb0: 2f 74 74 3e 2c 20 20 3c 74 74 3e 66 64 3c 2f 74 /tt>, <tt>fd</t
0ec0: 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 70 72 65 73 t>, and <tt>pres
0ed0: 75 6d 65 5f 61 63 6b 3c 2f 74 74 3e 2e 20 49 6e ume_ack</tt>. In
0ee0: 20 6f 72 64 65 72 20 74 6f 20 74 75 72 6e 20 61 order to turn a
0ef0: 20 6d 6f 64 65 20 6f 66 66 2c 20 70 72 65 66 69 mode off, prefi
0f00: 78 20 74 68 65 20 77 6f 72 64 20 77 69 74 68 20 x the word with
0f10: 61 20 6d 69 6e 75 73 20 73 69 67 6e 2e 20 4c 69 a minus sign. Li
0f20: 6b 65 77 69 73 65 2c 20 74 6f 20 74 75 72 6e 20 kewise, to turn
0f30: 69 74 20 6f 6e 2c 20 61 20 70 6c 75 73 20 73 69 it on, a plus si
0f40: 67 6e 20 6d 61 79 20 62 65 20 6f 70 74 69 6f 6e gn may be option
0f50: 61 6c 6c 79 20 75 73 65 64 20 61 73 20 70 72 65 ally used as pre
0f60: 66 69 78 2e 0d 0a 0d 0a 3c 74 74 3e 63 61 6e 20 fix.....<tt>can
0f70: 64 65 76 73 74 61 74 73 20 3c 69 3e 69 66 6e 61 devstats <i>ifna
0f80: 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 me</i></tt>....
0f90: 20 20 20 52 65 74 72 69 65 76 65 73 20 64 65 76 Retrieves dev
0fa0: 69 63 65 20 73 74 61 74 69 73 74 69 63 73 20 61 ice statistics a
0fb0: 73 20 61 20 64 69 63 74 69 6f 6e 61 72 79 2e 20 s a dictionary.
0fc0: 46 6f 72 20 64 65 74 61 69 6c 73 20 72 65 66 65 For details refe
0fd0: 72 20 74 6f 20 3c 62 3e 2f 75 73 72 2f 69 6e 63 r to <b>/usr/inc
0fe0: 6c 75 64 65 2f 6c 69 62 73 6f 63 6b 65 74 63 61 lude/libsocketca
0ff0: 6e 2e 68 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 2f n.h</b> and <b>/
1000: 75 73 72 2f 69 6e 63 6c 75 64 65 2f 63 61 6e 5f usr/include/can_
1010: 6e 65 74 6c 69 6e 6b 2e 68 3c 2f 62 3e 2e 0d 0a netlink.h</b>...
1020: 0d 0a 3c 74 74 3e 63 61 6e 20 64 75 6d 70 20 3c ..<tt>can dump <
1030: 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e 0d i>chan</i></tt>.
1040: 0a 0d 0a 20 20 20 20 52 65 61 64 73 20 61 20 3c ... Reads a <
1050: 62 3e 43 41 4e 5f 52 41 57 3c 2f 62 3e 20 6f 72 b>CAN_RAW</b> or
1060: 20 3c 62 3e 43 41 4e 5f 42 43 4d 3c 2f 62 3e 20 <b>CAN_BCM</b>
1070: 6d 65 73 73 61 67 65 20 6f 66 66 20 3c 74 74 3e message off <tt>
1080: 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e <i>chan</i></tt>
1090: 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 66 and returns a f
10a0: 6f 72 6d 61 74 74 65 64 20 72 65 70 72 65 73 65 ormatted represe
10b0: 6e 74 61 74 69 6f 6e 20 6f 66 20 69 74 20 61 73 ntation of it as
10c0: 20 61 20 6c 69 73 74 2e 20 54 68 65 20 6c 69 73 a list. The lis
10d0: 74 20 69 73 20 65 6d 70 74 79 20 69 66 20 6e 6f t is empty if no
10e0: 20 43 41 4e 20 6d 65 73 73 61 67 65 20 77 61 73 CAN message was
10f0: 20 70 65 6e 64 69 6e 67 20 6f 6e 20 3c 74 74 3e pending on <tt>
1100: 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e <i>chan</i></tt>
1110: 2e 0d 0a 0d 0a 20 20 20 20 4f 74 68 65 72 77 69 ..... Otherwi
1120: 73 65 2c 20 66 6f 72 20 3c 62 3e 43 41 4e 5f 52 se, for <b>CAN_R
1130: 41 57 3c 2f 62 3e 20 63 68 61 6e 6e 65 6c 73 20 AW</b> channels
1140: 74 68 65 20 6c 69 73 74 20 68 61 73 20 66 69 76 the list has fiv
1150: 65 20 6f 72 20 73 69 78 20 65 6c 65 6d 65 6e 74 e or six element
1160: 73 20 77 68 69 63 68 20 61 72 65 3a 20 20 31 2e s which are: 1.
1170: 20 61 6e 20 20 69 6e 74 65 67 65 72 20 74 69 6d an integer tim
1180: 65 20 73 74 61 6d 70 20 65 71 75 69 76 61 6c 65 e stamp equivale
1190: 6e 74 20 74 6f 20 3c 74 74 3e 63 6c 6f 63 6b 20 nt to <tt>clock
11a0: 6d 69 63 72 6f 73 65 63 6f 6e 64 73 3c 2f 74 74 microseconds</tt
11b0: 3e 2c 20 32 2e 20 74 68 65 20 69 6e 74 65 72 66 >, 2. the interf
11c0: 61 63 65 20 69 6e 64 65 78 20 28 73 65 65 20 3c ace index (see <
11d0: 74 74 3e 63 61 6e 20 69 6e 74 65 72 66 61 63 65 tt>can interface
11e0: 73 3c 2f 74 74 3e 29 2c 20 33 2e 20 74 68 65 20 s</tt>), 3. the
11f0: 20 43 41 4e 20 69 64 65 6e 74 69 66 69 65 72 20 CAN identifier
1200: 61 73 20 61 20 68 65 78 61 64 65 63 69 6d 61 6c as a hexadecimal
1210: 20 73 74 72 69 6e 67 20 77 69 74 68 20 30 78 20 string with 0x
1220: 70 72 65 66 69 78 2c 20 34 2e 20 61 20 66 72 61 prefix, 4. a fra
1230: 6d 65 20 66 6f 72 6d 61 74 20 74 61 67 20 6f 66 me format tag of
1240: 20 74 68 65 20 43 41 4e 20 6d 65 73 73 61 67 65 the CAN message
1250: 20 61 73 20 3c 74 74 3e 45 46 46 3c 2f 74 74 3e as <tt>EFF</tt>
1260: 20 28 65 78 74 65 6e 64 65 64 20 66 72 61 6d 65 (extended frame
1270: 20 66 6f 72 6d 61 74 29 20 6f 72 20 3c 74 74 3e format) or <tt>
1280: 53 46 46 3c 2f 74 74 3e 20 28 73 74 61 6e 64 61 SFF</tt> (standa
1290: 72 64 20 66 72 61 6d 65 20 66 6f 72 6d 61 74 29 rd frame format)
12a0: 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 66 6f 6c 6c optionally foll
12b0: 6f 77 65 64 20 62 79 20 3c 74 74 3e 7c 52 54 52 owed by <tt>|RTR
12c0: 3c 2f 74 74 3e 20 28 72 65 6d 6f 74 65 20 74 72 </tt> (remote tr
12d0: 61 6e 73 6d 69 73 73 69 6f 6e 20 72 65 71 75 65 ansmission reque
12e0: 73 74 29 20 6f 72 20 3c 74 74 3e 7c 45 52 52 3c st) or <tt>|ERR<
12f0: 2f 74 74 3e 20 28 65 72 72 6f 72 20 66 72 61 6d /tt> (error fram
1300: 65 29 2c 20 35 2e 20 74 68 65 20 64 61 74 61 20 e), 5. the data
1310: 6c 65 6e 67 74 68 20 61 73 20 61 20 64 65 63 69 length as a deci
1320: 6d 61 6c 20 6e 75 6d 62 65 72 2c 20 61 6e 64 20 mal number, and
1330: 6f 70 74 69 6f 6e 61 6c 6c 79 20 36 2e 20 74 68 optionally 6. th
1340: 65 20 64 61 74 61 20 70 6f 72 74 69 6f 6e 20 6f e data portion o
1350: 66 20 74 68 65 20 43 41 4e 20 6d 65 73 73 61 67 f the CAN messag
1360: 65 20 61 73 20 68 65 78 61 64 65 63 69 6d 61 6c e as hexadecimal
1370: 20 64 75 6d 70 20 77 69 74 68 6f 75 74 20 62 6c dump without bl
1380: 61 6e 6b 73 20 61 6e 64 20 70 72 65 66 69 78 2e anks and prefix.
1390: 0d 0a 0d 0a 20 20 20 20 46 6f 72 20 3c 62 3e 43 .... For <b>C
13a0: 41 4e 5f 42 43 4d 3c 2f 62 3e 20 63 68 61 6e 6e AN_BCM</b> chann
13b0: 65 6c 73 20 74 68 65 20 6c 69 73 74 20 69 73 20 els the list is
13c0: 6d 61 64 65 20 75 70 20 6f 66 3a 20 31 2e 20 61 made up of: 1. a
13d0: 6e 20 69 6e 74 65 67 65 72 20 74 69 6d 65 20 73 n integer time s
13e0: 74 61 6d 70 20 20 65 71 75 69 76 61 6c 65 6e 74 tamp equivalent
13f0: 20 74 6f 20 3c 74 74 3e 63 6c 6f 63 6b 20 6d 69 to <tt>clock mi
1400: 63 72 6f 73 65 63 6f 6e 64 73 3c 2f 74 74 3e 2c croseconds</tt>,
1410: 20 32 2e 20 74 68 65 20 69 6e 74 65 72 66 61 63 2. the interfac
1420: 65 20 69 6e 64 65 78 20 28 73 65 65 20 3c 74 74 e index (see <tt
1430: 3e 63 61 6e 20 69 6e 74 65 72 66 61 63 65 73 3c >can interfaces<
1440: 2f 74 74 3e 29 2c 20 33 2e 20 74 68 65 20 6d 61 /tt>), 3. the ma
1450: 6a 6f 72 20 43 41 4e 20 69 64 65 6e 74 69 66 69 jor CAN identifi
1460: 65 72 20 61 73 20 61 20 68 65 78 61 64 65 63 69 er as a hexadeci
1470: 6d 61 6c 20 73 74 72 69 6e 67 20 77 69 74 68 20 mal string with
1480: 30 78 20 70 72 65 66 69 78 2c 20 34 2e 20 61 20 0x prefix, 4. a
1490: 66 72 61 6d 65 20 66 6f 72 6d 61 74 20 74 61 67 frame format tag
14a0: 20 61 73 20 64 65 73 63 72 69 62 65 64 20 61 62 as described ab
14b0: 6f 76 65 2c 20 35 2e 20 74 68 65 20 3c 74 74 3e ove, 5. the <tt>
14c0: 42 43 4d 3c 2f 74 74 3e 20 6f 70 63 6f 64 65 20 BCM</tt> opcode
14d0: 61 73 20 6f 6e 65 20 6f 66 20 3c 74 74 3e 54 58 as one of <tt>TX
14e0: 5f 53 54 41 54 55 53 3c 2f 74 74 3e 2c 20 20 3c _STATUS</tt>, <
14f0: 74 74 3e 54 58 5f 45 58 50 49 52 45 44 3c 2f 74 tt>TX_EXPIRED</t
1500: 74 3e 2c 20 3c 74 74 3e 52 58 5f 53 54 41 54 55 t>, <tt>RX_STATU
1510: 53 3c 2f 74 74 3e 2c 20 3c 74 74 3e 52 58 5f 54 S</tt>, <tt>RX_T
1520: 49 4d 45 4f 55 54 3c 2f 74 74 3e 2c 20 6f 72 20 IMEOUT</tt>, or
1530: 3c 74 74 3e 52 58 5f 43 48 41 4e 47 45 44 3c 2f <tt>RX_CHANGED</
1540: 74 74 3e 2c 20 36 2e 20 74 68 65 20 3c 74 74 3e tt>, 6. the <tt>
1550: 42 43 4d 3c 2f 74 74 3e 20 66 6c 61 67 73 20 73 BCM</tt> flags s
1560: 65 70 61 72 61 74 65 64 20 62 79 20 20 20 76 65 eparated by ve
1570: 72 74 69 63 61 6c 20 62 61 72 73 20 28 3c 74 74 rtical bars (<tt
1580: 3e 53 45 54 54 49 4d 45 52 3c 2f 74 74 3e 2c 20 >SETTIMER</tt>,
1590: 3c 74 74 3e 53 54 41 52 54 54 49 4d 45 52 3c 2f <tt>STARTTIMER</
15a0: 74 74 3e 2c 20 3c 74 74 3e 54 58 5f 43 4f 55 4e tt>, <tt>TX_COUN
15b0: 54 45 56 54 3c 2f 74 74 3e 2c 20 3c 74 74 3e 54 TEVT</tt>, <tt>T
15c0: 58 5f 41 4e 4e 4f 55 4e 43 45 3c 2f 74 74 3e 2c X_ANNOUNCE</tt>,
15d0: 20 3c 74 74 3e 54 58 5f 43 50 5f 43 41 4e 5f 49 <tt>TX_CP_CAN_I
15e0: 44 3c 2f 74 74 3e 2c 20 3c 74 74 3e 52 58 5f 46 D</tt>, <tt>RX_F
15f0: 49 4c 54 45 52 5f 49 44 3c 2f 74 74 3e 2c 20 3c ILTER_ID</tt>, <
1600: 74 74 3e 52 58 5f 43 48 45 43 4b 5f 44 4c 43 3c tt>RX_CHECK_DLC<
1610: 2f 74 74 3e 2c 20 3c 74 74 3e 52 58 5f 4e 4f 5f /tt>, <tt>RX_NO_
1620: 41 55 54 4f 54 49 4d 45 52 3c 2f 74 74 3e 2c 20 AUTOTIMER</tt>,
1630: 3c 74 74 3e 54 58 5f 52 45 53 45 54 5f 4d 55 4c <tt>TX_RESET_MUL
1640: 54 49 5f 49 44 58 3c 2f 74 74 3e 2c 20 61 6e 64 TI_IDX</tt>, and
1650: 20 3c 74 74 3e 52 58 5f 52 54 52 5f 46 52 41 4d <tt>RX_RTR_FRAM
1660: 45 3c 2f 74 74 3e 29 2c 20 37 2e 20 74 68 65 20 E</tt>), 7. the
1670: 3c 74 74 3e 42 43 4d 3c 2f 74 74 3e 20 63 6f 75 <tt>BCM</tt> cou
1680: 6e 74 20 66 69 65 6c 64 2c 20 20 38 2e 20 74 68 nt field, 8. th
1690: 65 20 66 69 72 73 74 20 3c 74 74 3e 42 43 4d 3c e first <tt>BCM<
16a0: 2f 74 74 3e 20 69 6e 74 65 72 76 61 6c 20 66 69 /tt> interval fi
16b0: 65 6c 64 20 61 73 20 66 6c 6f 61 74 69 6e 67 20 eld as floating
16c0: 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2c 20 39 2e point number, 9.
16d0: 20 74 68 65 20 73 65 63 6f 6e 64 20 3c 74 74 3e the second <tt>
16e0: 42 43 4d 3c 2f 74 74 3e 20 69 6e 74 65 72 76 61 BCM</tt> interva
16f0: 6c 20 66 69 65 6c 64 20 61 73 20 66 6c 6f 61 74 l field as float
1700: 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 ing point number
1710: 2c 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 31 30 2e , optionally 10.
1720: 20 74 6f 20 31 33 2e 20 64 65 73 63 72 69 62 69 to 13. describi
1730: 6e 67 20 74 68 65 20 66 69 72 73 74 20 43 41 4e ng the first CAN
1740: 20 66 72 61 6d 65 20 61 73 20 43 41 4e 20 69 64 frame as CAN id
1750: 65 6e 74 69 66 69 65 72 20 28 68 65 78 61 64 65 entifier (hexade
1760: 63 69 6d 61 6c 20 73 74 72 69 6e 67 29 2c 20 74 cimal string), t
1770: 68 65 20 66 72 61 6d 65 20 66 6f 72 6d 61 74 20 he frame format
1780: 74 61 67 20 28 3c 74 74 3e 45 46 46 3c 2f 74 74 tag (<tt>EFF</tt
1790: 3e 2c 20 3c 74 74 3e 53 46 46 3c 2f 74 74 3e 2c >, <tt>SFF</tt>,
17a0: 20 65 74 63 2e 29 2c 20 74 68 65 20 64 61 74 61 etc.), the data
17b0: 20 6c 65 6e 67 74 68 2c 20 61 6e 64 20 74 68 65 length, and the
17c0: 20 70 61 79 6c 6f 61 64 20 61 73 20 68 65 78 61 payload as hexa
17d0: 64 65 63 69 6d 61 6c 20 64 75 6d 70 2e 20 46 69 decimal dump. Fi
17e0: 65 6c 64 73 20 31 30 2e 20 74 6f 20 31 33 2e 20 elds 10. to 13.
17f0: 72 65 70 65 61 74 20 66 6f 72 20 74 68 65 20 72 repeat for the r
1800: 65 73 70 65 63 74 69 76 65 20 6e 75 6d 62 65 72 espective number
1810: 20 6f 66 20 43 41 4e 20 66 72 61 6d 65 73 20 63 of CAN frames c
1820: 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 ontained in the
1830: 3c 74 74 3e 42 43 4d 3c 2f 74 74 3e 20 6d 65 73 <tt>BCM</tt> mes
1840: 73 61 67 65 2e 0d 0a 0d 0a 3c 74 74 3e 63 61 6e sage.....<tt>can
1850: 20 69 6e 74 65 72 66 61 63 65 73 3c 2f 74 74 3e interfaces</tt>
1860: 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 .... Returns
1870: 61 20 6c 69 73 74 20 6f 66 20 43 41 4e 20 6e 65 a list of CAN ne
1880: 74 77 6f 72 6b 20 69 6e 74 65 72 66 61 63 65 20 twork interface
1890: 6e 61 6d 65 73 20 61 6e 64 20 69 6e 64 69 63 65 names and indice
18a0: 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 3c s suitable for <
18b0: 74 74 3e 63 61 6e 20 6f 70 65 6e 3c 2f 74 74 3e tt>can open</tt>
18c0: 2c 20 3c 74 74 3e 63 61 6e 20 72 65 61 64 3c 2f , <tt>can read</
18d0: 74 74 3e 2c 20 3c 74 74 3e 63 61 6e 20 77 72 69 tt>, <tt>can wri
18e0: 74 65 3c 2f 74 74 3e 20 61 6e 64 20 6c 69 6e 6b te</tt> and link
18f0: 20 6d 61 6e 61 67 65 6d 65 6e 74 20 73 75 62 63 management subc
1900: 6f 6d 6d 61 6e 64 73 2e 0d 0a 0d 0a 3c 74 74 3e ommands.....<tt>
1910: 63 61 6e 20 6f 70 65 6e 20 3c 69 3e 69 66 6e 61 can open <i>ifna
1920: 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 me</i></tt>....
1930: 20 20 20 4f 70 65 6e 73 20 61 20 63 68 61 6e 6e Opens a chann
1940: 65 6c 20 28 72 61 77 20 3c 62 3e 41 46 5f 43 41 el (raw <b>AF_CA
1950: 4e 3c 2f 62 3e 20 73 6f 63 6b 65 74 29 20 6f 6e N</b> socket) on
1960: 20 74 68 65 20 67 69 76 65 6e 20 43 41 4e 20 69 the given CAN i
1970: 6e 74 65 72 66 61 63 65 20 3c 74 74 3e 3c 69 3e nterface <tt><i>
1980: 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 2e ifname</i></tt>.
1990: 20 49 66 20 3c 74 74 3e 3c 69 3e 69 66 6e 61 6d If <tt><i>ifnam
19a0: 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 73 70 e</i></tt> is sp
19b0: 65 63 69 66 69 65 64 20 61 73 20 61 6e 20 65 6d ecified as an em
19c0: 70 74 79 20 73 74 72 69 6e 67 2c 20 74 68 65 20 pty string, the
19d0: 63 68 61 6e 6e 65 6c 20 69 73 20 20 62 6f 75 6e channel is boun
19e0: 64 20 74 6f 20 61 6c 6c 20 43 41 4e 20 69 6e 74 d to all CAN int
19f0: 65 72 66 61 63 65 73 2e 20 54 68 65 20 63 6f 6d erfaces. The com
1a00: 6d 61 6e 64 20 72 65 74 75 72 6e 73 20 61 6e 20 mand returns an
1a10: 69 64 65 6e 74 69 66 69 65 72 20 66 6f 72 20 74 identifier for t
1a20: 68 65 20 63 68 61 6e 6e 65 6c 20 77 68 69 63 68 he channel which
1a30: 20 69 73 20 74 6f 20 62 65 20 75 73 65 64 20 69 is to be used i
1a40: 6e 20 73 75 62 73 65 71 75 65 6e 74 20 3c 74 74 n subsequent <tt
1a50: 3e 63 61 6e 20 72 65 61 64 3c 2f 74 74 3e 20 61 >can read</tt> a
1a60: 6e 64 20 3c 74 74 3e 63 61 6e 20 77 72 69 74 65 nd <tt>can write
1a70: 3c 2f 74 74 3e 20 63 6f 6d 6d 61 6e 64 73 2e 0d </tt> commands..
1a80: 0a 0d 0a 3c 74 74 3e 63 61 6e 20 72 65 61 64 20 ...<tt>can read
1a90: 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e <i>chan</i></tt>
1aa0: 0d 0a 0d 0a 20 20 20 20 52 65 61 64 73 20 61 20 .... Reads a
1ab0: 3c 62 3e 43 41 4e 5f 52 41 57 3c 2f 62 3e 20 6f <b>CAN_RAW</b> o
1ac0: 72 20 3c 62 3e 43 41 4e 5f 42 43 4d 3c 2f 62 3e r <b>CAN_BCM</b>
1ad0: 20 6d 65 73 73 61 67 65 20 6f 66 66 20 3c 74 74 message off <tt
1ae0: 3e 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 ><i>chan</i></tt
1af0: 3e 20 61 73 20 61 20 6c 69 73 74 2e 20 54 68 65 > as a list. The
1b00: 20 6c 69 73 74 20 69 73 20 65 6d 70 74 79 20 69 list is empty i
1b10: 66 20 6e 6f 20 43 41 4e 20 6d 65 73 73 61 67 65 f no CAN message
1b20: 20 77 61 73 20 70 65 6e 64 69 6e 67 20 6f 6e 20 was pending on
1b30: 3c 74 74 3e 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c <tt><i>chan</i><
1b40: 2f 74 74 3e 2e 0d 0a 0d 0a 20 20 20 20 4f 74 68 /tt>..... Oth
1b50: 65 72 77 69 73 65 2c 20 66 6f 72 20 3c 62 3e 43 erwise, for <b>C
1b60: 41 4e 5f 52 41 57 3c 2f 62 3e 20 63 68 61 6e 6e AN_RAW</b> chann
1b70: 65 6c 73 20 69 74 20 69 73 20 6d 61 64 65 20 75 els it is made u
1b80: 70 20 6f 66 20 66 6f 75 72 20 65 6c 65 6d 65 6e p of four elemen
1b90: 74 73 2c 20 31 2e 20 74 68 65 20 43 41 4e 20 69 ts, 1. the CAN i
1ba0: 64 65 6e 74 69 66 69 65 72 20 61 73 20 61 6e 20 dentifier as an
1bb0: 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 20 69 integer number i
1bc0: 6e 63 6c 75 64 69 6e 67 20 66 6c 61 67 73 20 61 ncluding flags a
1bd0: 73 20 65 78 70 6c 61 69 6e 65 64 20 62 65 6c 6f s explained belo
1be0: 77 2c 20 32 2e 20 74 68 65 20 64 61 74 61 20 70 w, 2. the data p
1bf0: 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 43 41 ortion of the CA
1c00: 4e 20 6d 65 73 73 61 67 65 20 61 73 20 61 20 62 N message as a b
1c10: 79 74 65 20 61 72 72 61 79 2c 20 33 2e 20 74 68 yte array, 3. th
1c20: 65 20 69 6e 74 65 72 66 61 63 65 20 69 6e 64 65 e interface inde
1c30: 78 20 6f 66 20 74 68 65 20 43 41 4e 20 69 6e 74 x of the CAN int
1c40: 65 72 66 61 63 65 20 74 68 65 20 43 41 4e 20 6d erface the CAN m
1c50: 65 73 73 61 67 65 20 77 61 73 20 72 65 63 65 69 essage was recei
1c60: 76 65 64 20 66 72 6f 6d 2c 20 61 6e 64 20 34 2e ved from, and 4.
1c70: 20 61 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 a boolean value
1c80: 20 69 6e 64 69 63 61 74 69 6e 67 20 69 66 20 6d indicating if m
1c90: 6f 72 65 20 43 41 4e 20 6d 65 73 73 61 67 65 73 ore CAN messages
1ca0: 20 63 61 6e 20 62 65 20 72 65 61 64 20 75 73 69 can be read usi
1cb0: 6e 67 20 3c 74 74 3e 63 61 6e 20 72 65 61 64 3c ng <tt>can read<
1cc0: 2f 74 74 3e 2e 0d 0a 0d 0a 20 20 20 20 46 6f 72 /tt>..... For
1cd0: 20 3c 62 3e 43 41 4e 5f 42 43 4d 3c 2f 62 3e 20 <b>CAN_BCM</b>
1ce0: 63 68 61 6e 6e 65 6c 73 20 69 74 20 69 73 20 6d channels it is m
1cf0: 61 64 65 20 75 70 20 6f 66 20 61 74 20 6c 65 61 ade up of at lea
1d00: 73 74 20 73 65 76 65 6e 20 65 6c 65 6d 65 6e 74 st seven element
1d10: 73 3a 20 31 2e 20 74 68 65 20 69 6e 74 65 72 66 s: 1. the interf
1d20: 61 63 65 20 69 6e 64 65 78 2c 20 32 2e 20 74 68 ace index, 2. th
1d30: 65 20 6d 61 6a 6f 72 20 43 41 4e 20 69 64 65 6e e major CAN iden
1d40: 74 69 66 69 65 72 20 28 73 65 65 20 61 62 6f 76 tifier (see abov
1d50: 65 29 2c 20 33 2e 20 74 68 65 20 3c 74 74 3e 42 e), 3. the <tt>B
1d60: 43 4d 3c 2f 74 74 3e 20 6f 70 65 72 61 74 69 6f CM</tt> operatio
1d70: 6e 20 61 73 20 6f 6e 65 20 6f 66 20 3c 74 74 3e n as one of <tt>
1d80: 54 58 5f 53 54 41 54 55 53 3c 2f 74 74 3e 2c 20 TX_STATUS</tt>,
1d90: 3c 74 74 3e 54 58 5f 45 58 50 49 52 45 44 3c 2f <tt>TX_EXPIRED</
1da0: 74 74 3e 2c 20 3c 74 74 3e 52 58 5f 53 54 41 54 tt>, <tt>RX_STAT
1db0: 55 53 3c 2f 74 74 3e 2c 20 3c 74 74 3e 52 58 5f US</tt>, <tt>RX_
1dc0: 54 49 4d 45 4f 55 54 3c 2f 74 74 3e 2c 20 6f 72 TIMEOUT</tt>, or
1dd0: 20 3c 74 74 3e 52 58 5f 43 48 41 4e 47 45 44 3c <tt>RX_CHANGED<
1de0: 2f 74 74 3e 2c 20 34 2e 20 74 68 65 20 3c 74 74 /tt>, 4. the <tt
1df0: 3e 42 43 4d 3c 2f 74 74 3e 20 66 6c 61 67 73 20 >BCM</tt> flags
1e00: 61 73 20 61 6e 20 69 6e 74 65 67 65 72 20 6e 75 as an integer nu
1e10: 6d 62 65 72 2c 20 20 35 2e 20 74 68 65 20 3c 74 mber, 5. the <t
1e20: 74 3e 42 43 4d 3c 2f 74 74 3e 20 63 6f 75 6e 74 t>BCM</tt> count
1e30: 20 66 69 65 6c 64 20 61 73 20 61 6e 20 69 6e 74 field as an int
1e40: 65 67 65 72 20 6e 75 6d 62 65 72 2c 20 36 2e 20 eger number, 6.
1e50: 74 68 65 20 66 69 72 73 74 20 3c 74 74 3e 42 43 the first <tt>BC
1e60: 4d 3c 2f 74 74 3e 20 69 6e 74 65 72 76 61 6c 20 M</tt> interval
1e70: 66 69 65 6c 64 20 61 73 20 61 20 66 6c 6f 61 74 field as a float
1e80: 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 ing point number
1e90: 2c 20 61 6e 64 20 37 2e 20 74 68 65 20 73 65 63 , and 7. the sec
1ea0: 6f 6e 64 20 3c 74 74 3e 42 43 4d 3c 2f 74 74 3e ond <tt>BCM</tt>
1eb0: 20 69 6e 74 65 72 76 61 6c 20 66 69 65 6c 64 20 interval field
1ec0: 61 73 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f as a floating po
1ed0: 69 6e 74 20 6e 75 6d 62 65 72 2e 20 57 68 65 6e int number. When
1ee0: 20 43 41 4e 20 66 72 61 6d 65 73 20 61 72 65 20 CAN frames are
1ef0: 70 61 72 74 20 6f 66 20 74 68 65 20 3c 74 74 3e part of the <tt>
1f00: 42 43 4d 3c 2f 74 74 3e 20 6d 65 73 73 61 67 65 BCM</tt> message
1f10: 2c 20 65 61 63 68 20 66 72 61 6d 65 20 69 73 20 , each frame is
1f20: 61 20 70 61 69 72 20 6f 66 20 43 41 4e 20 69 64 a pair of CAN id
1f30: 65 6e 74 69 66 69 65 72 20 61 73 20 69 6e 74 65 entifier as inte
1f40: 67 65 72 20 6e 75 6d 62 65 72 20 61 6e 64 20 74 ger number and t
1f50: 68 65 20 70 61 79 6c 6f 61 64 20 61 73 20 62 79 he payload as by
1f60: 74 65 20 61 72 72 61 79 20 6f 66 20 6c 65 6e 67 te array of leng
1f70: 74 68 20 30 20 74 6f 20 38 20 66 6f 72 20 6e 6f th 0 to 8 for no
1f80: 72 6d 61 6c 20 66 72 61 6d 65 73 20 6f 72 20 61 rmal frames or a
1f90: 6e 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 n integer number
1fa0: 20 66 6f 72 20 52 54 52 20 66 72 61 6d 65 73 2e for RTR frames.
1fb0: 0d 0a 0d 0a 3c 74 74 3e 63 61 6e 20 72 65 73 74 ....<tt>can rest
1fc0: 61 72 74 20 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 art <i>ifname</i
1fd0: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 50 65 ></tt>.... Pe
1fe0: 72 66 6f 72 6d 73 20 61 20 6c 69 6e 6b 20 72 65 rforms a link re
1ff0: 73 74 61 72 74 20 6f 6e 20 74 68 65 20 43 41 4e start on the CAN
2000: 20 69 6e 74 65 72 66 61 63 65 20 3c 74 74 3e 3c interface <tt><
2010: 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 i>ifname</i></tt
2020: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 63 61 6e 20 72 65 >.....<tt>can re
2030: 73 74 61 72 74 5f 6d 73 20 3c 69 3e 69 66 6e 61 start_ms <i>ifna
2040: 6d 65 20 3f 6d 73 3f 3c 2f 69 3e 3c 2f 74 74 3e me ?ms?</i></tt>
2050: 0d 0a 0d 0a 20 20 20 20 47 65 74 73 20 6f 72 20 .... Gets or
2060: 73 65 74 73 20 74 68 65 20 72 65 73 74 61 72 74 sets the restart
2070: 20 74 69 6d 65 72 20 6f 66 20 74 68 65 20 43 41 timer of the CA
2080: 4e 20 69 6e 74 65 72 66 61 63 65 20 3c 74 74 3e N interface <tt>
2090: 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 <i>ifname</i></t
20a0: 74 3e 2e 20 3c 74 74 3e 3c 69 3e 6d 73 3c 2f 69 t>. <tt><i>ms</i
20b0: 3e 3c 2f 74 74 3e 20 6d 75 73 74 20 62 65 20 73 ></tt> must be s
20c0: 70 65 63 69 66 69 65 64 20 61 73 20 70 6f 73 69 pecified as posi
20d0: 74 69 76 65 20 69 6e 74 65 67 65 72 20 6e 75 6d tive integer num
20e0: 62 65 72 20 6f 66 20 6d 69 6c 6c 69 73 65 63 6f ber of milliseco
20f0: 6e 64 73 2e 0d 0a 0d 0a 3c 74 74 3e 63 61 6e 20 nds.....<tt>can
2100: 73 74 61 72 74 20 3c 69 3e 69 66 6e 61 6d 65 3c start <i>ifname<
2110: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 /i></tt>....
2120: 50 65 72 66 6f 72 6d 73 20 61 20 6c 69 6e 6b 20 Performs a link
2130: 73 74 61 72 74 75 70 20 6f 6e 20 74 68 65 20 43 startup on the C
2140: 41 4e 20 69 6e 74 65 72 66 61 63 65 20 3c 74 74 AN interface <tt
2150: 3e 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f ><i>ifname</i></
2160: 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 63 61 6e 20 tt>.....<tt>can
2170: 73 74 61 74 65 20 3c 69 3e 69 66 6e 61 6d 65 3c state <i>ifname<
2180: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 /i></tt>....
2190: 52 65 74 72 69 65 76 65 73 20 74 68 65 20 6c 69 Retrieves the li
21a0: 6e 6d 6b 20 73 74 61 74 65 20 6f 66 20 74 68 65 nmk state of the
21b0: 20 43 41 4e 20 69 6e 74 65 72 66 61 63 65 20 3c CAN interface <
21c0: 74 74 3e 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e tt><i>ifname</i>
21d0: 3c 2f 74 74 3e 2e 20 54 68 65 20 72 65 73 75 6c </tt>. The resul
21e0: 74 20 69 73 20 6f 6e 65 20 6f 66 20 3c 74 74 3e t is one of <tt>
21f0: 65 72 72 6f 72 5f 61 63 74 69 76 65 3c 2f 74 74 error_active</tt
2200: 3e 2c 20 3c 74 74 3e 20 65 72 72 6f 72 5f 77 61 >, <tt> error_wa
2210: 72 6e 69 6e 67 3c 2f 74 74 3e 2c 20 3c 74 74 3e rning</tt>, <tt>
2220: 65 72 72 6f 72 5f 70 61 73 73 69 76 65 3c 2f 74 error_passive</t
2230: 74 3e 2c 20 3c 74 74 3e 62 75 73 5f 6f 66 66 3c t>, <tt>bus_off<
2240: 2f 74 74 3e 2c 20 3c 74 74 3e 73 74 6f 70 70 65 /tt>, <tt>stoppe
2250: 64 3c 2f 74 74 3e 2c 20 3c 74 74 3e 73 6c 65 65 d</tt>, <tt>slee
2260: 70 69 6e 67 3c 2f 74 74 3e 2c 20 6f 72 20 3c 74 ping</tt>, or <t
2270: 74 3e 75 6e 6b 6e 6f 77 6e 3c 2f 74 74 3e 2e 0d t>unknown</tt>..
2280: 0a 0d 0a 3c 74 74 3e 63 61 6e 20 73 74 6f 70 20 ...<tt>can stop
2290: 3c 69 3e 69 66 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 <i>ifname</i></t
22a0: 74 3e 0d 0a 0d 0a 20 20 20 20 50 65 72 66 6f 72 t>.... Perfor
22b0: 6d 73 20 61 20 6c 69 6e 6b 20 73 74 6f 70 20 6f ms a link stop o
22c0: 6e 20 74 68 65 20 43 41 4e 20 69 6e 74 65 72 66 n the CAN interf
22d0: 61 63 65 20 3c 74 74 3e 3c 69 3e 69 66 6e 61 6d ace <tt><i>ifnam
22e0: 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c e</i></tt>.....<
22f0: 74 74 3e 63 61 6e 20 77 72 69 74 65 20 3c 69 3e tt>can write <i>
2300: 63 68 61 6e 20 63 61 6e 69 64 20 64 61 74 61 20 chan canid data
2310: 3f 69 66 69 6e 64 65 78 3f 3c 2f 69 3e 3c 2f 74 ?ifindex?</i></t
2320: 74 3e 0d 0a 0d 0a 20 20 20 20 57 72 69 74 65 73 t>.... Writes
2330: 20 61 20 3c 62 3e 43 41 4e 5f 52 41 57 3c 2f 62 a <b>CAN_RAW</b
2340: 3e 20 6d 65 73 73 61 67 65 20 74 6f 20 3c 74 74 > message to <tt
2350: 3e 3c 69 3e 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 ><i>chan</i></tt
2360: 3e 2e 20 3c 74 74 3e 3c 69 3e 63 61 6e 69 64 3c >. <tt><i>canid<
2370: 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 74 68 65 20 /i></tt> is the
2380: 20 43 41 4e 20 69 64 65 6e 74 69 66 69 65 72 20 CAN identifier
2390: 61 73 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 as integer numbe
23a0: 72 2c 20 3c 74 74 3e 3c 69 3e 64 61 74 61 3c 2f r, <tt><i>data</
23b0: 69 3e 3c 2f 74 74 3e 20 61 20 62 79 74 65 20 61 i></tt> a byte a
23c0: 72 72 61 79 20 6f 66 20 74 68 65 20 64 61 74 61 rray of the data
23d0: 20 74 6f 20 62 65 20 73 65 6e 74 2e 20 54 68 65 to be sent. The
23e0: 20 6f 70 74 69 6f 6e 61 6c 20 3c 74 74 3e 3c 69 optional <tt><i
23f0: 3e 69 66 69 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 >ifindex</i></tt
2400: 3e 20 69 73 20 74 68 65 20 43 41 4e 20 69 6e 74 > is the CAN int
2410: 65 72 66 61 63 65 20 69 6e 64 65 78 20 28 73 65 erface index (se
2420: 65 20 3c 74 74 3e 63 61 6e 20 69 6e 74 65 72 66 e <tt>can interf
2430: 61 63 65 73 3c 2f 74 74 3e 29 20 6f 6e 20 77 68 aces</tt>) on wh
2440: 69 63 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 ich the message
2450: 69 73 20 74 6f 20 62 65 20 73 65 6e 74 2e 20 49 is to be sent. I
2460: 74 20 69 73 20 6d 61 6e 64 61 74 6f 72 79 20 74 t is mandatory t
2470: 6f 20 73 70 65 63 69 66 79 20 3c 74 74 3e 3c 69 o specify <tt><i
2480: 3e 69 66 69 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 >ifindex</i></tt
2490: 3e 20 77 68 65 6e 20 3c 74 74 3e 3c 69 3e 63 68 > when <tt><i>ch
24a0: 61 6e 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 62 an</i></tt> is b
24b0: 6f 75 6e 64 20 74 6f 20 61 6c 6c 20 69 6e 74 65 ound to all inte
24c0: 72 66 61 63 65 73 2c 20 69 2e 65 2e 20 74 68 65 rfaces, i.e. the
24d0: 20 69 6e 74 65 72 66 61 63 65 20 6e 61 6d 65 20 interface name
24e0: 6f 6e 20 3c 74 74 3e 63 61 6e 20 6f 70 65 6e 3c on <tt>can open<
24f0: 2f 74 74 3e 20 77 61 73 20 61 6e 20 65 6d 70 74 /tt> was an empt
2500: 79 20 73 74 72 69 6e 67 2e 0d 0a 0d 0a 3c 74 74 y string.....<tt
2510: 3e 63 61 6e 20 77 72 69 74 65 20 3c 69 3e 63 68 >can write <i>ch
2520: 61 6e 20 6f 70 63 6f 64 65 20 66 6c 61 67 73 20 an opcode flags
2530: 63 6f 75 6e 74 20 74 69 6d 65 31 20 74 69 6d 65 count time1 time
2540: 32 20 63 61 6e 69 64 20 3f 69 66 69 6e 64 65 78 2 canid ?ifindex
2550: 20 2e 2e 2e 3f 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a ...?</i></tt>..
2560: 0d 0a 20 20 20 20 57 72 69 74 65 73 20 61 20 3c .. Writes a <
2570: 62 3e 43 41 4e 5f 42 43 4d 3c 2f 62 3e 20 6d 65 b>CAN_BCM</b> me
2580: 73 73 61 67 65 20 74 6f 20 3c 74 74 3e 3c 69 3e ssage to <tt><i>
2590: 63 68 61 6e 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 3c chan</i></tt>. <
25a0: 74 74 3e 3c 69 3e 6f 70 63 6f 64 65 3c 2f 69 3e tt><i>opcode</i>
25b0: 3c 2f 74 74 3e 20 6d 75 73 74 20 62 65 20 61 20 </tt> must be a
25c0: 3c 74 74 3e 42 43 4d 3c 2f 74 74 3e 20 6f 70 65 <tt>BCM</tt> ope
25d0: 72 61 74 69 6f 6e 20 6f 75 74 20 6f 66 20 74 68 ration out of th
25e0: 65 20 73 65 74 20 3c 74 74 3e 54 58 5f 53 45 54 e set <tt>TX_SET
25f0: 55 50 3c 2f 74 74 3e 2c 20 3c 74 74 3e 54 58 5f UP</tt>, <tt>TX_
2600: 44 45 4c 45 54 45 3c 2f 74 74 3e 2c 20 3c 74 74 DELETE</tt>, <tt
2610: 3e 54 58 5f 52 45 41 44 3c 2f 74 74 3e 2c 20 3c >TX_READ</tt>, <
2620: 74 74 3e 54 58 5f 53 45 4e 44 3c 2f 74 74 3e 2c tt>TX_SEND</tt>,
2630: 20 3c 74 74 3e 52 58 5f 53 45 54 55 50 3c 2f 74 <tt>RX_SETUP</t
2640: 74 3e 2c 20 3c 74 74 3e 52 58 5f 44 45 4c 45 54 t>, <tt>RX_DELET
2650: 45 3c 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74 3e E</tt>, and <tt>
2660: 52 58 5f 52 45 41 44 3c 2f 74 74 3e 2e 20 3c 74 RX_READ</tt>. <t
2670: 74 3e 3c 69 3e 66 6c 61 67 73 3c 2f 69 3e 3c 2f t><i>flags</i></
2680: 74 74 3e 20 6d 75 73 74 20 62 65 20 61 20 6c 69 tt> must be a li
2690: 73 74 20 77 69 74 68 20 7a 65 72 6f 20 6f 72 20 st with zero or
26a0: 6d 6f 72 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 more elements of
26b0: 20 74 68 65 20 73 65 74 20 3c 74 74 3e 53 45 54 the set <tt>SET
26c0: 54 49 4d 45 52 3c 2f 74 74 3e 2c 20 3c 74 74 3e TIMER</tt>, <tt>
26d0: 53 54 41 52 54 54 49 4d 45 52 3c 2f 74 74 3e 2c STARTTIMER</tt>,
26e0: 20 3c 74 74 3e 54 58 5f 43 4f 55 4e 54 45 56 54 <tt>TX_COUNTEVT
26f0: 3c 2f 74 74 3e 2c 20 3c 74 74 3e 54 58 5f 41 4e </tt>, <tt>TX_AN
2700: 4e 4f 55 4e 43 45 3c 2f 74 74 3e 2c 20 3c 74 74 NOUNCE</tt>, <tt
2710: 3e 54 58 5f 43 50 5f 43 41 4e 5f 49 44 3c 2f 74 >TX_CP_CAN_ID</t
2720: 74 3e 2c 20 3c 74 74 3e 52 58 5f 46 49 4c 54 45 t>, <tt>RX_FILTE
2730: 52 5f 49 44 3c 2f 74 74 3e 2c 20 3c 74 74 3e 52 R_ID</tt>, <tt>R
2740: 58 5f 43 48 45 43 4b 5f 44 4c 43 3c 2f 74 74 3e X_CHECK_DLC</tt>
2750: 2c 20 3c 74 74 3e 52 58 5f 4e 4f 5f 41 55 54 4f , <tt>RX_NO_AUTO
2760: 54 49 4d 45 52 3c 2f 74 74 3e 2c 20 3c 74 74 3e TIMER</tt>, <tt>
2770: 52 58 5f 41 4e 4e 4f 55 4e 43 45 5f 52 45 53 55 RX_ANNOUNCE_RESU
2780: 4d 45 3c 2f 74 74 3e 2c 20 3c 74 74 3e 54 58 5f ME</tt>, <tt>TX_
2790: 52 45 53 45 54 5f 4d 55 4c 54 49 5f 49 44 58 3c RESET_MULTI_IDX<
27a0: 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 52 58 /tt>, and <tt>RX
27b0: 5f 52 54 52 5f 46 52 41 4d 45 3c 2f 74 74 3e 2e _RTR_FRAME</tt>.
27c0: 20 3c 74 74 3e 3c 69 3e 63 6f 75 6e 74 3c 2f 69 <tt><i>count</i
27d0: 3e 3c 2f 74 74 3e 20 69 73 20 74 68 65 20 63 6f ></tt> is the co
27e0: 75 6e 74 65 72 20 66 6f 72 20 74 68 65 20 66 69 unter for the fi
27f0: 72 73 74 20 69 6e 74 65 72 76 61 6c 20 3c 74 74 rst interval <tt
2800: 3e 3c 69 3e 74 69 6d 65 31 3c 2f 69 3e 3c 2f 74 ><i>time1</i></t
2810: 74 3e 2e 20 54 68 65 20 69 6e 74 65 72 76 61 6c t>. The interval
2820: 73 20 3c 74 74 3e 3c 69 3e 74 69 6d 65 31 3c 2f s <tt><i>time1</
2830: 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e i></tt> and <tt>
2840: 3c 69 3e 74 69 6d 65 32 3c 2f 69 3e 3c 2f 74 74 <i>time2</i></tt
2850: 3e 20 6d 75 73 74 20 62 65 20 67 69 76 65 6e 20 > must be given
2860: 61 73 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e as floating poin
2870: 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 73 65 63 t numbers of sec
2880: 6f 6e 64 73 2e 20 3c 74 74 3e 3c 69 3e 63 61 6e onds. <tt><i>can
2890: 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 74 id</i></tt> is t
28a0: 68 65 20 6d 61 6a 6f 72 20 43 41 4e 20 69 64 65 he major CAN ide
28b0: 6e 74 69 66 69 65 72 20 66 6f 72 20 74 68 65 20 ntifier for the
28c0: 3c 74 74 3e 42 43 4d 3c 2f 74 74 3e 20 6d 65 73 <tt>BCM</tt> mes
28d0: 73 61 67 65 2e 20 3c 74 74 3e 3c 69 3e 69 66 69 sage. <tt><i>ifi
28e0: 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 ndex</i></tt> is
28f0: 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 69 the interface i
2900: 6e 64 65 78 20 77 68 69 63 68 20 69 73 20 72 65 ndex which is re
2910: 71 75 69 72 65 64 2c 20 69 66 20 74 68 65 20 3c quired, if the <
2920: 62 3e 43 41 4e 5f 42 43 4d 3c 2f 62 3e 20 63 68 b>CAN_BCM</b> ch
2930: 61 6e 6e 65 6c 20 77 61 73 20 62 6f 75 6e 64 20 annel was bound
2940: 74 6f 20 61 6c 6c 20 69 6e 74 65 72 66 61 63 65 to all interface
2950: 73 2e 20 41 6c 6c 20 66 6f 6c 6c 6f 77 69 6e 67 s. All following
2960: 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 optional argume
2970: 6e 74 73 20 6d 61 6b 65 20 75 70 20 43 41 4e 20 nts make up CAN
2980: 66 72 61 6d 65 73 20 61 6e 64 20 6d 75 73 74 20 frames and must
2990: 62 65 20 70 61 69 72 73 20 6f 66 20 61 20 43 41 be pairs of a CA
29a0: 4e 20 69 64 65 6e 74 69 66 69 65 72 20 61 6e 64 N identifier and
29b0: 20 61 20 62 79 74 65 20 61 72 72 61 79 20 6f 66 a byte array of
29c0: 20 30 20 75 70 20 74 6f 20 38 20 62 79 74 65 73 0 up to 8 bytes
29d0: 20 66 6f 72 20 6e 6f 72 6d 61 6c 20 66 72 61 6d for normal fram
29e0: 65 73 2c 20 6f 72 20 61 6e 20 69 6e 74 65 67 65 es, or an intege
29f0: 72 20 61 73 20 64 61 74 61 20 6c 65 6e 67 74 68 r as data length
2a00: 20 66 6f 72 20 52 54 52 20 66 72 61 6d 65 73 2e for RTR frames.
2a10: 0d 0a 0d 0a 3c 68 33 3e 43 41 4e 20 49 64 65 6e ....<h3>CAN Iden
2a20: 74 69 66 69 65 72 73 3c 2f 68 33 3e 0d 0a 0d 0a tifiers</h3>....
2a30: 54 68 65 20 4c 69 6e 75 78 20 53 6f 63 6b 65 74 The Linux Socket
2a40: 43 41 4e 20 69 6e 74 65 72 66 61 63 65 20 64 65 CAN interface de
2a50: 66 69 6e 65 73 20 73 70 65 63 69 61 6c 20 62 69 fines special bi
2a60: 74 73 20 69 6e 20 43 41 4e 20 69 64 65 6e 74 69 ts in CAN identi
2a70: 66 69 65 72 73 20 77 68 69 63 68 20 61 72 65 20 fiers which are
2a80: 6d 61 64 65 20 75 70 20 6f 66 20 74 68 65 20 74 made up of the t
2a90: 68 72 65 65 20 6d 6f 73 74 20 73 69 67 6e 69 66 hree most signif
2aa0: 69 63 61 6e 74 20 62 69 74 73 20 69 6e 20 61 20 icant bits in a
2ab0: 33 32 20 62 69 74 20 69 6e 74 65 67 65 72 3a 20 32 bit integer:
2ac0: 30 78 38 30 30 30 30 30 30 30 20 66 6f 72 20 65 0x80000000 for e
2ad0: 78 74 65 6e 64 65 64 20 66 72 61 6d 65 20 66 6f xtended frame fo
2ae0: 72 6d 61 74 20 28 3c 74 74 3e 45 46 46 3c 2f 74 rmat (<tt>EFF</t
2af0: 74 3e 29 2c 20 30 78 34 30 30 30 30 30 30 30 20 t>), 0x40000000
2b00: 66 6f 72 20 72 65 6d 6f 74 65 20 74 72 61 6e 73 for remote trans
2b10: 6d 69 73 73 69 6f 6e 20 72 65 71 75 65 73 74 20 mission request
2b20: 28 3c 74 74 3e 52 54 52 3c 2f 74 74 3e 29 2c 20 (<tt>RTR</tt>),
2b30: 61 6e 64 20 30 78 32 30 30 30 30 30 30 30 20 66 and 0x20000000 f
2b40: 6f 72 20 65 72 72 6f 72 20 66 72 61 6d 65 73 20 or error frames
2b50: 28 3c 74 74 3e 45 52 52 3c 2f 74 74 3e 29 2e 20 (<tt>ERR</tt>).
2b60: 54 68 65 20 6c 6f 77 65 72 20 32 39 20 28 66 6f The lower 29 (fo
2b70: 72 20 3c 74 74 3e 45 46 46 3c 2f 74 74 3e 29 20 r <tt>EFF</tt>)
2b80: 6f 72 20 31 31 20 28 66 6f 72 20 3c 74 74 3e 53 or 11 (for <tt>S
2b90: 46 46 3c 2f 74 74 3e 29 20 62 69 74 73 20 6d 61 FF</tt>) bits ma
2ba0: 6b 65 20 75 70 20 74 68 65 20 43 41 4e 20 69 64 ke up the CAN id
2bb0: 65 6e 74 69 66 69 65 72 2e 20 49 6e 20 6f 72 64 entifier. In ord
2bc0: 65 72 20 74 6f 20 72 65 74 72 69 65 76 65 20 74 er to retrieve t
2bd0: 68 65 20 72 65 61 6c 20 43 41 4e 20 69 64 65 6e he real CAN iden
2be0: 74 69 66 69 65 72 20 6f 66 20 20 61 20 72 65 63 tifier of a rec
2bf0: 65 69 76 65 64 20 43 41 4e 20 6d 65 73 73 61 67 eived CAN messag
2c00: 65 20 66 72 6f 6d 20 3c 74 74 3e 63 61 6e 20 72 e from <tt>can r
2c10: 65 61 64 3c 2f 74 74 3e 20 61 20 62 69 6e 61 72 ead</tt> a binar
2c20: 79 20 61 6e 64 20 77 69 74 68 20 74 68 65 20 6d y and with the m
2c30: 61 73 6b 73 20 30 78 31 46 46 46 46 46 46 46 20 asks 0x1FFFFFFF
2c40: 6f 72 20 30 78 37 46 46 20 6d 75 73 74 20 62 65 or 0x7FF must be
2c50: 20 63 61 72 72 69 65 64 20 6f 75 74 2e 20 49 6e carried out. In
2c60: 20 6f 72 64 65 72 20 74 6f 20 73 65 6e 64 20 61 order to send a
2c70: 6e 20 3c 74 74 3e 52 54 52 3c 2f 74 74 3e 20 6d n <tt>RTR</tt> m
2c80: 65 73 73 61 67 65 2c 20 74 68 65 20 43 41 4e 20 essage, the CAN
2c90: 69 64 65 6e 74 69 66 69 65 72 20 6d 75 73 74 20 identifier must
2ca0: 62 65 20 62 69 6e 61 72 79 20 6f 72 2d 65 64 20 be binary or-ed
2cb0: 77 69 74 68 20 30 78 34 30 30 30 30 30 30 30 20 with 0x40000000
2cc0: 66 6f 72 20 3c 74 74 3e 63 61 6e 20 77 72 69 74 for <tt>can writ
2cd0: 65 3c 2f 74 74 3e 2e 20 49 6e 20 6f 72 64 65 72 e</tt>. In order
2ce0: 20 74 6f 20 73 65 6e 64 20 61 20 32 39 20 62 69 to send a 29 bi
2cf0: 74 20 43 41 4e 20 69 64 65 6e 74 69 66 69 65 72 t CAN identifier
2d00: 20 69 74 20 6d 75 73 74 20 62 65 20 6f 72 2d 65 it must be or-e
2d10: 64 20 77 69 74 68 20 30 78 38 30 30 30 30 30 30 d with 0x8000000
2d20: 30 2e 0d 0a 0d 0a 3c 68 33 3e 43 68 61 6e 6e 65 0.....<h3>Channe
2d30: 6c 20 4f 70 74 69 6f 6e 73 3c 2f 68 33 3e 0d 0a l Options</h3>..
2d40: 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ..The following
2d50: 6c 69 73 74 20 64 65 73 63 72 69 62 65 73 20 74 list describes t
2d60: 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 68 he additional ch
2d70: 61 6e 6e 65 6c 20 6f 70 74 69 6f 6e 73 20 6f 66 annel options of
2d80: 20 43 41 4e 20 63 68 61 6e 6e 65 6c 73 2e 0d 0a CAN channels...
2d90: 0d 0a 3c 74 74 3e 2d 65 72 72 6f 72 3c 2f 74 74 ..<tt>-error</tt
2da0: 3e 0d 0a 0d 0a 20 20 20 20 54 68 65 20 6c 61 73 >.... The las
2db0: 74 20 73 79 73 74 65 6d 20 65 72 72 6f 72 20 6d t system error m
2dc0: 65 73 73 61 67 65 20 6f 6e 20 74 68 65 20 63 68 essage on the ch
2dd0: 61 6e 6e 65 6c 2e 20 54 68 69 73 20 69 73 20 61 annel. This is a
2de0: 20 72 65 61 64 2d 6f 6e 6c 79 20 6f 70 74 69 6f read-only optio
2df0: 6e 2e 0d 0a 0d 0a 3c 74 74 3e 2d 66 69 6c 74 65 n.....<tt>-filte
2e00: 72 20 3c 69 3e 3f 6c 69 73 74 3f 3c 2f 69 3e 3c r <i>?list?</i><
2e10: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 4d 65 73 73 /tt>.... Mess
2e20: 61 67 65 20 66 69 6c 74 65 72 73 20 61 70 70 6c age filters appl
2e30: 69 65 64 20 6f 6e 20 72 65 63 65 70 74 69 6f 6e ied on reception
2e40: 2e 20 3c 74 74 3e 3c 69 3e 6c 69 73 74 3c 2f 69 . <tt><i>list</i
2e50: 3e 3c 2f 74 74 3e 20 6d 75 73 74 20 62 65 20 6d ></tt> must be m
2e60: 61 64 65 20 75 70 20 6f 66 20 61 6e 20 65 76 65 ade up of an eve
2e70: 6e 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 74 65 n number of inte
2e80: 67 65 72 73 20 73 70 65 63 69 66 79 69 6e 67 20 gers specifying
2e90: 43 41 4e 20 69 64 65 6e 74 69 66 69 65 72 73 20 CAN identifiers
2ea0: 61 6e 64 20 6d 61 73 6b 73 2e 20 54 68 65 20 64 and masks. The d
2eb0: 65 66 61 75 6c 74 20 69 73 20 6e 6f 20 66 69 6c efault is no fil
2ec0: 74 65 72 69 6e 67 2c 20 65 78 70 72 65 73 73 65 tering, expresse
2ed0: 64 20 61 73 20 74 77 6f 20 7a 65 72 6f 20 76 61 d as two zero va
2ee0: 6c 75 65 73 2e 20 55 70 20 74 6f 20 31 36 20 66 lues. Up to 16 f
2ef0: 69 6c 74 65 72 73 20 63 61 6e 20 62 65 20 73 70 ilters can be sp
2f00: 65 63 69 66 69 65 64 2e 20 46 6f 72 20 64 65 74 ecified. For det
2f10: 61 69 6c 73 20 72 65 66 65 72 20 74 6f 20 3c 62 ails refer to <b
2f20: 3e 2f 75 73 72 2f 69 6e 63 6c 75 64 65 2f 6c 69 >/usr/include/li
2f30: 6e 75 78 2f 63 61 6e 2e 68 3c 2f 62 3e 2e 0d 0a nux/can.h</b>...
2f40: 0d 0a 3c 74 74 3e 2d 6c 6f 6f 70 62 61 63 6b 20 ..<tt>-loopback
2f50: 3c 69 3e 3f 62 6f 6f 6c 3f 3c 2f 69 3e 3c 2f 74 <i>?bool?</i></t
2f60: 74 3e 0d 0a 0d 0a 20 20 20 20 4d 65 73 73 61 67 t>.... Messag
2f70: 65 73 20 73 65 6e 74 20 61 72 65 20 6c 6f 6f 70 es sent are loop
2f80: 65 64 20 62 61 63 6b 20 6f 6e 20 74 68 65 20 6c ed back on the l
2f90: 6f 63 61 6c 20 73 79 73 74 65 6d 20 20 77 68 65 ocal system whe
2fa0: 6e 20 20 65 6e 61 62 6c 65 64 20 28 6f 6e 20 62 n enabled (on b
2fb0: 79 20 64 65 66 61 75 6c 74 29 2e 0d 0a 0d 0a 3c y default).....<
2fc0: 74 74 3e 2d 6f 77 6e 6d 73 67 73 20 3c 69 3e 3f tt>-ownmsgs <i>?
2fd0: 62 6f 6f 6c 3f 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a bool?</i></tt>..
2fe0: 0d 0a 20 20 20 20 4d 65 73 73 61 67 65 73 20 73 .. Messages s
2ff0: 65 6e 74 20 61 72 65 20 72 65 63 65 69 76 65 64 ent are received
3000: 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 63 68 61 on the same cha
3010: 6e 6e 65 6c 20 77 68 65 6e 20 65 6e 61 62 6c 65 nnel when enable
3020: 64 20 28 6f 66 66 20 62 79 20 64 65 66 61 75 6c d (off by defaul
3030: 74 29 2e 0d 0a 0d 0a 3c 68 33 3e 4c 69 6e 6b 20 t).....<h3>Link
3040: 4d 61 6e 61 67 65 6d 65 6e 74 3c 2f 68 33 3e 0d Management</h3>.
3050: 0a 0d 0a 54 68 65 20 6c 69 6e 6b 20 6d 61 6e 61 ...The link mana
3060: 67 65 6d 65 6e 74 20 73 75 62 63 6f 6d 6d 61 6e gement subcomman
3070: 64 73 20 3c 74 74 3e 62 69 74 72 61 74 65 3c 2f ds <tt>bitrate</
3080: 74 74 3e 2c 20 3c 74 74 3e 62 69 74 74 69 6d 69 tt>, <tt>bittimi
3090: 6e 67 3c 2f 74 74 3e 2c 20 3c 74 74 3e 62 69 74 ng</tt>, <tt>bit
30a0: 74 69 6d 69 6e 67 5f 63 6f 6e 73 74 3c 2f 74 74 timing_const</tt
30b0: 3e 2c 20 3c 74 74 3e 62 65 72 72 3c 2f 74 74 3e >, <tt>berr</tt>
30c0: 2c 20 3c 74 74 3e 63 6c 6f 63 6b 3c 2f 74 74 3e , <tt>clock</tt>
30d0: 2c 20 3c 74 74 3e 63 74 6c 72 6d 6f 64 65 3c 2f , <tt>ctlrmode</
30e0: 74 74 3e 2c 20 3c 74 74 3e 64 65 76 73 74 61 74 tt>, <tt>devstat
30f0: 3c 2f 74 74 3e 2c 20 3c 74 74 3e 72 65 73 74 61 </tt>, <tt>resta
3100: 72 74 3c 2f 74 74 3e 2c 20 3c 74 74 3e 72 65 73 rt</tt>, <tt>res
3110: 74 61 72 74 5f 6d 73 3c 2f 74 74 3e 2c 20 3c 74 tart_ms</tt>, <t
3120: 74 3e 73 74 61 72 74 3c 2f 74 74 3e 2c 20 3c 74 t>start</tt>, <t
3130: 74 3e 73 74 61 74 65 3c 2f 74 74 3e 2c 20 61 6e t>state</tt>, an
3140: 64 20 3c 74 74 3e 73 74 6f 70 3c 2f 74 74 3e 20 d <tt>stop</tt>
3150: 64 65 70 65 6e 64 20 6f 6e 20 61 6e 20 69 6e 73 depend on an ins
3160: 74 61 6c 6c 65 64 20 3c 62 3e 6c 69 62 73 6f 63 talled <b>libsoc
3170: 6b 65 74 63 61 6e 3c 2f 62 3e 20 73 68 61 72 65 ketcan</b> share
3180: 64 20 6c 69 62 72 61 72 79 20 66 6f 72 20 70 72 d library for pr
3190: 6f 70 65 72 20 6f 70 65 72 61 74 69 6f 6e 2e 20 oper operation.
31a0: 4f 74 68 65 72 77 69 73 65 20 74 68 65 79 20 72 Otherwise they r
31b0: 65 70 6f 72 74 20 22 66 75 6e 63 74 69 6f 6e 20 eport "function
31c0: 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 22 not implemented"
31d0: 2e 20 41 6c 6c 20 63 68 61 6e 67 65 73 20 6f 66 . All changes of
31e0: 20 6c 69 6e 6b 20 73 74 61 74 65 20 62 79 20 74 link state by t
31f0: 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 75 73 hese commands us
3200: 75 61 6c 6c 79 20 72 65 71 75 69 72 65 20 61 64 ually require ad
3210: 6d 69 6e 69 73 74 72 61 74 69 76 65 20 72 69 67 ministrative rig
3220: 68 74 73 2e 20 45 69 74 68 65 72 20 74 68 65 20 hts. Either the
3230: 63 61 6c 6c 69 6e 67 20 70 72 6f 63 65 73 73 20 calling process
3240: 6d 75 73 74 20 68 61 76 65 20 73 75 70 65 72 20 must have super
3250: 75 73 65 72 20 70 72 69 76 69 6c 65 67 65 73 20 user privileges
3260: 6f 72 20 74 68 65 20 3c 62 3e 43 41 50 5f 4e 45 or the <b>CAP_NE
3270: 54 5f 41 44 4d 49 4e 3c 2f 62 3e 20 63 61 70 61 T_ADMIN</b> capa
3280: 62 69 6c 69 74 79 20 6d 75 73 74 20 62 65 20 65 bility must be e
3290: 66 66 65 63 74 69 76 65 2e 20 54 68 65 20 6c 61 ffective. The la
32a0: 74 74 65 72 20 63 61 6e 20 62 65 20 61 63 68 69 tter can be achi
32b0: 65 76 65 64 20 62 79 20 61 20 63 6f 6d 6d 61 6e eved by a comman
32c0: 64 20 73 69 6d 69 6c 61 72 20 74 6f 3a 0d 0a 0d d similar to:...
32d0: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 20 20 20 .<verbatim>..
32e0: 20 73 65 74 63 61 70 20 63 61 70 5f 6e 65 74 5f setcap cap_net_
32f0: 61 64 6d 69 6e 2b 65 69 70 20 62 69 6e 61 72 79 admin+eip binary
3300: 2d 70 61 63 6b 61 67 65 2d 72 65 71 75 69 72 69 -package-requiri
3310: 6e 67 2d 74 63 6c 63 61 6e 0d 0a 3c 2f 76 65 72 ng-tclcan..</ver
3320: 62 61 74 69 6d 3e 0d 0a 0d 0a 46 75 72 74 68 65 batim>....Furthe
3330: 72 6d 6f 72 65 2c 20 72 65 74 72 69 65 76 69 6e rmore, retrievin
3340: 67 20 6c 69 6e 6b 20 69 6e 66 6f 72 6d 61 74 69 g link informati
3350: 6f 6e 20 64 65 70 65 6e 64 73 20 6f 6e 20 43 41 on depends on CA
3360: 4e 20 64 72 69 76 65 72 20 73 75 70 70 6f 72 74 N driver support
3370: 2e 20 55 73 75 61 6c 6c 79 2c 20 74 68 65 20 76 . Usually, the v
3380: 69 72 74 75 61 6c 20 43 41 4e 20 64 72 69 76 65 irtual CAN drive
3390: 72 20 3c 62 3e 76 63 61 6e 3c 2f 62 3e 20 61 6e r <b>vcan</b> an
33a0: 64 20 64 72 69 76 65 72 73 20 61 74 74 61 63 68 d drivers attach
33b0: 65 64 20 74 68 72 6f 75 67 68 20 61 20 73 65 72 ed through a ser
33c0: 69 61 6c 20 6c 69 6e 65 20 64 69 73 63 69 70 6c ial line discipl
33d0: 69 6e 65 20 28 75 73 69 6e 67 20 74 68 65 20 3c ine (using the <
33e0: 62 3e 73 6c 63 61 6e 5f 61 74 74 61 63 68 3c 2f b>slcan_attach</
33f0: 62 3e 20 6f 72 20 3c 62 3e 73 6c 63 61 6e 64 3c b> or <b>slcand<
3400: 2f 62 3e 20 70 72 6f 67 72 61 6d 73 29 20 6f 6e /b> programs) on
3410: 6c 79 20 70 72 6f 76 69 64 65 20 72 75 64 69 6d ly provide rudim
3420: 65 6e 74 61 72 79 20 6c 69 6e 6b 20 73 74 61 74 entary link stat
3430: 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0d 0a e information...
3440: 0d 0a 3c 68 33 3e 42 72 6f 61 64 63 61 73 74 20 ..<h3>Broadcast
3450: 4d 61 6e 61 67 65 72 20 45 78 61 6d 70 6c 65 73 Manager Examples
3460: 3c 2f 68 33 3e 0d 0a 0d 0a 4f 70 65 6e 20 3c 74 </h3>....Open <t
3470: 74 3e 42 43 4d 3c 2f 74 74 3e 20 63 68 61 6e 6e t>BCM</tt> chann
3480: 65 6c 3a 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d el:....<verbatim
3490: 3e 0d 0a 20 20 20 20 73 65 74 20 63 68 61 6e 20 >.. set chan
34a0: 5b 63 61 6e 20 62 63 6d 6f 70 65 6e 20 63 61 6e [can bcmopen can
34b0: 30 5d 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0]..</verbatim>.
34c0: 0a 0d 0a 53 63 68 65 64 75 6c 65 20 73 65 6e 64 ...Schedule send
34d0: 69 6e 67 20 74 68 65 20 70 61 74 74 65 72 6e 20 ing the pattern
34e0: 30 78 34 31 34 32 34 33 34 34 20 6f 6e 20 43 41 0x41424344 on CA
34f0: 4e 20 69 64 65 6e 74 69 66 69 65 72 20 30 78 31 N identifier 0x1
3500: 32 33 20 6f 6e 63 65 20 70 65 72 20 73 65 63 6f 23 once per seco
3510: 6e 64 3a 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d nd:....<verbatim
3520: 3e 0d 0a 20 20 20 20 63 61 6e 20 77 72 69 74 65 >.. can write
3530: 20 24 63 68 61 6e 20 54 58 5f 53 45 54 55 50 20 $chan TX_SETUP
3540: 5c 0d 0a 20 20 20 20 20 20 20 20 7b 53 45 54 54 \.. {SETT
3550: 49 4d 45 52 20 53 54 41 52 54 54 49 4d 45 52 7d IMER STARTTIMER}
3560: 20 5c 0d 0a 20 20 20 20 20 20 20 20 30 20 30 2e \.. 0 0.
3570: 30 20 31 2e 30 20 30 78 31 32 33 20 30 78 31 32 0 1.0 0x123 0x12
3580: 33 20 41 42 43 44 0d 0a 3c 2f 76 65 72 62 61 74 3 ABCD..</verbat
3590: 69 6d 3e 0d 0a 0d 0a 44 69 73 70 61 74 63 68 20 im>....Dispatch
35a0: 72 65 63 65 69 76 69 6e 67 20 43 41 4e 20 69 64 receiving CAN id
35b0: 65 6e 74 69 66 69 65 72 20 30 78 31 32 33 20 77 entifier 0x123 w
35c0: 69 74 68 20 75 70 64 61 74 65 20 72 61 74 65 20 ith update rate
35d0: 6c 69 6d 69 74 65 64 20 74 6f 20 74 77 6f 20 73 limited to two s
35e0: 65 63 6f 6e 64 73 3a 0d 0a 0d 0a 3c 76 65 72 62 econds:....<verb
35f0: 61 74 69 6d 3e 0d 0a 20 20 20 20 63 61 6e 20 77 atim>.. can w
3600: 72 69 74 65 20 24 63 68 61 6e 20 52 58 5f 53 45 rite $chan RX_SE
3610: 54 55 50 20 5c 0d 0a 20 20 20 20 20 20 20 20 7b TUP \.. {
3620: 53 45 54 54 49 4d 45 52 20 52 58 5f 46 49 4c 54 SETTIMER RX_FILT
3630: 45 52 5f 49 44 20 52 58 5f 41 4e 4e 4f 55 4e 43 ER_ID RX_ANNOUNC
3640: 45 5f 52 45 53 55 4d 45 7d 20 5c 0d 0a 20 20 20 E_RESUME} \..
3650: 20 20 20 20 20 30 20 30 2e 30 20 32 2e 30 20 30 0 0.0 2.0 0
3660: 78 31 32 33 0d 0a 3c 2f 76 65 72 62 61 74 69 6d x123..</verbatim
3670: 3e 0d 0a 0d 0a 44 75 6d 70 20 61 6c 6c 20 72 65 >....Dump all re
3680: 63 65 69 76 65 64 20 3c 74 74 3e 42 43 4d 3c 2f ceived <tt>BCM</
3690: 74 74 3e 20 6d 65 73 73 61 67 65 73 20 6f 6e 20 tt> messages on
36a0: 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 3a standard output:
36b0: 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a ....<verbatim>..
36c0: 20 20 20 20 70 72 6f 63 20 64 75 6d 70 20 63 68 proc dump ch
36d0: 61 6e 20 7b 70 75 74 73 20 5b 63 61 6e 20 64 75 an {puts [can du
36e0: 6d 70 20 24 63 68 61 6e 5d 7d 0d 0a 20 20 20 20 mp $chan]}..
36f0: 66 69 6c 65 65 76 65 6e 74 20 24 63 68 61 6e 20 fileevent $chan
3700: 72 65 61 64 61 62 6c 65 20 5b 6c 69 73 74 20 64 readable [list d
3710: 75 6d 70 20 24 63 68 61 6e 5d 0d 0a 3c 2f 76 65 ump $chan]..</ve
3720: 72 62 61 74 69 6d 3e 0d 0a 0a 5a 20 64 33 31 65 rbatim>...Z d31e
3730: 35 31 39 39 65 36 64 30 36 32 35 34 66 31 63 64 5199e6d06254f1cd
3740: 33 32 37 32 64 34 62 36 37 35 30 64 0a 3272d4b6750d.