Skip to content

Types reference

In OEVIS® different kind of data types are defined and can be used to create variables, tools properties, custom data and provides other features to exchange data between various instances within the project. Data types can be divided in the followings:

  • Primitive Types : basic data types which are used to work with value types ( e.g. integer, float, char, boolean, double, byte, enum, etc ).

  • Handle Types : data types which are used to managed data that need to be handled by reference, acting like pointers. These include, but not limited to, Image, Region, FittingMap(s), communication objects like Socket, SerialPort, WebSocket etc.

  • Structure Types : data type that are constructed on primitive and/or handle types, allowing to access and interact with their inner fields. These include, but not limited to, Geometry2D ( Point2D, Circle2D, Box etc ), FittingField(s), CalibrationParams etc.

For a detailed description of all possible types and enums available in OEVIS®, please refer to Data Types and Enum Types respectively.

Type variations

Each of the types described above can have one or more of the following type variations :

  • < T >Array : represents an array of elements of type T ( IntArray, Point2DArray, etc ).

  • < T >ArrayArray : represents an array of arrays of elements of type T ( IntArrayArray, Point2DArrayArray, etc ).

  • < T >Null ( < T >? ) : represents a nullable value of type T ( Int?, Point2D?, etc ).

  • < T >NullArray ( < T >?Array ) : represents an array of elements of nullable type T ( Int?Array, Point2D?Array, etc ).

  • < T >NullArrayArray ( < T >?ArrayArray ) : represents an array of arrays of elements of nullable type T ( Int?ArrayArray, Point2D?ArrayArray, etc ).

In case of a Structure type, variations are propagated to inner properties as well.

For a description on how these variations types works in OEVIS®, please refer to Programming guide.

Info

Based on how a type is defined, it can not have all the possible variants. For example, the type Histogram defines a property Values of type FloatArray (one dimensional array), which means that HistogramArray can be defined ( in this case Values becomes a two dimensional array) but HistogramArrayArray is not possible because it would required a three dimensional array which is not supported.