Skip to content

Commit

Permalink
Update README.rst
Browse files Browse the repository at this point in the history
Update, provide more details
  • Loading branch information
mdabrowski1990 committed Oct 28, 2024
1 parent a3cf879 commit 3cf508e
Showing 1 changed file with 38 additions and 16 deletions.
54 changes: 38 additions & 16 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -55,26 +57,46 @@ 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
''''''''''
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
Expand Down

0 comments on commit 3cf508e

Please sign in to comment.