{"id":44383313,"url":"https://github.com/syax89/ddd-tachograph-reader","last_synced_at":"2026-06-09T13:01:12.742Z","repository":{"id":337884273,"uuid":"1155674546","full_name":"Syax89/ddd-tachograph-reader","owner":"Syax89","description":"Professional digital tachograph (.ddd) file analyzer — full decoding, signature verification, and tree-structured data exploration (G1/G2/G2.2)","archived":false,"fork":false,"pushed_at":"2026-06-09T11:47:17.000Z","size":561,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-09T12:03:50.856Z","etag":null,"topics":["compliance","customtkinter","ddd","digital-tachograph","eu-regulation","fleet-management","gui","python","tachograph"],"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/Syax89.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-11T19:21:53.000Z","updated_at":"2026-06-09T11:47:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Syax89/ddd-tachograph-reader","commit_stats":null,"previous_names":["syax89/ddd-tachograph-reader"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Syax89/ddd-tachograph-reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syax89%2Fddd-tachograph-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syax89%2Fddd-tachograph-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syax89%2Fddd-tachograph-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syax89%2Fddd-tachograph-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Syax89","download_url":"https://codeload.github.com/Syax89/ddd-tachograph-reader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syax89%2Fddd-tachograph-reader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34107866,"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":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["compliance","customtkinter","ddd","digital-tachograph","eu-regulation","fleet-management","gui","python","tachograph"],"created_at":"2026-02-12T00:12:31.462Z","updated_at":"2026-06-09T13:01:12.734Z","avatar_url":"https://github.com/Syax89.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DDD Tachograph Reader\n\n\u003e Open Source  `.ddd` digital tachograph file analyzer — full decoding with tree-structured data exploration.\n\n[![Build and Release](https://github.com/Syax89/ddd-tachograph-reader/actions/workflows/build.yml/badge.svg)](https://github.com/Syax89/ddd-tachograph-reader/actions/workflows/build.yml)\n[![Latest Release](https://img.shields.io/github/v/release/Syax89/ddd-tachograph-reader)](https://github.com/Syax89/ddd-tachograph-reader/releases/latest)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n![Python](https://img.shields.io/badge/Python-3.9%2B-blue)\n\n---\n\n## Features\n\n### File Decoding\n- **Multi-generation**: G1 (Annex 1B), G2 Smart (Annex 1C), **Gen 2.2 Smart V2** (Reg. EU 2023/980)\n- **Driver data**: Surname, first name, date of birth, card number, expiry, issuing nation\n- **Daily activities**: Driving, work, availability, rest/break\n- **Vehicle data**: VIN, plate, registration nation, odometer\n- **GNSS positions**: Coordinates, border crossings, places\n- **VU records**: Card insertions/withdrawals, calibrations, sensors, events/faults\n\n### Integrity\n- Cryptographic signature verification (ERCA → MSCA → Card/VU chain)\n- Recursive BER-TLV and STAP parsing (nested containers)\n- 100% byte coverage on all tested files\n- Tree structure for data exploration\n\n### Export\n- JSON, Excel, CSV export\n- Interactive GUI with tree navigation\n\n---\n\n## Download \u0026 Usage\n\n### Pre-built Executable (recommended)\nDownload from the **[Releases](https://github.com/Syax89/ddd-tachograph-reader/releases/latest)** page:\n\n| Platform | File |\n|----------|------|\n| Windows | `TachoReader-Windows.zip` |\n| macOS | `TachoReader-Mac.zip` |\n\nExtract and run `TachoReader` — no installation required.\n\n### From Source (developers)\n\n```bash\ngit clone https://github.com/Syax89/ddd-tachograph-reader.git\ncd ddd-tachograph-reader\npip install -r requirements.txt\n\n# GUI\npython gui_tree.py\n\n# CLI\npython tacho_cli.py path/to/file.ddd\n```\n\n---\n\n## Project Structure\n\n```\nddd-tachograph-reader/\n├── gui_tree.py                  # GUI (tree + table, tkinter)\n├── tacho_cli.py                 # Main CLI\n├── ddd_parser.py                # Core parser entry point\n├── signature_validator.py       # Certificate chain validation\n├── export_manager.py            # Excel/CSV export\n├── core/\n│   ├── tag_navigator.py         # Recursive BER-TLV / STAP navigation\n│   ├── decoders.py              # Tag decoders (G1, G2, G2.2)\n│   ├── decoder_registry.py      # Centralized tag→decoder registry\n│   ├── deterministic_parser.py  # Schema-driven two-pass parser\n│   ├── g2_decoders.py           # G2/G2.2 VU RecordArray decoders\n│   ├── record_array.py          # RecordArray parser (Annex 1C)\n│   ├── vu_record_dispatcher.py  # VU stream dispatcher\n│   ├── vu_signature_verifier.py # ECDSA signature verification\n│   ├── models.py                # Data models (TachoResult)\n│   ├── tag_definitions.py       # Tag ID → name mappings\n│   ├── constants.py             # Shared constants\n│   └── logger.py                # Centralized logging\n├── src/                         # Domain/infrastructure layer\n├── certs/                       # ERCA root certificates\n├── tests/                       # Test suite (118 tests)\n├── specs/                       # Specifications and audits\n├── docs/                        # Documentation\n└── .github/workflows/           # CI/CD (Windows/macOS builds)\n```\n\n---\n\n## Supported Formats\n\n| Generation | Standard | Header | Notes |\n|------------|----------|--------|-------|\n| G1 Digital | Annex 1B (Reg. 3821/85) | variable | Legacy tachographs |\n| G2 Smart | Annex 1C (Reg. 2016/799) | `0x7621` | Smart Tachograph V1 |\n| **G2.2 Smart V2** | Annex 1C (Reg. 2023/980) | `0x7631` | Smart Tachograph V2 |\n\n---\n\n## Testing\n\n```bash\npip install pytest\npytest tests/ -v\n```\n\n118 tests: multi-generation detection, G1/G2/G2.2 parsing, byte coverage, fuzzing, digital signatures.\n\n---\n\n## Building from Source\n\n```bash\npip install pyinstaller\npyinstaller build.spec\n# Output: dist/TachoReader (macOS) / dist/TachoReader.exe (Windows)\n```\n\n---\n\n## License\n\nMIT © [Syax89](https://github.com/Syax89)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyax89%2Fddd-tachograph-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyax89%2Fddd-tachograph-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyax89%2Fddd-tachograph-reader/lists"}