[−][src]Crate socketcan_isotp
Socketcan ISO-TP support.
The Linux kernel supports using CAN-devices through a network-like API. This crate allows easy access to this functionality without having to wrestle libc calls.
ISO-TP allows sending data packets that exceed the eight byte of a default CAN frame. can-isotp is an ISO-TP kernel module that takes care of handling the ISO-TP protocol.
Instructions on how the can-isotp kernel module can be build and loaded can be found at https://github.com/hartkopp/can-isotp .
use socketcan_isotp::IsoTpSocket; fn main() -> Result<(), socketcan_isotp::Error> { let mut tp_socket = IsoTpSocket::open( "vcan0", 0x123, 0x321 )?; loop { let buffer = tp_socket.read()?; println!("read {} bytes", buffer.len()); // print TP frame data for x in buffer { print!("{:X?} ", x); } println!(""); } Ok(()) }
Structs
FlowControlOptions | Flow control options aka |
IsoTpBehaviour | |
IsoTpOptions | ISO-TP otions aka |
IsoTpSocket | An ISO-TP socketcan socket. |
LinkLayerOptions | Link layer options aka |
TxFlags |
Enums
Error | Possible errors |
Constants
AF_CAN | CAN address family |
CAN_ISOTP | ISO 15765-2 Transport Protocol |
CAN_ISOTP_LL_OPTS | pass struct |
CAN_ISOTP_OPTS | pass struct |
CAN_ISOTP_RECV_FC | pass struct |
CAN_ISOTP_RX_STMIN | pass __u32 value in nano secs ignore received CF frames which timestamps differ less than val |
CAN_ISOTP_TX_STMIN | pass __u32 value in nano secs use this time instead of value provided in FC from the receiver |
CAN_MAX_DLEN |
|
EFF_FLAG | if set, indicate 29 bit extended format |
EFF_MASK | valid bits in extended frame id |
ERR_FLAG | error flag |
ERR_MASK | valid bits in error frame |
ERR_MASK_ALL | an error mask that will cause Socketcan to report all errors |
ERR_MASK_NONE | an error mask that will cause Socketcan to silently drop all errors |
PF_CAN | CAN protocol family |
RTR_FLAG | remote transmission request flag |
SFF_MASK | valid bits in standard frame id |
SOL_CAN_BASE | undocumented can.h constant |
SOL_CAN_ISOTP | undocumented isotp.h constant |