{"id":13740365,"url":"https://github.com/pylessard/python-udsoncan","last_synced_at":"2025-05-08T20:31:03.283Z","repository":{"id":38291288,"uuid":"99459987","full_name":"pylessard/python-udsoncan","owner":"pylessard","description":"Python implementation of UDS (ISO-14229) standard.","archived":false,"fork":false,"pushed_at":"2024-10-29T13:09:12.000Z","size":983,"stargazers_count":586,"open_issues_count":7,"forks_count":201,"subscribers_count":38,"default_branch":"master","last_synced_at":"2024-10-29T15:57:02.753Z","etag":null,"topics":["14229","15765","automotive","can","can-bus","canbus","car","controller-area-network","diagnostic","diagnostic-tool","iso-14229","iso-15765","iso-tp","iso14229","iso15765","isotp","obd2","python","uds","vehicle-diagnostic"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pylessard.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"pylessard"}},"created_at":"2017-08-06T02:40:37.000Z","updated_at":"2024-10-29T13:09:17.000Z","dependencies_parsed_at":"2023-02-08T08:30:54.224Z","dependency_job_id":"3c117d66-26df-4a3a-9f16-f5f40a4c2319","html_url":"https://github.com/pylessard/python-udsoncan","commit_stats":{"total_commits":312,"total_committers":24,"mean_commits":13.0,"dds":0.1314102564102564,"last_synced_commit":"b17bc83682b71f9e5789710ffbc7edce8c2b4bfb"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pylessard%2Fpython-udsoncan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pylessard%2Fpython-udsoncan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pylessard%2Fpython-udsoncan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pylessard%2Fpython-udsoncan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pylessard","download_url":"https://codeload.github.com/pylessard/python-udsoncan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224765450,"owners_count":17366121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["14229","15765","automotive","can","can-bus","canbus","car","controller-area-network","diagnostic","diagnostic-tool","iso-14229","iso-15765","iso-tp","iso14229","iso15765","isotp","obd2","python","uds","vehicle-diagnostic"],"created_at":"2024-08-03T04:00:46.903Z","updated_at":"2024-11-15T10:30:35.353Z","avatar_url":"https://github.com/pylessard.png","language":"Python","readme":"python-udsoncan\n###############\n\n\n.. image:: https://app.travis-ci.com/pylessard/python-udsoncan.svg?branch=master\n\nThis project is an implementation of the Unified Diagnostic Services (UDS) protocol defined by ISO-14229 written in Python 3. The code is published under MIT license on GitHub (pylessard/python-udsoncan).\n\nDocumentation\n-------------\n\nThe documentation is available here :   http://udsoncan.readthedocs.io\n\nRequirements\n------------\n\n - Python 3.7+\n\nInstallation\n------------\n\nusing pip::\n\n    pip install udsoncan\n\nExample\n-------\n\n.. code-block:: python\n\n   import SomeLib.SomeCar.SomeModel as MyCar\n\n   import udsoncan\n   import isotp\n   from udsoncan.connections import IsoTPSocketConnection\n   from udsoncan.client import Client\n   from udsoncan.exceptions import *\n   from udsoncan.services import *\n   \n   udsoncan.setup_logging()\n   \n   conn = IsoTPSocketConnection('can0', isotp.Address(isotp.AddressingMode.Normal_11bits, rxid=0x123, txid=0x456))\n   with Client(conn,  request_timeout=2, config=MyCar.config) as client:\n      try:\n         client.change_session(DiagnosticSessionControl.Session.extendedDiagnosticSession)  # integer with value of 3\n         client.unlock_security_access(MyCar.debug_level)   # Fictive security level. Integer coming from fictive lib, let's say its value is 5\n         client.write_data_by_identifier(udsoncan.DataIdentifier.VIN, 'ABC123456789')       # Standard ID for VIN is 0xF190. Codec is set in the client configuration\n         print('Vehicle Identification Number successfully changed.')\n         client.ecu_reset(ECUReset.ResetType.hardReset)  # HardReset = 0x01\n      except NegativeResponseException as e:\n         print('Server refused our request for service %s with code \"%s\" (0x%02x)' % (e.response.service.get_name(), e.response.code_name, e.response.code))\n      except (InvalidResponseException, UnexpectedResponseException) as e:\n         print('Server sent an invalid payload : %s' % e.response.original_payload)\n","funding_links":["https://github.com/sponsors/pylessard"],"categories":["Network and Middleware","Protocols"],"sub_categories":["Controller Area Network","UDS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpylessard%2Fpython-udsoncan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpylessard%2Fpython-udsoncan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpylessard%2Fpython-udsoncan/lists"}