Major update of tachograph file parsing
This is a major update of the DDD file parser: it now reads everything the files contain. Two file types are fully supported - tachograph memory (VU) files and driver card files. All tachograph generations and versions: G1, G2.1, G2.2.
Tachograph memory (VU files)
- VU files are now parsed completely for both generations: Gen1 and Gen2 (v1/v2). Previously even Gen2 files only had their overview and activities blocks decoded, and Gen1 was barely parsed at all. Although the two generations have different file structures, everything is adapted and the output is consistent: same blocks, same record shapes, with differences only where the regulation itself has them.
- The result nesting has changed: the output now explicitly shows the tachograph generation (VU_Tachograph / VU_Tachograph_G2) and the data section inside it - overview, activities, events and faults, speed, technical data (VuOverview, VuActivities[], VuEventsAndFaults, VuDetailedSpeed, VuTechnicalData).
- A useful addition to the output: the period for which the tachograph actually has data available for download.
- Empty card slots and unused seals are no longer emitted (previously they appeared as 0xFF filler objects).
Driver cards
- More data is now extracted from the card's Gen2 section: for example, the last download date and the full set of certificates - for those who verify data signatures.
- The structure and field names are aligned with the VU file output - card data and tachograph data now read the same way.
- Only driver cards are fully parsed: workshop, control and company card files are rejected with an explicit error - previously they were silently parsed as driver cards, producing incorrect results.
General
- All parameter, section and structure names were reviewed and brought in line with the regulation.
- A number of parsing inaccuracies were fixed: some data used to be decoded incorrectly or lost.
- Single-element arrays (CurrentDateTime, VIN, certificates, etc.) are now plain values.
- Corrupted or truncated files now produce an explicit error instead of partial or garbage JSON.
▎ Note: the new data will not appear in already uploaded files by itself - such files need to be run through the plugin again. You can do this via the API or with a message resend: it triggers the plugin, and the file is re-parsed with the full set of data.