{"id":20286654,"url":"https://github.com/yezzfusl/can-analyzer","last_synced_at":"2026-05-26T23:33:20.706Z","repository":{"id":250948381,"uuid":"835981831","full_name":"yezzfusl/CAN-Analyzer","owner":"yezzfusl","description":"A sophisticated CAN bus analyzer in C, featuring real-time data capture, message filtering, decoding, graphical representation, and advanced statistical analysis","archived":false,"fork":false,"pushed_at":"2024-08-16T22:17:30.000Z","size":76,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-04T16:54:29.418Z","etag":null,"topics":["advanceddatavisualization","automotivetech","can-bus","canprotocol","cprogramming","datafiltering","embeddedsystems","hardwareinterface","linuxcan","networkanalysis","realtimedata","signalprocessing","socketcan","systemmonitoring","vehiclediagnostics"],"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/yezzfusl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-07-30T23:28:21.000Z","updated_at":"2024-08-16T22:16:40.000Z","dependencies_parsed_at":"2024-07-31T01:19:01.339Z","dependency_job_id":"52668c7c-7ed7-4a7e-8490-2385199496bd","html_url":"https://github.com/yezzfusl/CAN-Analyzer","commit_stats":null,"previous_names":["yezzfusl/can-analyzer"],"tags_count":5,"template":true,"template_full_name":null,"purl":"pkg:github/yezzfusl/CAN-Analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezzfusl%2FCAN-Analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezzfusl%2FCAN-Analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezzfusl%2FCAN-Analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezzfusl%2FCAN-Analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yezzfusl","download_url":"https://codeload.github.com/yezzfusl/CAN-Analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezzfusl%2FCAN-Analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33543973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["advanceddatavisualization","automotivetech","can-bus","canprotocol","cprogramming","datafiltering","embeddedsystems","hardwareinterface","linuxcan","networkanalysis","realtimedata","signalprocessing","socketcan","systemmonitoring","vehiclediagnostics"],"created_at":"2024-11-14T14:35:57.045Z","updated_at":"2026-05-26T23:33:20.691Z","avatar_url":"https://github.com/yezzfusl.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Can-Analyzer\n\n**Can-Analyzer** is a sophisticated CAN bus analyzer developed in C. It provides real-time CAN data capture, filtering, decoding, and more. This tool is designed to help analyze and visualize CAN communication efficiently.\n## Test\n![Selection_009](https://github.com/user-attachments/assets/d9915ac6-e849-4110-b681-a2a1149bbe92)\n\n## Features\n\n- [x] Basic CAN Communication\n- [x] CAN Message Filtering\n- [x] CAN Message Decoding\n- [x] Real-time Data Display\n- [x] Error Detection and Handling\n- [x] Statistical Analysis Tools\n- [x] Graphical Representation of Data\n\n## Getting Started\n\n### Prerequisites\n\n- Linux-based operating system\n- SocketCAN library (for CAN communication)\n- Required development tools (gcc, make, build essential)\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/yezzfusl/CAN-Analyzer.git\n\n2. Navigate to the project directory:\n  ```cd CAN-Analyzer```\n3. Build the project using `Makefile`:\n  ```make```\n## Usage\nTo use the CAN Analyzer, run:\n   ```./can_analyzer \u003cCAN interface\u003e```\nReplace `\u003cCAN interface\u003e` with the name of your CAN interface (e.g., can0).\nExample:\n   ```./can_analyzer can0```\n\n## Output\n\nThe program provides the following outputs:\n\n1. Real-time display of CAN messages in the terminal\n2. Statistical analysis of CAN traffic, updated every second\n3. A PNG file named `can_data.png` with a time-series graph of CAN message values, updated every second\n\n## Project Structure\n\n- `src/`: Contains all source files\n- `include/`: Contains header files\n- `Makefile`: Build script for the project\n- `README.md`: This file, containing project documentation\n\n## Key Components\n\n1. `can_interface`: Handles CAN socket initialization and communication\n2. `can_filter`: Implements CAN message filtering\n3. `can_decode`: Decodes CAN messages into human-readable format\n4. `real_time_display`: Manages the real-time display of CAN messages\n5. `statistical_analysis`: Performs statistical analysis on CAN traffic\n6. `graphical_display`: Generates graphical representations of CAN data\n7. `error_handling`: Handles errors and exceptions\n\n## Customization\n\n- To modify the CAN message filter, edit the `filter` structure in `main.c`\n- To change the graphing interval, modify the time comparison in the main loop of `main.c`\n- To add new decoding rules, edit the `decode_can_message` function in `can_decode.c`\n\n## Testing\n\nThe project has been tested with various CAN devices and simulators. To conduct your own tests:\n\n1. Set up a virtual CAN interface:\n   - sudo modprobe vcan\n   - sudo ip link add dev vcan0 type vcan\n   - sudo ip link set up vcan0\n\n2. Use `cansend` to send test messages:\n   ```./can_analyzer vcan0```\n   \n## Known Limitations\n\n- The current implementation supports Standard CAN (11-bit identifiers) only\n- The graphical display is limited to the first byte of each CAN message\n\n## Future Improvements\n\n- Add support for Extended CAN (29-bit identifiers)\n- Implement more sophisticated decoding rules\n- Create a GUI for easier interaction and data visualization\n\n## Contributing\n\nContributions to this project are welcome. Please follow these steps:\n\n1. Fork the repository\n2. Create a new branch for your feature\n3. Commit your changes\n4. Push to the branch\n5. Create a new Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyezzfusl%2Fcan-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyezzfusl%2Fcan-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyezzfusl%2Fcan-analyzer/lists"}