This parameter is used to retrieve custom information of your fixture and enable a custom app menu tailored to your device. All custom information will be uploaded to the VISION SERVER and is also accessible there.
| Data Type | DS_UNSIGNED_BYTE | PDL Size | Variable (See Protocolversion) |
| Cmd Class | CC_GET | Unit | UNITS_NONE |
| Prefix | PREFIX_NONE | Default | 0x00 |
| Min | 0x00 | Max | 0xFF |
| Description | „VISION DATA“ | ||
GET Command 0xA001
Controller Incoming Command:
| (Port ID) | (Msg. Count) | (Sub-Device) | |
| 0x01-0xFF | 0x00 | 0x0000 (Root) or 0x0001-0x0200 | |
| (CC) | (PID) | (PDL) | |
| GET_COMMAND | VISION DATA (0xA001) | 0x00 | |
| (PD) | |||
| Packet Index (8-bit) | |||
Controller Response:
| (Response Type) | (Msg. Count) | (Sub-Device) | |
| ACK | 0x00-0xFF | Copy of Controller SD | |
| (CC) | (PID) | (PDL) | |
| GET_COMMAND_RESPONSE | VISION DATA (0xA000) | Variable (See Protocolversion) | |
| (PD) | |||
| Data Stream | |||
Data Streams:
| DataType | Name | Description | Value Definitions |
|---|---|---|---|
| uint8_t | Protocol Version | Describes Protocol Version | 1: Version 1 |
| uint8_t | PacketIndex | Packet Index | |
| uint8_t | More Data | Flag to indicate that there is more data | If Flag is greater than 0 it indicates there are more Data packets available |
| uint8_t[140] | Data | Data array | It follows the Data scheme from the Config below. |
SET Command 0xA001
Controller Incoming Command:
| (Port ID) | (Msg. Count) | (Sub-Device) | |
| 0x01-0xFF | 0x00 | 0x0000 (Root) or 0x0001-0x0200 | |
| (CC) | (PID) | (PDL) | |
| SET_COMMAND | VISION DATA (0xA001) | Variable | |
| (PD) | |||
| Settings Stream | |||
Settings Stream:
| DataType | Name | Description | Value Definitions |
|---|---|---|---|
| uint8_t | Protocol Version | Describes Protocol Version | 1: Version 1 |
| uint8_t | Data Id | Id from data variable to be changed | |
| uint8_t[140] | Data | Up to 140 bytes of data | Format depends on data type. |
Controller Response:
| (Response Type) | (Msg. Count) | (Sub-Device) | |
| ACK | 0x00-0xFF | Copy of Controller SD | |
| (CC) | (PID) | (PDL) | |
| SET_COMMAND_RESPONSE | Vision DATA (0xA001) | 1 | |
| (PD) | |||
| uint8_t Status | 0 = OK, 1= Unknown Command, 2 = Error executing Command, 3 = Unsupported Command | |||
Data Array scheme
The data array can contain any custom data. To encode the data there have to be defined in the fixtures config.
The datastream has the following structure: The whole DATA block contains multiple DATA items. The bytes of the DATA items will be added sequencially to the data stream.
A Data item is defined the following attributes:
- Id (Int32): Unique Id that defines an attribute. Do not change this if you want to compare values from different configurations in database!
- Name (String): Attribute name, that will be shown in the App Interface or in the database!
- DataType (Enum – IQCustomDataValueType): Describes the Value Type like bool or integer
- DataUnit (String): Unit that will be shown in App Interface or Server
- DataSize (int ): Required for some datatypes. Example: string
- DataDefinition (List of Tuple (int,string)): Optional and used for decoding in App Interface or Server: Example: Colormixing Mode (byte): 0 – RGB, 1 – RGBL. Be aware this values are used when user can set the variable and if DataDefinition is not null only these values can be chosen.
- DataMin (Int64): Defines values minimum for App Interface Optional
- DataMax (Int64): Defines values maximum for App Interface Optional
- InterfacePath (string): Defines interface Structure and should use following format -> eg: MainMenu: „“; MainMenu->MenuPoint1 „MenuPoint1“; MainMenu->MenuPoint1->MenuPoint2 : „MenuPoint1/MenuPoint2“
- Internal (bool): Defines if the attribute should be visible for every user or just with an company account. Overrides Adjustable if set
- Adjustable (bool) Defines if the attribute should be changeable for users. Overrides Internal if set
- AdjustableInternal (bool) Defines if the attribute should be changeable for users with an company account
- Patch (bool) Defines if attribute should be shown int the NFC Patching. Adjustable is required.
The following data types are supported (IQCustomDataValueType):
- 0: Bool (Size 1 byte)
- 1:Byte (Size 1 byte)
- 2:Short (Size 2 byte)
- 3:UShort (Size 2 byte)
- 4:Int32 (Size 4 byte)
- 5:UInt32 (Size 4 byte)
- 6:Int64 (Size 8 byte)
- 7:UInt64 (Size 8 byte)
- 8:Float (Size 4 byte)
- 9:Double (Size 8 byte)
- 10:String ASCII (Data length required)
- 11:ByteArray (Data length required)
- 12:ShortArray (Data length required)
- 13:UShortArray (Data length required)
- 14:Int32Array (Data length required)
- 15:UInt32Array (Data length required)
- 16:Int64Array (Data length required)
- 17:UInt64Array (Data length required)
- 18:FloatArray (Data length required)
- 19:DoubleArray (Data length required)
The resulting config can be uploaded as a json config to the server. A Config should inherit a List of DataItems and look like this:
Example Config:
[
{
"Id": "1",
"Name": "Color Mix Mode",
"DataType": "1",
"DataUnit": "",
"DataDefinitions":
[
{
"Value": "0",
"Definition": "RGB",
},
{
"Value": "1",
"Definition": "RGBL",
}
]
"InterfacePath": "MenuPoint 1",
"Internal": "False",
"Adjustable": "True",
"AdjustableInternal": "True",
}
]
Example Pseudo Data Structure:
DATA 1: Name: „Data 1″ DataType=“Byte“ Value=“100″
DATA 2: Name: „Data 2″ DataType=“Ushort“ Value=“10000″
DATA 3: Name: „Data 3″ DataType=“String“ Value=“Test“ DataLength = 4
DATA 1 | DATA 2 | DATA 3 | ….
Example Data Stream:
DATA Stream -> 0x64,0x27,0x10,0x54,0x65,0x73,0x74,…