DoIP specifies a set of types that values transferred in messages, variables and parameters are allowed to have. The type of parameters is specified in OSC messages using a 'tag' character (for example, an integer value is indicated by a single 'i' character, which stands for 'int32 variable'). In the definition file and the state file, parameter and variable types are indicated using a string. In EPFramework and in TJFabricServer (at least internally) value types are indicated by the Any-type (Any::Type). The Any class can contain values of any type (use Any::GetType to retrieve the current type of a variable, or Any::Force to convert between Any values of a particular type).
| Type | Identifier | Tag | Any type | Description | String representation | OSC representation |
|---|---|---|---|---|---|---|
| Integer | “int32” | i | Any::TypeInteger | A 32-bit integer | ASCII stringified (“1234”) | 4 bytes, network order |
| Double | “double” | d | Any::TypeDouble | 64 bit (“double”) IEEE 754 floating point number | ASCII stringified (“12.34”) | IEEE 754, 8 bytes network order |
| String | “string” | s | Any::TypeString | A UTF-8 encoded string | UTF-8 | UTF-8 |
| Boolean | “bool” | T or F | Any::TypeBoolean | A boolean value | Either “yes”,”no”,”true”,”false”,”1” or “0” | T or F tag |
| Null | “null” | N | Any::TypeNull | Empty or unknown value | ||
| Object | Any::TypeObject | A reference to an object | ||||
| Tuple | Any::TypeTuple | A tuple of values |
For more information on the serialization of values in OSC, consult the OSC specification.