{"id":28561649,"url":"https://github.com/ultimaker/opentelepathy","last_synced_at":"2025-06-10T11:15:20.462Z","repository":{"id":264522487,"uuid":"622950222","full_name":"Ultimaker/OpenTelepathy","owner":"Ultimaker","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-05T13:45:50.000Z","size":274,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-06-09T21:47:58.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ultimaker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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}},"created_at":"2023-04-03T11:52:25.000Z","updated_at":"2023-04-09T00:34:24.000Z","dependencies_parsed_at":"2024-11-24T20:55:09.409Z","dependency_job_id":"f61c668e-a6a5-4c75-bd55-e4a291f37fa8","html_url":"https://github.com/Ultimaker/OpenTelepathy","commit_stats":null,"previous_names":["ultimaker/opentelepathy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2FOpenTelepathy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2FOpenTelepathy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2FOpenTelepathy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2FOpenTelepathy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ultimaker","download_url":"https://codeload.github.com/Ultimaker/OpenTelepathy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ultimaker%2FOpenTelepathy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259064063,"owners_count":22799739,"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":[],"created_at":"2025-06-10T11:15:15.572Z","updated_at":"2025-06-10T11:15:20.454Z","avatar_url":"https://github.com/Ultimaker.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Telepathy\n=========\n\nTelepathy allows looking into the brains of your machine. It connects to\nan embedded target, and allows reading and writing its global variables. For\nembedded targets running a Simulink model, it exposes the model structure, giving\naccess to all parameters, signals and states. Furthermore, Telepathy enables\nreal-time tracing of variables or signals on your target.\n\n\n## Getting Started\n\nThe power of Telepathy is best used from an interactive development environment. \nFollow either of the following getting started guides, for Spyder or PyCharm IDE:\n\n[Spyder setup](doc/spyder_setup.md)\n\n[Pycharm setup](doc/pycharm_setup.md)\n\n## Implementation notes \n\n### C global variable access\n\nAccess to C global variables is performed by reading from and reading to the\nappropriate place in target memory. The ELF linker file from the target is\nused to extract the addresses and data types of the variables. This requires\nthe sources to be compiled with DWARF debug information (gcc -g).\n\nC global variable access is implemented in `telepathy.remotevariables `\n\n### Simulink model access\n\nAccess to the running Simulink model does not require the linker file of the\ntarget code. Simulink embeds all required information on variable data types and\naddresses in the target. The only thing Telepathy needs to know is the address\nof the root of this information the rtwCAPI_ModelMappingInfo struct, and everything\nis derived from there. \n\nSimulink model access is implemented in `telepathy.simulink`, supported by \n`telepathy.modelmap`\n\n### Target interface\n\nBoth C global variable access and Simulink model access require a means to read\nfrom and write to memory. This is done by means of a target interface, as defined\nin `telepathy.targetinterface.TargetInterface`. Telepathy provides the \n[xCP](https://en.wikipedia.org/wiki/XCP_(protocol)) target interface in \n`telepathy.xcpclient`. The xCP client can communicate either over a (USB-) serial\nport or over a TCP socket. These are implemented in `telepathy.transport`.\n\n### Signal tracing (data acquisition)\n\nThe xCP protocol allows tracing of real-time signals using its Data AcQuisition\n(DAQ) features. One defines the variables to be traced, and once the data\nacquisition is started, these are sampled synchronously, and streamed to the\nhost. This functionality is implemented in `telepathy.xcpclient.XCPClient`\n\n\n## License\n[LGPLv3](https://choosealicense.com/licenses/lgpl-3.0/)\n\n+SPDX-License-Identifier: LGPL-3.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimaker%2Fopentelepathy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultimaker%2Fopentelepathy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimaker%2Fopentelepathy/lists"}