Open Test Framework  
Procedure Project

A Procedure Project is the main project type. It includes all files and settings that are necessary for OTX. Procedure Projects are executable and can be redistributed. Individual OTX files cannot do this. Procedure Projects can refer to each other or can refer or PTX files like a library. Several Procedure Projects are combined in a so-called Solution Structure, see Solution Explorer. A Procedure Project manages all OTX packages, documents and settings for building, executing and debugging OTX procedures.

Related Topics:

Note: For the execution of a Procedure Project it must be compiled into an extremely fast and resource-saving runtime format, which can also executed in embedded systems, see Compiler. The binary files will be generated in the CppOutput folder of the project.

Note: A Procedure Project can be transported via a PTX File.

Procedure Project Structure

An Procedure Project is a self-contained entity that can be transported and executed. One project per Solution Structure can be marked as a start project. The start project serves as an entry point for the runtime environment. An OTX project contains one or more OTX packages. An OTX package is also a folder on the file system and corresponds to the so-called namespace of the OTX elements contained. The namespace uniquely identifies each OTX element. The namespace is necessary to address visible elements of other @refs OpenTestSystem.Otx.Core.Otx "documents". An OTX package contains one or more OTX @refs OpenTestSystem.Otx.Core.Otx "documents".

On the file system, a Procedure Project is a folder containing a project file and the following files and folders.

[Folder] or File Name Content
[CppOutput] Contains all binary files generated for execution.
[i18n] Contains i18n-Extension settings, such as multilingual text libraries; see project settings for more information.
[Logging] Contains Logging-Extension settings; see project settings for more information.
[OTX] Contains all the OTX packages or OTX documents.
[OTX-Backup] Contains the OTX backup files; see OTF Settings for more information.
[OTX-Mapping] Contains OTX Mapping files for use with extensions like HMI, Measure, ExternalServiceProvider.
[PTX] Contains PTX libraries statically bound to the project.
[Quantity] Contains Quantity-Extension settings, such as ODX files with UNIT-SPECS; see Project Settings for more information.
ProjectName.otfPrj Contains the project structure and all dependencies (mandatory)
ProjectName.map Contains all project settings for OTX runtime
index.xml Standardized content file (mandatory)
ProjectName.ptx PTX file
OtxDocumentName.otx Standardized OTX document file in XML format
MappingFileName1.otfMap Contains all information related to the OTX Mapping

An OTX document corresponds to an OTX file and can contain global declarations and procedures. One document per project can be marked as the start document. A start document must contain a main procedure. The start document serves as an entry point for the runtime environment. An OTX document contains one or more OTX procedures. An OTX procedure is the executable part of an OTX document. Furthermore, the special main procedure is the entry point for the execution of an OTX document and a procedure can call another procedures in- or outside the document at any depth.

If an OTX document wants to access the visible elements of another documents, then the other @refs OpenTestSystem.Otx.Core.Otx "document" must be listed in the Imports area. A document can import @refs OpenTestSystem.Otx.Core.Otx "documents" from the same package or from other packages inside the same or other projects.

Project References

All global elements with sufficient OpenTestSystem::Otx::Core::Visibility inside an OTX document can be referenced and used by another OTX document. The following elements can be referenced:

  1. Validities
  2. Signatures
  3. Global Declarations
  4. Procedures

Note: Before a global element can be referenced, the document containing the global element must be imported. If the document is outside the project, a reference to the outside project must be added; see Project Settings for more information.

General Analogies

For a better understanding, the following table compares the terminologies of OTX with other programming languages like DotNet and Java. For example, in Java, the solution is called a workspace. A PTX file corresponds to a DLL in DotNet and to a JAR file in Java. An OTX document is a class in DotNet and Java, and an OTX procedure is a method.

OTX DotNet Java
Solution Solution Workspace
Project Project Project
PTX DLL JAR
Package Namespace Package
Document Class Class
File (*.otx) File (*.cs) File (*.java)
Procedure Method Method