{"id":5037,"date":"2026-07-30T15:27:01","date_gmt":"2026-07-30T13:27:01","guid":{"rendered":"https:\/\/w3.ime-actia.de\/vehicle-diagnostics\/d-pdu-api\/"},"modified":"2026-08-10T13:02:00","modified_gmt":"2026-08-10T11:02:00","slug":"d-pdu-api","status":"publish","type":"page","link":"https:\/\/www.ime-actia.de\/en\/vehicle-diagnostics\/d-pdu-api\/","title":{"rendered":"D-PDU API"},"content":{"rendered":"\n<div class=\"wp-block-essential-blocks-button root-eb-button-qyls3\"><div class=\"eb-parent-wrapper eb-parent-eb-button-qyls3 \"><div class=\"eb-button-wrapper eb-button-alignment eb-button-qyls3\"><div class=\"eb-button\"><div class=\"eb-button-inner-wrapper \"><a class=\"eb-button-anchor \" href=\"https:\/\/www.ime-actia.de\/en\/vehicle-diagnostics\/\" rel=\"noopener\"><i icon=\"fas fa-arrow-left\" class=\"fas fa-arrow-left eb-button-icon eb-button-icon-left hvr-icon\"><\/i>Back to Vehicle Diagnostics<\/a><\/div><\/div><\/div><\/div><\/div>\n\n<h2 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\">D-PDU API &#8211; ISO 22900-2<\/h2>\n\n<p class=\"wp-block-paragraph\">The D-PDU API (Diagnostic Protocol Data Unit Application Programming Interface) is a software interface specified in ISO Standard 22900-2. It enables efficient access to VCI hardware as well as to the underlying communication protocols and bus systems. When using the D-PDU API, it is possible to develop diagnostic applications independently of the hardware and protocols used. The communication process can be controlled with high precision using a series of ISO-standardized parameters (<strong>ComParameters<\/strong>).   <\/p>\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n<h3 class=\"wp-block-heading\">Overview<\/h3>\n\n<p class=\"wp-block-paragraph\">The following diagram shows a simplified overview of how the D-PDU API is used by an application:<\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"1024\" src=\"https:\/\/www.ime-actia.de\/wp-content\/uploads\/2026\/07\/image-13-566x1024.png\" alt=\"D-PDU API simplified overview&#10;\" class=\"wp-image-4670\" srcset=\"https:\/\/www.ime-actia.de\/wp-content\/uploads\/2026\/07\/image-13-566x1024.png 566w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2026\/07\/image-13-166x300.png 166w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2026\/07\/image-13-600x1085.png 600w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2026\/07\/image-13.png 736w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><figcaption class=\"wp-element-caption\"><em>D-PDU API simplified overview<br\/><\/em><\/figcaption><\/figure>\n\n<p class=\"wp-block-paragraph\">Essentially, three layers of abstraction can be identified: the module level, the channel level, and the level of communication primitives.<\/p>\n\n<p class=\"wp-block-paragraph\">A module typically contains a VCI or a DoIP element (a single DoIP controller or a collection of DoIP controllers).<\/p>\n\n<p class=\"wp-block-paragraph\">A channel (ComLogicalLink) is a logical, virtual connection to one or, in the case of functional addressing, multiple control units. The definition of a ComLogicalLink consists of the bus type, the connection pins, the protocol, the communication parameters for the protocol, and the address pairs (transmit and receive addresses). <\/p>\n\n<p class=\"wp-block-paragraph\">A communication primitive (<strong>ComPrimitive<\/strong>) typically represents a message that is sent to the electronic control unit (ECU) via a channel and for which a response is expected. In addition to messages that can be sent and received only once, there are also messages that can be sent or received only, as well as cyclic messages involving any combination of sending and receiving. <\/p>\n\n<p class=\"wp-block-paragraph\">In addition to the functions, the D-PDU API programming interface includes a <strong>Module Description File (MDF)<\/strong> and a <strong>Cable Description File (CDF<\/strong>). All of these files are in an ISO-standardized XML format. <\/p>\n\n<p class=\"wp-block-paragraph\">The MDF file includes, among other things, a list of supported modules and their resources. A resource consists of the bus type, the pins on the VCI, and the communication protocol. The MDF file also contains descriptions of manufacturer-specific error codes.  <\/p>\n\n<p class=\"wp-block-paragraph\">The CDF file contains all supported cable types and a description of how each cable connects the pins on the VCI to the vehicle&#8217;s pins.<\/p>\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n<h3 class=\"wp-block-heading\">Features<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>Simultaneous Use of Multiple VCIs<\/li>\n\n\n\n<li>Parallel Communication with Multiple ECUs via a VCI<\/li>\n\n\n\n<li>Asynchronous\/Cyclic Execution of Diagnostic Services\/Sending Messages (Built-in Execution Queue\/ComPrimitive Queue)<\/li>\n\n\n\n<li>Callback-based event mechanisms for preventing polling<\/li>\n\n\n\n<li>Full DoIP support<\/li>\n\n\n\n<li>Pure C API with 29 functions and structures<\/li>\n\n\n\n<li>Error Handling by Evaluating Return Values (No Exceptions)<\/li>\n\n\n\n<li>I\/O Control Concept (This allows, among other things, for the implementation of OEM-specific requirements)<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">The D-PDU API is often used in conjunction with the MVCI server (ISO 22900-3, MCD-3D) and the ODX (ISO 22901-1, MCD-2D).<\/p>\n\n<p class=\"wp-block-paragraph\">Since the D-PDU API is a very powerful programming interface, much of the protocol and transport logic is already contained within this layer. The application can therefore focus primarily on handling the payload data itself. <\/p>\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n<h3 class=\"wp-block-heading\">Integration into an Application<\/h3>\n\n<p class=\"wp-block-paragraph\">ISO 22900 defines a Windows registry path for Windows in which the full path to a so-called <strong>RDF <\/strong>file (<strong>Root Description File<\/strong>) (pdu_api_root.xml) must be specified. In Linux installations, the file can be found under \/etc. The RDF file is in XML format and contains paths to all D-PDU APIs installed on the system and their configuration files.  <\/p>\n\n<div class=\"wp-block-cover alignfull cta-footer\" style=\"margin-top:var(--wp--preset--spacing--80);margin-bottom:0;min-height:430px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-ast-global-color-5-background-color has-background-dim-100 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-container-core-cover-is-layout-15ae893d wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2c464be3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:300px\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"437\" src=\"https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB.png\" alt=\"ACTIA logo\" class=\"wp-image-11\" style=\"border-radius:0px;box-shadow:none;object-fit:cover\" srcset=\"https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB.png 2000w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB-300x66.png 300w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB-1024x224.png 1024w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB-768x168.png 768w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB-1536x336.png 1536w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB-600x131.png 600w, https:\/\/www.ime-actia.de\/wp-content\/uploads\/2025\/11\/cropped-ACTIA_QUADRI_RVB-109x24.png 109w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-1\">Do you have any questions about our products or services?<\/h2>\n\n\n\n<p class=\"has-ast-global-color-3-color has-text-color has-link-color wp-elements-2 wp-block-paragraph\"><strong>We are here for you! Send us your inquiry using the contact form \u2013 our team will get back to you as soon as possible. <\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.ime-actia.de\/en\/contact\/\">Contact us<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>D-PDU API &#8211; ISO 22900-2 The D-PDU API (Diagnostic Protocol Data Unit Application Programming Interface) is a software interface specified [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2227,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5037","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/pages\/5037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/comments?post=5037"}],"version-history":[{"count":1,"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/pages\/5037\/revisions"}],"predecessor-version":[{"id":5038,"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/pages\/5037\/revisions\/5038"}],"up":[{"embeddable":true,"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/pages\/2227"}],"wp:attachment":[{"href":"https:\/\/www.ime-actia.de\/en\/wp-json\/wp\/v2\/media?parent=5037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}