Daemon API - State

Configuration

Endpoints for machine-level configuration: startup behaviour, logging, language, headless mode, control mode, and the persistent store.

DirectorStartup [STATE]

DirectorStartup

Controls whether the Pixotope Director starts automatically when the machine boots (Windows registry autorun). Also reports registry path and version information.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Startup

boolean

Whether to enable Director autorun on machine startup.

Return Value

Startup

boolean

Whether autorun is currently enabled.

Mismatch

boolean

Whether the registry autorun path points to a different Pixotope install than the running one.

Version

string

The Pixotope version recorded in the registry.

Path

string

The install path recorded in the registry autorun entry.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "DirectorStartup",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "DirectorStartup"
}
JSON
{
  "Value": {
    "Startup": true,
    "Mismatch": false,
    "Version": "26.2.0",
    "Path": "C:\\Pixotope\\Director.exe"
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "DirectorStartup"
}
JSON
{
  "Value": {
    "Startup": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "DirectorStartup"
}
JSON
{
  "Value": {
    "Startup": true
  }
}
DirectorLoggerConfig [STATE]

DirectorLoggerConfig

Controls and retrieves the Director logger verbosity configuration.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Verbose

boolean

Whether to enable verbose (debug-level) logging for the Director.

Return Value

Verbose

boolean

Whether verbose logging is currently enabled.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "DirectorLoggerConfig",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "DirectorLoggerConfig"
}
JSON
{
  "Value": {
    "Verbose": false
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "DirectorLoggerConfig"
}
JSON
{
  "Value": {
    "Verbose": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "DirectorLoggerConfig"
}
JSON
{
  "Value": {
    "Verbose": true
  }
}
Language [STATE]

Language

Controls and retrieves the UI language used by Pixotope applications on this machine.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Language

string

The language code to set (e.g. `"en"`, `"de"`).

Return Value

Language

string

The currently configured language code.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "Language",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "Language"
}
JSON
{
  "Value": {
    "Language": "en"
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "Language"
}
JSON
{
  "Value": {
    "Language": "de"
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "Language"
}
JSON
{
  "Value": {
    "Language": "de"
  }
}
HeadlessMode [STATE]

HeadlessMode

Controls and retrieves whether the Director runs in headless mode (no GUI) on startup.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Startup

boolean

Whether to start the Director in headless mode.

Return Value

Startup

boolean

Whether headless mode is currently enabled.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "HeadlessMode",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "HeadlessMode"
}
JSON
{
  "Value": {
    "Startup": false
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "HeadlessMode"
}
JSON
{
  "Value": {
    "Startup": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "HeadlessMode"
}
JSON
{
  "Value": {
    "Startup": true
  }
}
SetupControlMode [STATE]

SetupControlMode

Controls and retrieves the setup control mode, which determines how this machine is configured and managed within the Pixotope network.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Mode

string

The control mode to set.

Return Value

Value

object

The current setup control mode configuration.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "SetupControlMode",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "SetupControlMode"
}
JSON
{
  "Value": {
    "Mode": "Manual"
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "SetupControlMode"
}
JSON
{
  "Value": {
    "Mode": "Auto"
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "SetupControlMode"
}
JSON
{
  "Value": {
    "Mode": "Auto"
  }
}
Store [STATE]

Store

Controls and retrieves the persistent local machine store. The store holds all persisted per-machine settings as a key-value map.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Value

object

Key-value pairs to merge into the store.

Return Value

Value

object

The full current contents of the persistent store.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "Store",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "Store"
}
JSON
{
  "Value": {
    "HEADLESS_MODE": false,
    "LANGUAGE": "en"
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "Store"
}
JSON
{
  "Value": {
    "HEADLESS_MODE": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "Store"
}
JSON
{
  "Value": {
    "HEADLESS_MODE": true,
    "LANGUAGE": "en"
  }
}

Projects

Endpoints for local project path overrides on this machine.

LocalProjectPaths [STATE]

LocalProjectPaths

Controls and retrieves local disk path overrides for store projects. Allows mapping a synced store project path to a local disk path on this machine.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

StoreProjectsPath

string

The store project path (may include path aliases such as `%APPLICATION%` or `%SYNCED_STORAGE%`) to create an override for.

LocalProjectsPath

string

The absolute local disk path to map to.

Return Value

LocalPaths

object

A map of store project paths to their local disk path overrides.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "LocalProjectPaths",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "LocalProjectPaths"
}
JSON
{
  "Value": {
    "LocalPaths": {
      "C:\\Pixotope\\Projects\\Show1": "D:\\LocalProjects\\Show1"
    }
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "LocalProjectPaths"
}
JSON
{
  "Value": {
    "StoreProjectsPath": "%APPLICATION%\\Projects\\Show1",
    "LocalProjectsPath": "D:\\LocalProjects\\Show1"
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "LocalProjectPaths"
}
JSON
{
  "Value": {
    "LocalPaths": {
      "C:\\Pixotope\\Projects\\Show1": "D:\\LocalProjects\\Show1"
    }
  }
}

Network

Endpoints for network configuration on this machine.

CustomDirector [STATE]

CustomDirector

Controls and retrieves the custom Director connection configuration. Allows overriding which Director instance this machine connects to.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Value

object

Custom Director fields to update (e.g. enabled flag, IP address, port).

Return Value

Value

object

The current custom Director configuration.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "CustomDirector",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "CustomDirector"
}
JSON
{
  "Value": {
    "Enabled": false,
    "IP": "",
    "Port": 0
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "CustomDirector"
}
JSON
{
  "Value": {
    "Enabled": true,
    "IP": "192.168.1.100",
    "Port": 19400
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "CustomDirector"
}
JSON
{
  "Value": {
    "Enabled": true,
    "IP": "192.168.1.100",
    "Port": 19400
  }
}
ActiveAdapter [STATE]

ActiveAdapter

Controls and retrieves the active network adapter used by Pixotope services on this machine. Changing the active adapter restarts the Store service and re-broadcasts network information.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Name

string

The name of the network adapter to activate.

Address optional

string

The IP address of the adapter.

Return Value

Name

string

The name of the currently active network adapter.

Address

string

The IP address of the currently active adapter.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "ActiveAdapter",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "ActiveAdapter"
}
JSON
{
  "Value": {
    "Name": "Ethernet",
    "Address": "192.168.1.10"
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "ActiveAdapter"
}
JSON
{
  "Value": {
    "Name": "Ethernet 2",
    "Address": "10.0.0.5"
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "ActiveAdapter"
}
JSON
{
  "Value": {
    "Name": "Ethernet 2",
    "Address": "10.0.0.5"
  }
}

Diagnostics

Endpoints for diagnostics startup preference and runtime diagnostics layout on this machine.

DiagnosticsStartup [STATE]

DiagnosticsStartup

Controls and retrieves whether diagnostics should start automatically with the system (stored in general config).

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Startup

boolean

Whether to enable diagnostics at startup.

Return Value

Startup

boolean

Whether diagnostics startup is currently enabled.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "DiagnosticsStartup",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "DiagnosticsStartup"
}
JSON
{
  "Value": {
    "Startup": false
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "DiagnosticsStartup"
}
JSON
{
  "Value": {
    "Startup": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "DiagnosticsStartup"
}
JSON
{
  "Value": {
    "Startup": true
  }
}
DiagnosticsState [STATE]

DiagnosticsState

Controls and retrieves the diagnostics subsystem state for this machine.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Value

object

Diagnostics state fields to update.

Return Value

Value

object

The current diagnostics state object.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "DiagnosticsState",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "DiagnosticsState"
}
JSON
{
  "Value": {}
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "DiagnosticsState"
}
JSON
{
  "Value": {}
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "DiagnosticsState"
}
JSON
{
  "Value": {}
}

Hardware

Endpoints for hardware-specific configuration and state (Matrox devices).

PTPMatroxConfig [STATE]

PTPMatroxConfig

Controls and retrieves the PTP (Precision Time Protocol) Matrox hardware configuration for this machine.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Value

object

Partial PTP Matrox config fields to update.

Return Value

Value

object

The full current PTP Matrox configuration.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "PTPMatroxConfig",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "PTPMatroxConfig"
}
JSON
{
  "Value": {
    "Enabled": false
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "PTPMatroxConfig"
}
JSON
{
  "Value": {
    "Enabled": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "PTPMatroxConfig"
}
JSON
{
  "Value": {
    "Enabled": true
  }
}
PXMatroxState [STATE]

PXMatroxState

Controls and retrieves the PX Matrox hardware state for this machine.

Wire format: [Topic, Message]

Read: GetTopic + {} → Receive: UpdateTopic (targeted) + {Value: ...}

Write: SetTopic + {Value: ...} → Triggers: UpdateTopic (BROADCAST) + {Value: ...}

Get requires no parameters — send {} as the message body. The tables below describe the Set value and the return value for both operations.

Set Value

Value

object

Partial PX Matrox state fields to update.

Return Value

Value

object

The full current PX Matrox state.

Example 1 - Read current value

Request (you send)

JSON
{
  "Type": "Get",
  "Target": "<MachineName>-Daemon",
  "Name": "PXMatroxState",
  "RespondTo": "<Service>"
}
JSON
{}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "<Service>",
  "Source": "<MachineName>-Daemon",
  "Name": "PXMatroxState"
}
JSON
{
  "Value": {
    "Enabled": false
  }
}
Example 2 - Update value

Request (you send)

JSON
{
  "Type": "Set",
  "Target": "<MachineName>-Daemon",
  "Name": "PXMatroxState"
}
JSON
{
  "Value": {
    "Enabled": true
  }
}

Response (you receive)

JSON
{
  "Type": "Update",
  "Target": "BROADCAST",
  "Source": "<MachineName>-Daemon",
  "Name": "PXMatroxState"
}
JSON
{
  "Value": {
    "Enabled": true
  }
}