OTX-Runtime for DotNet  
Installation

The following sections describes how the OTX-Runtime API can be installed at different target systems.

Installation for Windows

The following sections lists all delivered files and folders. The value of the Needed column is based on the following assumption:

  • Usage inside own C++ application
  • Diagnostic communication needed
  • Default custom implementation needed
  • Usage of transport layer SOCKET

System Requirements

Note (Java API only): Due to security restrictions in the OSGI framework, which prevent an EXE from being started, the Java OTX Runtime API cannot be used. In this case e.g. the C++ API in RAW-IPC mode can be used.

Distribution

The software is delivered as ZIP containers including APIs for C++, DotNet and Java as well as some helper programs. File names:

  • OpenTestSystem.Otx.Runtime.Api_Win32_Version.zip containing the 32 bit version for windows
  • OpenTestSystem.Otx.Runtime.Api_Win64_Version.zip containing the 64 bit version for windows

Note: The OTX-DiagManager is part of the distribution and does not have to be installed separately.

Installation

  1. Copy the content of the ZIP container files to an arbitrary location
  2. Copy the binary file(s) of the related diagnostic runtime system into this location, see table below. The file is located in the installation directory of the diagnostic runtime system.
Name Version Class File to copy
VW-MCD 9.0 to 17.0 VwMcdDiagRuntimeSystem McdKernel_vc120.dll or McdKernel_vc120_64.dll
VW-MCD 17.50 VwMcdDiagRuntimeSystem McdKernel_vc142.dll or McdKernel_vc142_64.dll
VW-MCD (SP) 9.0 to 17.0 VwMcdSPDiagRuntimeSystem McdKernel_vc120.dll or McdKernel_vc120_64.dll
VW-MCD (SP) 17.50 VwMcdSPDiagRuntimeSystem McdKernel_vc142.dll or McdKernel_vc142_64.dll

Important: The diagnostic runtime system is not part of the delivery! Therefore, the user is responsible that it is installed, configured and accessible.

Folder List

The following table contains the folder structure of the deliverables.

Note: The folder list does not claim to be complete! It should inform the user about the meaning of the individual folders.

Folder Needed Description
bin/ Yes Folder containing all binary files
bin/resources/ No Folder containing all resource files like images for the sample program. Needed if the sample program should be used.
include/ No Folder containing all C++ header files. Needed for design time only.
lib/ No Folder containing all C++ lib files. Needed for design time only.
html/ No Folder containing developer reference as a web page. To open the web page, execute containing index.html.

Binary Files for OTX-Runtime

The following table contains all files for the OTX-Runtime API.

Note: The file list does not claim to be complete! It should inform the user about the meaning of the individual files.

Important: We can only guarantee error-free execution if all files supplied are used! If files are removed, it is the responsibility of the user to ensure that it does not affect execution.

File Needed Description
OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.exe No Sample application for OTX-Runtime API with GUI in C++
OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.Console.exe No Sample application for OTX-Runtime API as console application without GUI in C++
botan.dll Yes 3rd party library for cryptography
OpenTestSystem.Otx.Runtime2.Api.Custom.Default.dll No Adapter for C++ runtime API to default custom implementations (Exchangeable by the user) also necessary for OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication
lua-5.3.5.dll Yes 3rd party library for Lua execution
llthreads2.dll Yes 3rd party library for Lua execution threading
OpenTestSystem.Lua.Adapter.dll Yes Middleware between Lua and OTX-Runtime functions
OpenTestSystem.Otx.Common.dll Yes Common OTX functions
OpenTestSystem.Otx.Runtime.dll Yes OTX-Runtime
OpenTestSystem.Otx.Runtime2.Api.dll Yes OTX-Runtime API for C++
OpenTestSystem.Otx.DiagManager.Common.dll Yes DiagManager common functions
OpenTestSystem.Otx.DiagManager.OtxDiagApi.dll Yes DiagManager OtxDiagApi
OpenTestSystem.Otx.DiagManager.Client.dll Yes DiagManager Client
OpenTestSystem.Otx.Runtime2.Runner.exe Yes OTX runner process, if the OTX runtime is inside a separate process. Not needed for transport layer RAW.
PocoFoundation.dll Yes 3rd party library for general purposes.
PocoZip.dll Yes 3rd party library for ZIP file handling in C++, e.g. for PTX files
TestExecution.exe No Application to execute OTX unit tests with GUI in C++
TestExecution.Console.exe No Application to execute OTX unit tests as console application in C++
xerces-c_3_2.dll Yes 3rd party library for XML parser, DOM, validator,...
xqilla23.dll Yes 3rd party library for XML's XPath

Binary Files for Usage with DotNet

The following table contains all additional files for the usage of the OTX-Runtime API for DotNet.

File Needed Description
OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.DotNet.exe No Sample application for OTX-Runtime API with GUI in DotNet
OpenTestSystem.Otx.Runtime2.Api.Custom.Default.DotNet.dll No Adapter for C++ runtime API to default custom implementations (Exchangeable by the user) also necessary for OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.DotNet
Google.Protobuf.dll Yes 3rd party library for Google Protocol Buffers for DotNet
SharpCompress.dll Yes 3rd party library for ZIP file handling, e.g. for PTX files, in DotNet
log4net.dll Yes 3rd party library for logging
OpenTestSystem.Common.dll Yes Common functions, used for Protobuf implementation
OpenTestSystem.Otf.Model.dll Yes OtxSearchPath used in OpenTestSystem.Otx.Runtime2.Api.DotNet.dll
OpenTestSystem.Otx.Runtime2.Api.DotNet.dll Yes OTX-Runtime API for DotNet
TestExecutionDotNet.exe No Application to execute OTX unit tests with GUI in DotNet
DevComponents.DotNetBar2.dll No 3rd party library used by TestExecutionDotNet.exe
System.Text.Encoding.CodePages.dll Yes 3rd party library used by SharpCompress.dll
System.Memory.dll Yes 3rd party library used by SharpCompress.dll
System.Configuration.ConfigurationManager.dll Yes 3rd party library used by log4net.dll

Binary Files for Usage with Java

The following table contains all additional files for the usage of the OTX-Runtime API for Java.

File Needed Description
bcprov-jdk15on-157.jar Yes 3rd party library for cryptography
Google.Protobuf.dll No 3rd party library for Google Protocol Buffers
gson-2.2.4.jar Yes 3rd party library for converting string to JSON and vice-versa
jna-5.5.0.jar Yes 3rd party library for creating pipe listener
jna-platform-5.5.0.jar Yes 3rd party library for creating pipe listener
log4j-api-2.17.1.jar Yes 3rd party library for logging
log4j-core-2.17.1.jar Yes 3rd party library for logging
OpenTestSystem.Common.dll No Common functions, used for Protobuf implementation
OpenTestSystem.Custom.Default.Implementation.DotNet.dll No Default custom implementation in DotNet. OTX-Runtime API for DotNet directly use this without IPC.
OpenTestSystem.Custom.Default.Implementation.DotNet.Runner.exe No Runner process for default custom implementation
OpenTestSystem.Otx.Common.jar Yes Common functions, used for Protobuf implementation
OpenTestSystem.Otx.Runtime2.Api.Custom.Default.Java.jar No Adapter for Java runtime API to default custom implementations (Exchangeable by the user) also necessary for OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.Java
OpenTestSystem.Otx.Runtime2.Api.Java.jar Yes OTX-Runtime API for Java
OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.Java.jar No Sample application for OTX-Runtime API with GUI in Java
protobuf-java-3.19.3.jar Yes 3rd party library for Google Protocol Buffers
jaxb-api-2.3.1.jar Yes 3rd party library for automate the mapping between XML documents and Java objects.

Binary Files for DiagManager

The following table contains all additional files the usage of the OTX-Runtime API (C++, DotNet and Java) for diagnostic communication via OTX-DiagManager.

File Needed Description
bcprov-jdk15on-157.jar Yes 3rd party library for cryptography
botan.dll Yes 3rd party library for cryptography
DiagManagerSample.exe No Utility to start the DiagManager server process with IPC
Google.Protobuf.dll Yes 3rd party library for Google Protocol Buffers for DotNet
jna-5.5.0.jar Yes 3rd party library for creating pipe listener
jna-platform-5.5.0.jar Yes 3rd party library for creating pipe listener
log4j-api-2.17.1.jar Yes 3rd party library for logging for Java
log4j-core-2.17.1.jar Yes 3rd party library for logging for Java
OpenTestSystem.Otx.DiagManager.Client.dll Yes DiagManager Client
OpenTestSystem.Otx.DiagManager.Client.DotNet.dll Yes DiagManager DotNet Client
OpenTestSystem.Otx.DiagManager.Client.Java.jar Yes DiagManager Java Client
OpenTestSystem.Otx.DiagManager.Common.dll Yes DiagManager common functions
OpenTestSystem.Otx.DiagManager.Common.DotNet.dll Yes DiagManager common functions
OpenTestSystem.Otx.DiagManager.Common.Java.jar Yes DiagManager common functions
OpenTestSystem.Otx.DiagManager.CommandProcessor.dll Yes DiagManager default CommandProcessor (Exchangeable by the user)
CppRuntimeApi/bin/OpenTestSystem.Otx.DiagManager.DiagRuntimeSystem.VwMcd_VC142.dll Yes DiagManager default DiagRuntimeSystem which supports VW-MCD 17.50 or later (Exchangeable by the user)
CppRuntimeApi/bin/OpenTestSystem.Otx.DiagManager.DiagRuntimeSystem.VwMcdSP_VC142.dll No DiagRuntimeSystem which supports Shared Pointer VW-MCD 17.50 or later (Exchangeable by the user)
CppRuntimeApi/bin/OpenTestSystem.Otx.DiagManager.DiagRuntimeSystem.dll No DiagRuntimeSystem which supports VW-MCD 9.0 to 17.0 (Exchangeable by the user)
CppRuntimeApi/bin/OpenTestSystem.Otx.DiagManager.DiagRuntimeSystem.VwMcd90SP.dll No DiagRuntimeSystem which supports Shared Pointer VW-MCD 9.0 to 17.0 (Exchangeable by the user)
OpenTestSystem.Otx.DiagManager.OtxDiagApi.dll Yes DiagManager OtxDiagApi in C++
OpenTestSystem.Otx.DiagManager.OtxDiagApi.DotNet.dll Yes DiagManager OtxDiagApi in DotNet
OpenTestSystem.Otx.DiagManager.OtxDiagApi.Java.jar Yes DiagManager OtxDiagApi in Java
OpenTestSystem.Otx.DiagManager.NoneOtxDiagApi.dll Yes DiagManager NoneOtxDiagApi in C++
OpenTestSystem.Otx.DiagManager.NoneOtxDiagApi.DotNet.dll Yes DiagManager NoneOtxDiagApi in DotNet
OpenTestSystem.Otx.DiagManager.NoneOtxDiagApi.Java.jar Yes DiagManager NoneOtxDiagApi in Java
OpenTestSystem.Otx.DiagManager.SystemApi.dll Yes DiagManager SystemApi in C++
OpenTestSystem.Otx.DiagManager.SystemApi.DotNet.dll Yes DiagManager SystemApi in DotNet
OpenTestSystem.Otx.DiagManager.SystemApi.Java.jar Yes DiagManager SystemApi in Java
OpenTestSystem.Otx.DiagManager.Server.dll Yes DiagManager Server
protobuf-java-3.19.3.jar Yes 3rd party library for Google Protocol Buffers for Java

Binary Files for Custom Implementations

The following table contains all additional files necessary for custom implementations used with the OTX-Runtime API (C++, DotNet and Java) like screens or access to device driver. The listed files are not necessary if own custom implementations will used.

File Needed Description
OpenTestSystem.Otx.Runtime2.Api.Custom.Default.dll Yes Adapter for C++ runtime API to default custom implementations (Exchangeable by the user)
OpenTestSystem.Otx.Runtime2.Api.Custom.Default.Java.jar Yes Adapter for Java runtime API to default custom implementations (Exchangeable by the user)
OpenTestSystem.Otx.Runtime2.Api.Custom.Default.DotNet.dll Yes Adapter for DotNet runtime API to default custom implementations (Exchangeable by the user)
Newtonsoft.Json.dll No 3rd party library for default custom implementation (HTML screens)
OpenTestSystem.Custom.Default.Implementation.DotNet.dll Yes Default custom implementation in DotNet. OTX-Runtime API for DotNet directly use this without IPC.
OpenTestSystem.Custom.Default.Implementation.DotNet.Runner.exe Yes Runner process for default custom implementation. Not needed for OTX runtime in DotNet.
OpenTestSystem.Common.dll Yes Common functions, used for Protobuf implementation
websocket-sharp.dll No 3rd party library for default custom implementation (HTML screens)
Google.Protobuf.dll Yes 3rd party library for Google Protocol Buffers

Binary Files for Diagnostic Runtime System (<strong>Not Delivered!</strong>)

The following table contains all additional files necessary for diagnostic communication. These files will not delivered! They must be installed in a separate way.

File Needed Description
McdKernel_vc120.dll Yes VW-MCD Diagnostic Runtime System 90 XXX
McdKernel_vc142.dll Yes VW-MCD Diagnostic Runtime System 17.50 XXX
msvcp120.dll Yes 3rd party library for Visual C++ runtime
msvcr120.dll Yes 3rd party library for Visual C++ runtime
msvcp71.dll Yes Module containing link libraries of instructions to the "Microsoft Runtime C Library"
msvcr71.dll Yes Module containing standard C library functions such as printf, memcpy, and cos. It is a part of the Microsoft C Runtime Library

Installation for Linux x86-64

The following sections lists all delivered files and folders. The value of the Needed column is based on the following assumption:

  • Usage inside own C++ application
  • Diagnostic communication needed
  • Own custom implementation will used
  • Usage of transport layer RAW

Compiler

The software was compiled as follows:

Build for x86:

  • Ubuntu 16.04
  • Kernel 4.15.0-99-generic
  • gcc 7.5.0
  • cmake 3.17.0

Build for 64 bit:

  • Ubuntu 18.04
  • Kernel 4.4.0-17763-Microsoft (WSL)
  • gcc 7.5.0
  • cmake 3.17.0

Distribution

The software is delivered as ZIP containers including some helper programs. File names:

  • OpenTestSystem.Otx.Runtime.Api_Linux32_Version.zip containing the 32 bit version for Linux
  • OpenTestSystem.Otx.Runtime.Api_Linux64_Version.zip containing the 64 bit version for Linux

For the automatic installation execute the installers. For the manual installation copy the content of the ZIP container files to an arbitrary location.

Folder List

Folder structure of the deliverables.

Note: The folder list does not claim to be complete! It should inform the user about the meaning of the individual folders.

Folder Needed Description
bin/ Yes Folder containing all binary files
include/ No Folder containing all C++ header files. Needed for design time only.
html/ No Folder containing developer reference as a web page. To open the web page, execute containing index.html.

Binary Files for OTX-Runtime

The following table contains all files for the OTX-Runtime API.

Note: The file list does not claim to be complete! It should inform the user about the meaning of the individual files.

Important: We can only guarantee error-free execution if all files supplied are used! If files are removed, it is the responsibility of the user to ensure that it does not affect execution.

File Needed Description
OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.Console No Sample application for OTX-Runtime API as console application without GUI
libOpenTestSystem.Otx.Runtime2.Api.Custom.Default.so No Needed for OpenTestSystem.Otx.Runtime2.Api.ReferenceApplication.Console Adapter for C++ runtime API to default custom implementations (Exchangeable by the user)
libbotan.so No 3rd party library for socket communication. Not needed for transport layer RAW.
liblua-5.3.5.so Yes 3rd party library for OTX execution
llthreads2.so Yes 3rd party library for OTX execution threading
libOpenTestSystem.Lua.Adapter.so Yes OTX runtime format handling
libOpenTestSystem.Otx.Common.so Yes Common OTX functions
libOpenTestSystem.Otx.Runtime.so Yes OTX runtime
libOpenTestSystem.Otx.Runtime2.Api.so Yes OTX-Runtime API
libOpenTestSystem.Otx.DiagManager.Client.so Yes DiagManager Client
libOpenTestSystem.Otx.DiagManager.Common.so Yes DiagManager common functions
libOpenTestSystem.Otx.DiagManager.OtxDiagApi.so Yes DiagManager OtxDiagApi
libPocoFoundation.so.64 Yes 3rd party library for general purposes like XML, cryptography etc. Number 64 is its version.
libPocoZip.so.64 Yes 3rd party library for ZIP file handling, e.g. for PTX files. Number 64 is its version.
OpenTestSystem.Otx.Runtime2.Runner No OTX runner process, if the OTX runtime is inside a separate process. Not needed for transport layer RAW.
TestExecution.Console No Application to execute OTX unit tests as console application
libxerces-c-3.2.so Yes 3rd party library for XML parser, DOM, validator,...
libxqilla.so.2.4.0 Yes 3rd party library for XML's XPath

Binary Files for DiagManager

The following table contains all additional files the usage of the OTX-Runtime API for diagnostic communication via OTX-DiagManager.

File Needed Description
libbotan.so Yes 3rd party library for cryptography
libOpenTestSystem.Otx.DiagManager.Client.so Yes DiagManager Client
libOpenTestSystem.Otx.DiagManager.CommandProcessor.so Yes DiagManager default CommandProcessor (Exchangeable by the user)
libOpenTestSystem.Otx.DiagManager.Common.so Yes DiagManager common functions
libOpenTestSystem.Otx.DiagManager.DiagRuntimeSystem.VwMcd.so Yes DiagManager default DiagRuntimeSystem which supports VW-MCD (Exchangeable by the user)
libOpenTestSystem.Otx.DiagManager.DiagRuntimeSystem.VwMcdSP.so No DiagRuntimeSystem which supports Shared Pointer VW-MCD (Exchangeable by the user)
libOpenTestSystem.Otx.DiagManager.OtxDiagApi.so Yes DiagManager OtxDiagApi
libOpenTestSystem.Otx.DiagManager.NoneOtxDiagApi.so Yes DiagManager NoneOtxDiagApi
libOpenTestSystem.Otx.DiagManager.SystemApi.so Yes DiagManager SystemApi
libOpenTestSystem.Otx.DiagManager.Server.so Yes DiagManager Server

Binary Files for Custom Implementations

The following table contains all additional files necessary for custom implementations like screens or access to device driver. The listed files are not necessary if own custom implementations will used.

File Needed Description
libOpenTestSystem.Otx.Runtime2.Api.Custom.Default.so Yes Adapter for runtime API to custom implementations (Exchangeable by the user)