A C# and .NET WinForms application for decoding, classifying, and analyzing automotive diagnostic logs containing ISO-TP traffic, UDS requests and responses, XML DID data, raw hexadecimal payloads, and ASCII output.
The workbench converts mixed log content into structured objects so engineers can review protocol behavior, identify negative responses, summarize DID activity, and compare raw evidence with decoded results.
- Line-by-line protocol classification
- ISO 15765 and ISO-TP message reconstruction
- UDS request and response interpretation
- Positive and negative response decoding
- DID and NRC summary counts
- XML diagnostic response parsing
- Raw and decoded split view
- Search and UDS-only filtering
- Multiple analysis sessions
- Stable, null-safe WinForms rendering
AutoDecoder.Gui WinForms presentation layer
AutoDecoder.Models Strongly typed diagnostic domain models
AutoDecoder.Protocols Deterministic protocol parsing and decoding
Each input line is represented by a domain type derived from an abstract LogLine base class:
Iso15765LineXmlLineHexLineAsciiLineUnknownLine
This design keeps raw evidence encapsulated while allowing each line type to implement its own parsing behavior.
LineClassifierIso15765DecoderUdsDecoderXmlDidDecoderHexToolsDecodeTables
ISO15765 TX -> [00,00,07,D0,22,80,6A]
ISO15765 RX <- [00,00,07,D8,7F,22,78]
7F 22 78
Decoded as a negative response to ReadDataByIdentifier with NRC 0x78, Response Pending.
62 F1 88 ...
Decoded as a positive ReadDataByIdentifier response for DID 0xF188.
| SID | Service |
|---|---|
0x10 |
Diagnostic Session Control |
0x11 |
ECU Reset |
0x22 |
Read Data by Identifier |
0x27 |
Security Access |
0x2E |
Write Data by Identifier |
0x31 |
Routine Control |
0x3E |
Tester Present |
0x10, 0x11, 0x13, 0x22, 0x31, 0x33, 0x35, 0x36, 0x37, and 0x78.
This public repository must use only synthetic or fully sanitized diagnostic data.
Do not commit VINs, customer information, real OEM logs, internal endpoints, software records, firmware, calibration files, credentials, or proprietary diagnostic specifications.
The decoder provides engineering assistance only. Results require validation against approved diagnostic requirements and source evidence.
- Language: C#
- Framework: .NET 10
- Interface: WinForms
- Architecture: Layered models, protocols, and presentation
- Status: Active development
Planned improvements include CAN identifier flow tracking, UDS conversation grouping, enhanced NRC visualization, exportable findings, large-log performance improvements, and DoIP support.
This project demonstrates automotive diagnostic-domain knowledge, embedded communication analysis, object-oriented software design, deterministic decoding, and engineering-focused user-interface development.
Harold L. R. Watkins
Automotive Cybersecurity Engineer | Embedded Systems | Vehicle Software Verification


