{"id":13740890,"url":"https://github.com/TDahlmann/canpp","last_synced_at":"2025-05-08T20:33:00.480Z","repository":{"id":45830807,"uuid":"365968398","full_name":"TDahlmann/canpp","owner":"TDahlmann","description":"CAN bus analyzing and simulation GUI tool for Windows.","archived":false,"fork":false,"pushed_at":"2025-02-07T21:18:11.000Z","size":45354,"stargazers_count":49,"open_issues_count":0,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-07T22:26:13.594Z","etag":null,"topics":["can-bus","can-fd","canbus-communication","canbus-messages","canbus-receiver","canbus-sender","canbus-sniffer","dbc","diagnostics","isotp","socketcan","tcp-ip","vector-database"],"latest_commit_sha":null,"homepage":"","language":"C","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/TDahlmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-05-10T08:17:55.000Z","updated_at":"2025-02-07T21:18:15.000Z","dependencies_parsed_at":"2024-08-11T15:59:20.247Z","dependency_job_id":"16bb31d9-a11d-4f1f-be69-fee853f9f563","html_url":"https://github.com/TDahlmann/canpp","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDahlmann%2Fcanpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDahlmann%2Fcanpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDahlmann%2Fcanpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDahlmann%2Fcanpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TDahlmann","download_url":"https://codeload.github.com/TDahlmann/canpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253145131,"owners_count":21861192,"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":["can-bus","can-fd","canbus-communication","canbus-messages","canbus-receiver","canbus-sender","canbus-sniffer","dbc","diagnostics","isotp","socketcan","tcp-ip","vector-database"],"created_at":"2024-08-03T04:00:53.320Z","updated_at":"2025-05-08T20:32:55.468Z","avatar_url":"https://github.com/TDahlmann.png","language":"C","readme":" CAN++\n\n## Overview\nCAN++ is a free Windows program for receiving, transmitting and analyzing (*.asc, *.blf) CAN bus messages (CAN Classic and **CAN FD**) for using with [SuperCAN](https://github.com/jgressmann/supercan) devices or without CAN hardware (virtual bus). After import of CAN data base files (*.**dbc**, *.**arxml**) CAN signals are shown in symbolic form. Signals can be presented as graphics (wave forms) too.\n\nFurthermore:\n- **CAN simulation** is possible by programming CAN behaviour in C++. \n- **CAN traces** can be generated, imported and replayed (*.asc format, *.blf can be imported).\n- **Diagnostics** can be performed (PDX import, fault memory, measurement and identification data)\n\nThere are several devices which are supported by SuperCAN firmware and can be used with CAN++. For example:\n- Open Source Hardware: [USB_CAN-FD](https://github.com/RudolphRiedel/USB_CAN-FD)\n- Off the shelf: [Adafruit Feather M4 CAN Express](https://www.adafruit.com/product/4759) (simple [drag \u0026 drop](#tips) of firmware)\n\nCAN++ also can connect to CAN hardware via TCP/IP with an own defined protocol (see TCP/IP chapter below). An example implementation is included.\n\nCAN++ can be just started (no installation).   \nThe user manual is located in sub folder `doc/user_manual` (Markdown and HTML version, work in progress). \n\n\n![Main screen](doc/screens/main2.jpg)\n![Main screen](doc/screens/graph.jpg)\n\n## Traces\nCAN traces can be generated, imported and replayed (*.asc format). Import and replay is possible with BLF files too (*.blf).\n\n## CAN transmit\n\n- cyclic, once, with time offset\n- define signals as raw or physical values\n- or define signals with wave configurator\n\n![Main screen](doc/screens/tx.jpg)\n![Main screen](doc/screens/wave.jpg)\n\n## CAN simulation in C++\n\n- one .cpp file per CAN node (see Example ECU_main.cpp)\n- react on CAN-Messages (::onMessage()) or signals\n- send CAN messages\n- Timers (can be used for cyclic sending of CAN messages)\n- print text\n- integrated IDE and integrated C++ Compiler (DMC)\n\n![Main screen](doc/screens/canpr_context_with_build.jpg)\n\n## CAN statistics\n\n![Main screen](doc/screens/statistics.jpg)\n\n## CAN diagnostics\n- faultmemory\n- measurement data\n- identification\n- import PDX files\n\n![Main screen](doc/screens/faultmem.jpg)\n![Main screen](doc/screens/measurements.jpg)\n\n## TCP/IP connection to CAN hardware\n\nCAN++ can connect over TCP/IP to CAN hardware. For this an own protocol was implemented. For this protocol a implementation for connecting to a Linux device is implemented in folder \"can2win\".\nThis little server has to run on the Linux device. CAN++ connects to this server and transmitts and receives CAN data over the connection. The server itself makes a [SocketCan](https://de.wikipedia.org/wiki/SocketCAN#:~:text=SocketCAN%20ist%20eine%20Sammlung%20von,Level%20CAN%20Framework%20(LLCF).) connection to the CAN hardware attached to the linux device. This for example may be a simple Raspberry Pi CAN hookup board. Multiple channels can be transported. Even more multiple CAN++ PC's can connect to this server.\nFollowing menu items can be used to connect:\n\nSettings =\u003e Hardware Select:\n- BeagleBone USB: 192.168.7.2\n- Wlan: 192.168.10.1\n- IP Address: self assigned IP address on server side\n\n![Main screen](doc/screens/canpp_socketcan.jpg)\n![Main screen](doc/screens/multi_canpp_tcp_arch.jpg)\n\n## Installation\n\nCAN++ can be used without installation. It should not be placed in system folders like \"C:\\Programs\". Path should contain \"A-Za-z0-9_\" only. Otherwise integrated Compiler will not work. By calling \"INSTALL.bat\" a shortcut is created on desktop.\n\n## Tips\n### How to flash SuperCAN firmware on Adafruit Feather M4 CAN Express (on Windows)\n- download SuperCAN firmware file supercan-firmware.tar.xz from https://github.com/jgressmann/supercan/releases/tag/latest-master\n- Unpack supercan-firmware.tar.xz (7-Zip could be used), needed file is supercan.uf2\n- plug in device\n- push the button on the device twice\n- a drive \"FTHRBOOT\" will show up in file explorer\n- drop the file supercan.uf2 on this drive\n- after 10 seconds replug the device\n","funding_links":[],"categories":["Utils"],"sub_categories":["GUI Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTDahlmann%2Fcanpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTDahlmann%2Fcanpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTDahlmann%2Fcanpp/lists"}