diff --git a/README.rst b/README.rst index 45d85e87..7c81b89b 100644 --- a/README.rst +++ b/README.rst @@ -26,19 +26,21 @@ so you might wonder why would you consider using this one? This package is meant to support **multiple buses** (including CAN, LIN, Ethernet, K-Line, FlexRay) and **multiple bus managers** (e.g. `python-can`_). -Additionally, it handles both communication nodes (client and server), and contains detailed configuration to fully -control all timing and transmission parameters. +Additionally, it handles both communication nodes (client and server), +decoding monitored UDS communication, +and contains detailed configuration to fully control all timing and transmission parameters. Thanks to all these features, this package can have multiple use-cases, including: - simple send-receive messages to/from any network - comprehensive node simulations - testing of UDS protocol communication implementation +- sniffing UDS communication Unfortunately, all previously mentioned plans make the project a huge effort and at the time of writing, -the implementation process of these features is still ongoing (and probably the status will stay the same for at least -a couple more years). -On the other hand, the architecture to support all these features is already designed and some of the features +the implementation process of these features is still ongoing (and probably the development would slowly progress over +a couple more years unless more people get engaged in the project and/or more sponsors are found). +On the other hand, the architecture to support all these features is already designed and some of these features are already implemented with others defined or planned. To check the current implementation status, visit: @@ -55,13 +57,28 @@ python-udsoncan Link: https://github.com/pylessard/python-udsoncan - pros: - - comprehensive documentation - - handlers for multiple diagnostic services is implemented + + - comprehensive documentation - + https://udsoncan.readthedocs.io/en/latest/index.html + - maintained with active community - https://udsoncan.readthedocs.io/en/latest/udsoncan/questions_answers.html + - various connection types are supported - + https://udsoncan.readthedocs.io/en/latest/udsoncan/connection.html#available-connections + - CAN bus fully supported with possibility to extension for other buses (requires custom code) + - possibility to configure all transmission parameters for CAN using can-isotp package - + https://can-isotp.readthedocs.io/en/latest/isotp/implementation.html# + - handlers for multiple diagnostic services are implemented - + https://udsoncan.readthedocs.io/en/latest/udsoncan/services.html + - positive and negatives scenarios are handled - https://udsoncan.readthedocs.io/en/latest/udsoncan/exceptions.html + - cons: - - only positive use case scenarios (where communication is in line with UDS standard) are supported - - only CAN bus is supported - - only Client side communication can be handled - - limited communication parameters configuration + + - does not support simulating negatives scenarios on Transport/Network layer, e.g. + + - cannot force Overflow / Wait value of Flow Status (parameter of Flow Control packet) + - cannot send CAN packets in wrong order (e.g. incorrect Sequence Numbers order in Consecutive Frames) + + - only Client side communication is implemented - https://udsoncan.readthedocs.io/en/latest/udsoncan/client.html# + - no control or measurement of CAN timing parameters (N_As, N_Ar, N_Bs, N_Br, N_Cs, N_Cr) python-uds @@ -69,12 +86,17 @@ python-uds Link: https://github.com/richClubb/python-uds - pros: - - CAN and LIN buses are supported + + - CAN and LIN buses are supported + - cons: - - modest documentation - - only a few communication interfaces are supported - - only Client side communication can be handled - - limited communication parameters configuration + + - very modest documentation - https://python-uds.readthedocs.io/en/latest/ + - is not maintained with last release in March 2019 - https://pypi.org/project/python-uds/ + - only a few communication interfaces (I have only found examples with python-can) are supported - + https://python-uds.readthedocs.io/en/latest/interface.html + - only Client side communication is implemented + - limited communication parameters configuration - https://python-uds.readthedocs.io/en/latest/configuration.html Contact