Documentation Index
Fetch the complete documentation index at: https://mintlify.com/traconiq/tachoparser/llms.txt
Use this file to discover all available pages before exploring further.
ParseVu accepts the raw bytes of a tachograph vehicle unit DDD file and returns a ParseVuResponse containing a single Vu message with all decoded data. The server acquires the global mutex before parsing, so only one call executes at a time.
Proto definition
message ParseVuRequest {
bytes data = 1;
}
message ParseVuResponse {
Vu vu = 1;
}
Request fields
The raw binary content of the DDD vehicle unit file. Read the file and send its bytes directly — no base64 encoding is required when using a native gRPC client. When using
grpcurl, encode the bytes as base64 in the JSON body.Response fields
The fully decoded vehicle unit record. All sub-fields are present for the tachograph generation(s) represented in the file; fields for other generations are empty.
Show Vu fields
Show Vu fields
Overview block for first-generation tachographs.
Show VuOverviewFirstGen fields
Show VuOverviewFirstGen fields
Whether the block’s signature was verified against the stored public keys.
The member state certificate used to verify the VU certificate. Contains the raw certificate bytes and a decoded representation with RSA modulus, RSA exponent, certificate holder reference, certificate authority reference, and end-of-validity timestamp (Unix seconds).
The vehicle unit certificate. Same structure as
member_state_certificate.17-character vehicle identification number (VIN).
Contains
vehicle_registration_nation (numeric nation code) and vehicle_registration_number (decoded string).Current date and time at download, as a Unix timestamp.
Contains
min_downloadable_time and max_downloadable_time as Unix timestamps.Bitmask representing the status of the card slots at download time.
Company lock records. Contains
no_of_locks and a repeated array vu_company_locks_records, each with lock_in_time, lock_out_time, company_name, company_address, and company_card_number.Control activity records. Contains
no_of_controls and a repeated array vu_control_activity_records, each with control_type, control_time, control_card_number, download_period_begin_time, and download_period_end_time.Overview block for second-generation tachographs. Uses record arrays instead of single values.
Show VuOverviewSecondGen fields
Show VuOverviewSecondGen fields
Whether the block’s signature was verified.
Array of second-generation member state certificates (
CertificateSecondGen), each with ECC public key and signature data.Array of second-generation VU certificates.
Array of VIN strings.
Array of decoded vehicle registration number strings.
Company lock records (second-generation format), each entry including
FullCardNumberAndGeneration instead of FullCardNumber.Control activity records (second-generation format).
Overview block for second-generation v2 tachographs. Identical structure to
vu_overview_2 except vehicle_registration_number_record_array is replaced by vehicle_registration_identification_record_array (typed VehicleRegistrationIdentificationRecordArray).Repeated. One entry per day downloaded for first-generation tachographs.
Show VuActivitiesFirstGen fields
Show VuActivitiesFirstGen fields
Whether the block’s signature was verified.
Date of the activity day as a Unix timestamp.
Odometer reading at midnight for this day (decoded kilometres).
Card insertion/withdrawal records for the day. Contains
no_of_iw_records and repeated vu_card_iw_records, each with card_holder_name, full_card_number, card_expiry_date, card_insertion_time, vehicle_odometer_value_at_insertion, card_slot_number, card_withdrawal_time, vehicle_odometer_value_at_withdrawal, previous_vehicle_info, and manual_input_flag.Activity change records for the day. Contains
no_of_activity_changes and repeated activity_change_info, each decoded into driver (bool), team (bool), card_present (bool), work_type (uint32), and minutes (uint32).Place records for daily work periods. Contains
no_of_place_records and repeated vu_place_daily_work_period_records.Specific condition records. Contains
no_of_specific_condition_records and repeated specific_condition_records, each with entry_time and specific_condition_type.Repeated. One entry per day for second-generation tachographs. Uses record arrays.
Show VuActivitiesSecondGen fields
Show VuActivitiesSecondGen fields
Whether the block’s signature was verified.
Record array containing
records — repeated Unix timestamps, one per downloaded day.Record array containing
records — repeated uint32 odometer readings at midnight (kilometres).Record array of second-generation card insertion/withdrawal records (
VuCardIWRecordSecondGen). Each record includes card_holder_name, full_card_number_and_generation, insertion and withdrawal times, odometer values at insertion/withdrawal, card_slot_number, previous_vehicle_info, and manual_input_flag.Record array of decoded
ActivityChangeInfo entries for the day.Record array of second-generation place records, each including a
GNSSPlaceRecord with timestamp, GNSS accuracy, and decoded latitude/longitude coordinates.GNSS accumulated driving record array. Each
VuGNSSADRecord includes time_stamp, card_number_and_gen_driver_slot, card_number_and_gen_codriver_slot, gnss_place_record, and vehicle_odometer_value.Specific condition records for the day.
Repeated. Second-generation v2 activity blocks. Same structure as
vu_activities_2 with additions: vu_place_daily_work_period_record_array uses authenticated GNSS place records (GNSSPlaceAuthRecord), vu_gnss_ad_record_array returns VuGNSSADRecordV2 records, plus additional vu_border_crossing_record_array and vu_load_unload_record_array fields.Repeated. Events and faults blocks for first-generation tachographs. Each entry contains
vu_fault_data, vu_event_data, vu_over_speeding_control_data, vu_over_speeding_event_data, and vu_time_adjustment_data.Repeated. Events and faults blocks for second-generation tachographs using record arrays.
Repeated. Events and faults blocks for second-generation v2 tachographs.
Repeated. Detailed speed blocks for first-generation tachographs. Each block contains 60-second speed measurements (
speeds_per_second bytes) with a speed_block_begin_date timestamp.Repeated. Detailed speed blocks for second-generation tachographs using a record array.
Repeated. Technical data blocks for first-generation tachographs. Each entry contains
vu_identification (manufacturer, part number, serial number, software version), sensor_paired, and vu_calibration_data.Repeated. Technical data blocks for second-generation tachographs using record arrays.
Repeated. Technical data blocks for second-generation v2 tachographs.
Contains
verified and download_interface_version (2-byte identifier).Usage examples
Using dddclientcat tachodata.ddd | ./dddclient -addr localhost:50055 -vu
Vu message as JSON to stdout.
Using grpcurl
Encode the DDD file as base64, then pass it in the JSON body:
grpcurl -plaintext \
-d "{\"data\": \"$(base64 -w 0 tachodata.ddd)\"}" \
localhost:50055 proto.DDDParser/ParseVu
grpcurl -plaintext \
-d @ \
localhost:50055 proto.DDDParser/ParseVu \
<<< "{\"data\": \"$(base64 -w 0 tachodata.ddd)\"}"