OTX-Runtime Converter  
OTX-DiagManager

The OTX DiagManager (short DiagManager) is a software component between diagnostic applications and various, interchangeable diagnostic runtime systems. The DiagManager is part of the OTX-Runtime API, but it can also be used stand-alone.

Note: The DiagManager must be started before a diagnostic communication can be established, see General Usage. The OTX-Runtime API does not start the DiagManager implicit.

Content

  • DiagManagerInstallation
  • DiagManagerConfiguration
  • Licensing
  • DiagManagerRuntimeBehavior
  • DiagManagerDoIP
  • DiagManagerOwnDiagRuntimeSystem
  • DiagManagerOwnCommandProcessor
  • DiagManagerSampleProgram

Overview

The picture shows the functional diagram of the software components of the DiagManager. The layers from top to bottom first contain the diagnostic application (1st layer). The diagnostic application is a process that integrates the DiagManager via the APIs (2nd layer). The APIs cover different function groups (e.g. OtxDiagApi, NoneOtxDiagApi etc.) and are available for C++, DotNet and Java. They don't have to be used at all. Each API generates commands that are transferred to the server (4th layer) via the client (3rd layer). A distinction is made between standard and non-standard commands. The structure of standard commands is the same like all diagnostic related actions and terms in OTX, e.g. GetComChannel. Non-standard commands can transport functions which are not described in OTX, e.g. ReleaseDiagService.

A client is assigned to each diagnostic application (process). There is a transport layer between client and server with interprocess communication (IPC) via SOCKETS or PIPES and alternatively without interprocess communication via direct function calls (RAW). Since the server and all layers below are in unmanaged C ++, RAW can only work together with the C ++ OTX-Runtime API. The server serializes the commands and forwards it to the CommandProcessor (5th layer). The diagnostic communication can be optimized (caching, prioritization, limitation etc.) inside the CommandProcessor. The DiagRuntimeSystem (6th layer) adapts the commands to methods of a specific diagnostic runtime system (7th layer). In addition, specific proprietary functions can be called up using non-standard commands (7th layer).

Functions

  • The DiagManager is an API for the cooperative usage of diagnostic runtime systems, based on the functionality of OTX according to ISO 13209-3 and -4
  • The DiagManager is able to optimize and prioritize diagnostic communication
  • DiagManager runs either as a separate server process for multiple applications or within the application process
  • The DiagManager is implemented in C++ and can also be used in embedded systems
  • The DiagManager APIs are available for C++, DotNet and Java
  • The DiagManager API "speaks" OTX, i.e. the methods on the API correspond to the actions and terms in OTX
  • With the DiagManager specific functions can be added via interfaces to be implemented by the user, without recompiling the DiagManager. This applies to:
    • CommandProcessor, to implement an customer specific optimization or prioritization
    • None-standardized commands, that are not standardized in OTX and which the CommandProcessor or the DiagRuntimeSystem can process
    • DiagRuntimeSystem for various MVCI implementations or proprietary diagnostic runtime systems
    • Custom implementation: If the DiagRuntimeSystem receives a special command, this is transferred together with the MCDSystem object to a custom implementation provided by the user. The implementation of the user must ensure that access to the MCDSystem object has no undesirable side effects for the DiagRuntimeSystem.
  • A parallel execution of procedures with diagnostic communication is possible via the same VCI and DoIP
  • The application is able to overwrite an existing diagnostic configuration
  • The customer is able to implement its own diagnostic runtime systems with special behavior (e.g. prioritization or optimization of diagnostic services).

APIs

The DiagManager consists of the following APIs which can be integrated into the diagnostic application. Except the OtxDiagApi all other APIs are optionally.

  • OtxDiagApi - Contains all standardized OTX commands. The commands correspond one to one to the actions and terms of the following OTX extensions:
    • BusMonitoring
    • ComInterface
    • DiagCom
    • DiagComPlus
    • DiagConfiguration
    • DiagDataBrowsing
    • DiagDataBrowsingPlus
    • EcuConfiguration
    • Flash
    • FlashPlus
    • Job
    • VehicleInfo
  • NoneOtxDiagApi - Contains all none-standardized diagnostic commands, which are not covered by OTX
  • SystemApi - Contains all system commands

Examples

General Usage

Before the OTX-Runtime can communicate with a diagnostic runtime system, the DiagManager must be started. The different ways to start the DiagManager are described in DiagManagerConfiguration. The easiest way to start the DiagManager ist to start the utility OpenTestSystem.Otx.DiagManager.Monitor.exe, see DiagManagerSampleProgram.

The right ODX data base must be selected and the DiagManager server must be started. In the example the server is listening at port 8888 for clients to connect.