The goal of this Robotframework Library is testing CAN BUS with RobotFramework
They are a lot of CAN protocols and it can be confusing.
CAN (ISO-11898) was released in 1991 and the main limit is the size of payload (8 Bytes) by frame.
ISO-TP (ISO 15765-2) TP means 'Transport Layer' was introducted in 2016. The main goal is the transfer of longer messages over CAN into multiples frames, adding metadata that allows the interpretation of individual frames and reassembly into a complete message packet by the recipient. It can carry up to 4095 bytes of payload per message packet.
UDS (ISO 14229-1) Unified Diagnostic Services is a communication protocol, Unified means that is an international and not company specific standard. This standard use ISO-TP.
This RobotFramework library is cross-platform (tested under Debian9, and Windows 10)
The library use python-can to support CAN interface the interfaces linked here must be compatibles.
The library use isotp to handle ISO-15765 protocol
The library use cantools to encoding/decoding CAN Database, see here to find compatible format
They are a few dependencies, the library must work in Linux and Windows
pip install robotframework
pip install python-can
pip install cantools
pip install can-isotp
See testsuite/test.robot
All test must start with
Set CAN Bus ${INTERFACE} ${CHANNEL} ${BITRATE} ${DB FILE}
So the best can be to instanciate it with 'Test Setup'
Before using ISO-TP/UDS specific keywords you must instanciate it as follow:
Set ISOTP Protocol ${SOURCE} ${DESTINATION} ${ADDRESSING MODE}