Summary
Barco Pulse projector control spec covering JSON-RPC over TCP/IP and RS-232, plus HTTP file endpoints. API supports power, source routing, illumination, image processing, optics, DMX, environment monitoring, firmware management, properties, subscriptions, and introspection.
Transport
protocols:
- tcp
- serial
- http
addressing:
port: 9090
base_url: "http://{projector-address}/api"
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: passcode
required_for: elevated_access
normal_user_auth_required: false
credential:
name: code
type: integer
value: null # UNRESOLVED: secret pass code is installation-specific
Traits
- powerable
- routable
- queryable
- levelable
Actions
- id: authenticate
label: Authenticate Session
kind: action
command: '{"jsonrpc":"2.0","method":"authenticate","params":{"code":{code}},"id":{id}}'
params:
- name: code
type: integer
description: Secret pass code
- name: id
type: integer
description: Request identifier
- id: invoke_method
label: Invoke Named Method
kind: action
command: '{"jsonrpc":"2.0","method":"{method}","params":{params},"id":{id}}'
params:
- name: method
type: string
description: Dot-notation method name
- name: params
type: object
description: Named method parameters
- name: id
type: integer
description: Request identifier
- id: property_set
label: Set Property
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"{property}","value":{value}},"id":{id}}'
params:
- name: property
type: string
description: Dot-notation property name
- name: value
type: any
description: Property value
- name: id
type: integer
description: Request identifier
- id: property_get
label: Read Property
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"{property}"},"id":{id}}'
params:
- name: property
type: string
description: Dot-notation property name
- name: id
type: integer
description: Request identifier
- id: properties_get
label: Read Multiple Properties
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":{properties}},"id":{id}}'
params:
- name: properties
type: array
items: string
description: Dot-notation property names
- name: id
type: integer
description: Request identifier
- id: property_subscribe
label: Subscribe to Property
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"{property}"},"id":{id}}'
params:
- name: property
type: string
description: Dot-notation property name
- name: id
type: integer
description: Request identifier
- id: properties_subscribe
label: Subscribe to Multiple Properties
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":{properties}},"id":{id}}'
params:
- name: properties
type: array
items: string
description: Dot-notation property names
- name: id
type: integer
description: Request identifier
- id: property_unsubscribe
label: Unsubscribe from Property
kind: action
command: '{"jsonrpc":"2.0","method":"property.unsubscribe","params":{"property":"{property}"},"id":{id}}'
params:
- name: property
type: string
description: Dot-notation property name
- name: id
type: integer
description: Request identifier
- id: properties_unsubscribe
label: Unsubscribe from Multiple Properties
kind: action
command: '{"jsonrpc":"2.0","method":"property.unsubscribe","params":{"property":{properties}},"id":{id}}'
params:
- name: properties
type: array
items: string
description: Dot-notation property names
- name: id
type: integer
description: Request identifier
- id: signal_subscribe
label: Subscribe to Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.subscribe","params":{"signal":"{signal}"},"id":{id}}'
params:
- name: signal
type: string
description: Dot-notation signal name
- name: id
type: integer
description: Request identifier
- id: signals_subscribe
label: Subscribe to Multiple Signals
kind: action
command: '{"jsonrpc":"2.0","method":"signal.subscribe","params":{"signal":{signals}},"id":{id}}'
params:
- name: signals
type: array
items: string
description: Dot-notation signal names
- name: id
type: integer
description: Request identifier
- id: signal_unsubscribe
label: Unsubscribe from Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.unsubscribe","params":{"signal":"{signal}"},"id":{id}}'
params:
- name: signal
type: string
description: Dot-notation signal name
- name: id
type: integer
description: Request identifier
- id: signals_unsubscribe
label: Unsubscribe from Multiple Signals
kind: action
command: '{"jsonrpc":"2.0","method":"signal.unsubscribe","params":{"signal":{signals}},"id":{id}}'
params:
- name: signals
type: array
items: string
description: Dot-notation signal names
- name: id
type: integer
description: Request identifier
- id: introspect_recursive
label: Introspect Object Recursively
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"{object}","recursive":true},"id":{id}}'
params:
- name: object
type: string
description: Object name; empty value introspects everything
- name: id
type: integer
description: Request identifier
- id: introspect_non_recursive
label: Introspect Object Non-Recursively
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"{object}","recursive":false},"id":{id}}'
params:
- name: object
type: string
description: Object name
- name: id
type: integer
description: Request identifier
- id: system_power_on
label: Power On
kind: action
command: '{"jsonrpc":"2.0","method":"system.poweron"}'
params: []
- id: system_power_off
label: Power Off
kind: action
command: '{"jsonrpc":"2.0","method":"system.poweroff"}'
params: []
- id: serial_eco_wake
label: Wake from ECO over RS-232
kind: action
command: ":POWR1\r"
params: []
- id: system_state_get
label: Read Projector State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.state"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: system_state_subscribe
label: Subscribe to Projector State
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"system.state"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: active_source_get
label: Read Active Source
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.source"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: active_source_set
label: Set Active Source
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.source","value":"{source}"},"id":{id}}'
params:
- name: source
type: string
description: Name returned by image.source.list
- name: id
type: integer
description: Request identifier
- id: active_source_subscribe
label: Subscribe to Active Source
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"image.window.main.source"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_source_list
label: List Available Sources
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.list","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_connector_list
label: List Available Connectors
kind: query
command: '{"jsonrpc":"2.0","method":"image.connector.list","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: source_connectors_list
label: List Connectors for Source
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.{source_object}.listconnectors","id":{id}}'
params:
- name: source_object
type: string
description: Lowercase source name with non-word characters removed
- name: id
type: integer
description: Request identifier
- id: connector_signal_get
label: Read Connector Signal
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.connector.{connector_object}.detectedsignal"},"id":{id}}'
params:
- name: connector_object
type: string
description: Lowercase connector name with non-word characters removed
- name: id
type: integer
description: Request identifier
- id: connector_signal_subscribe
label: Subscribe to Connector Signal
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"image.connector.{connector_object}.detectedsignal"},"id":{id}}'
params:
- name: connector_object
type: string
description: Lowercase connector name with non-word characters removed
- name: id
type: integer
description: Request identifier
- id: illumination_state_get
label: Read Illumination State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.state"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: illumination_state_subscribe
label: Subscribe to Illumination State
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"illumination.state"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: illumination_sources_introspect
label: List Illumination Sources
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"illumination.sources","recursive":false},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: laser_power_get
label: Read Laser Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.power"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: laser_power_set
label: Set Laser Power
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"illumination.sources.laser.power","value":{power}},"id":{id}}'
params:
- name: power
type: float
description: Target illumination power percentage
- name: id
type: integer
description: Request identifier
- id: laser_power_subscribe
label: Subscribe to Laser Power
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"illumination.sources.laser.power"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: laser_min_power_get
label: Read Minimum Laser Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.minpower"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: laser_max_power_get
label: Read Maximum Laser Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.maxpower"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_brightness_get
label: Read Brightness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.brightness"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_brightness_set
label: Set Brightness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.brightness","value":{brightness}},"id":{id}}'
params:
- name: brightness
type: float
minimum: -1
maximum: 1
precision: 0.01
- name: id
type: integer
description: Request identifier
- id: image_brightness_subscribe
label: Subscribe to Brightness
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"image.brightness"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_contrast_get
label: Read Contrast
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.contrast"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_contrast_set
label: Set Contrast
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.contrast","value":{contrast}},"id":{id}}'
params:
- name: contrast
type: float
minimum: 0
maximum: 2
precision: 0.01
- name: id
type: integer
description: Request identifier
- id: image_gamma_get
label: Read Gamma
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.gamma"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_gamma_set
label: Set Gamma
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.gamma","value":{gamma}},"id":{id}}'
params:
- name: gamma
type: float
minimum: 1
maximum: 3
precision: 0.1
- name: id
type: integer
description: Request identifier
- id: image_saturation_get
label: Read Saturation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.saturation"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_saturation_set
label: Set Saturation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.saturation","value":{saturation}},"id":{id}}'
params:
- name: saturation
type: float
minimum: 0
maximum: 2
precision: 0.01
- name: id
type: integer
description: Request identifier
- id: image_sharpness_get
label: Read Sharpness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.sharpness"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_sharpness_set
label: Set Sharpness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.sharpness","value":{sharpness}},"id":{id}}'
params:
- name: sharpness
type: integer
minimum: -2
maximum: 8
- name: id
type: integer
description: Request identifier
- id: image_orientation_get
label: Read Orientation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.orientation"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: image_orientation_set
label: Set Orientation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.orientation","value":"{orientation}"},"id":{id}}'
params:
- name: orientation
type: enum
values:
- DESKTOP_FRONT
- DESKTOP_REAR
- CEILING_FRONT
- CEILING_REAR
- name: id
type: integer
description: Request identifier
- id: window_position_get
label: Read Window Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.position"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: window_position_set
label: Set Window Position
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.position","value":{"x":{x},"y":{y}}},"id":{id}}'
params:
- name: x
type: integer
- name: y
type: integer
- name: id
type: integer
description: Request identifier
- id: window_size_get
label: Read Window Size
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.size"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: window_size_set
label: Set Window Size
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.size","value":{"width":{width},"height":{height}}},"id":{id}}'
params:
- name: width
type: integer
- name: height
type: integer
- name: id
type: integer
description: Request identifier
- id: window_scaling_mode_get
label: Read Window Scaling Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.scalingmode"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: window_scaling_mode_set
label: Set Window Scaling Mode
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.scalingmode","value":"{mode}"},"id":{id}}'
params:
- name: mode
type: enum
values:
- Fill
- OneToOne
- FillScreen
- Stretch
- name: id
type: integer
description: Request identifier
- id: warp_enable_set
label: Enable or Disable Warp
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.enable","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: warp_file_upload
label: Upload Warp File
kind: action
command: 'curl -X POST -F file=@{file} http://{projector-address}/api/image/processing/warp/file/transfer'
params:
- name: file
type: string
description: Local warp XML file
- name: projector-address
type: string
description: Projector network address
- id: warp_file_select
label: Select Warp File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.file.selected","value":"{filename}"},"id":{id}}'
params:
- name: filename
type: string
- name: id
type: integer
description: Request identifier
- id: warp_file_enable
label: Enable or Disable Warp File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.file.enable","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: blend_file_upload
label: Upload Blend Mask
kind: action
command: 'curl -X POST -F file=@{file} http://{projector-address}/api/image/processing/blend/file/transfer'
params:
- name: file
type: string
description: Local PNG, JPEG, or TIFF image
- name: projector-address
type: string
description: Projector network address
- id: blend_file_select
label: Select Blend File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.selected","value":"{filename}"},"id":{id}}'
params:
- name: filename
type: string
- name: id
type: integer
description: Request identifier
- id: blend_file_enable
label: Enable or Disable Blend File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.enable","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: blacklevel_file_upload
label: Upload Black-Level Mask
kind: action
command: 'curl -X POST -F file=@{file} http://{projector-address}/api/image/processing/blacklevel/file/transfer'
params:
- name: file
type: string
description: Local PNG, JPEG, or TIFF image
- name: projector-address
type: string
description: Projector network address
- id: blacklevel_file_select
label: Select Black-Level File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blacklevel.file.selected","value":"{filename}"},"id":{id}}'
params:
- name: filename
type: string
- name: id
type: integer
description: Request identifier
- id: blacklevel_file_enable
label: Enable or Disable Black-Level File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blacklevel.file.enable","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: dmx_mode_get
label: Read DMX Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.mode"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: dmx_mode_set
label: Set DMX Mode
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"dmx.mode","value":"{mode}"},"id":{id}}'
params:
- name: mode
type: string
- name: id
type: integer
description: Request identifier
- id: dmx_start_channel_get
label: Read DMX Start Channel
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.startchannel"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: dmx_start_channel_set
label: Set DMX Start Channel
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"dmx.startchannel","value":{channel}},"id":{id}}'
params:
- name: channel
type: integer
minimum: 1
maximum: 512
- name: id
type: integer
description: Request identifier
- id: dmx_shutdown_get
label: Read DMX Shutdown Setting
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.shutdown"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: dmx_shutdown_set
label: Set DMX Shutdown
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"dmx.shutdown","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: dmx_list_channels
label: List DMX Channels
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listchannels","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: dmx_list_modes
label: List DMX Modes
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listmodes","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: network_ipv4_config_get
label: Read LAN IPv4 Configuration
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.ip4config"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: network_lan_state_get
label: Read LAN State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.state"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: shutter_position_get
label: Read Shutter Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.position"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: shutter_target_get
label: Read Shutter Target
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.target"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: shutter_target_set
label: Set Shutter Target
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.shutter.target","value":"{target}"},"id":{id}}'
params:
- name: target
type: enum
values:
- Open
- Closed
- name: id
type: integer
description: Request identifier
- id: zoom_position_get
label: Read Zoom Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.zoom.position"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: zoom_position_set
label: Set Zoom Position
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.zoom.position","value":{position}},"id":{id}}'
params:
- name: position
type: integer
- name: id
type: integer
description: Request identifier
- id: focus_position_get
label: Read Focus Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.focus.position"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: focus_position_set
label: Set Focus Position
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.focus.position","value":{position}},"id":{id}}'
params:
- name: position
type: integer
- name: id
type: integer
description: Request identifier
- id: lens_shift_horizontal_get
label: Read Horizontal Lens Shift
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.horizontal.position"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: lens_shift_horizontal_set
label: Set Horizontal Lens Shift
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.lensshift.horizontal.position","value":{position}},"id":{id}}'
params:
- name: position
type: integer
- name: id
type: integer
description: Request identifier
- id: lens_shift_vertical_get
label: Read Vertical Lens Shift
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.vertical.position"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: lens_shift_vertical_set
label: Set Vertical Lens Shift
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.lensshift.vertical.position","value":{position}},"id":{id}}'
params:
- name: position
type: integer
- name: id
type: integer
description: Request identifier
- id: standby_enable_get
label: Read Standby Enable
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.standby.enable"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: standby_enable_set
label: Set Standby Enable
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"system.standby.enable","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: eco_enable_get
label: Read ECO Enable
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.eco.enable"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: eco_enable_set
label: Set ECO Enable
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"system.eco.enable","value":{enabled}},"id":{id}}'
params:
- name: enabled
type: boolean
- name: id
type: integer
description: Request identifier
- id: environment_alarm_state_get
label: Read Environment Alarm State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"environment.alarmstate"},"id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: environment_control_blocks_get
label: Read Environment Control Blocks
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getcontrolblocks","params":{"type":"{type}","valuetype":"{value_type}"},"id":{id}}'
params:
- name: type
type: enum
values:
- Sensor
- Filter
- Controller
- Actuator
- Alarm
- GenericBlock
- name: value_type
type: string
description: Documented sensor value type
- name: id
type: integer
description: Request identifier
- id: environment_alarm_info_get
label: Read Environment Alarm Information
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getalarminfo","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: firmware_components_list
label: List Firmware Components
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponents","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: firmware_component_version_status_list
label: List Firmware Component Version Status
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponentversionstatus","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: firmware_component_upgrade_schedule
label: Schedule Firmware Component Upgrade
kind: action
command: '{"jsonrpc":"2.0","method":"firmware.schedulecomponentupgrade","params":{params},"id":{id}}'
params:
- name: params
type: object
description: "UNRESOLVED: method parameter schema not stated in source"
- name: id
type: integer
description: Request identifier
- id: clo_engage
label: Engage Constant Light Output
kind: action
command: '{"jsonrpc":"2.0","method":"illumination.clo.engage","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: laser_serial_number_get
label: Read Laser Serial Number
kind: query
command: '{"jsonrpc":"2.0","method":"illumination.laser.getserialnumber","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: p7_copy_preset_to_custom
label: Copy P7 Preset to Custom
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.copypresettocustom","params":{"presetname":"{preset_name}"},"id":{id}}'
params:
- name: preset_name
type: string
- name: id
type: integer
description: Request identifier
- id: p7_reset_preset
label: Reset P7 Preset
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resetpreset","params":{"presetname":"{preset_name}"},"id":{id}}'
params:
- name: preset_name
type: string
- name: id
type: integer
description: Request identifier
- id: p7_reset_to_native
label: Reset P7 to Native
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resettonative","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
- id: next_rgb_mode
label: Select Next RGB Mode
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.rgbmode.nextrgbmode","id":{id}}'
params:
- name: id
type: integer
description: Request identifier
Feedbacks
- id: authentication_result
source: authenticate
type: boolean
- id: property_set_result
source: property.set
type: boolean
- id: property_value
source: property.get
type: any
- id: property_subscription_result
source: property.subscribe
type: boolean
- id: property_unsubscription_result
source: property.unsubscribe
type: boolean
- id: signal_subscription_result
source: signal.subscribe
type: boolean
- id: signal_unsubscription_result
source: signal.unsubscribe
type: boolean
- id: projector_state
source: system.state
type: enum
values:
- boot
- eco
- standby
- ready
- conditioning
- "on"
- service
- deconditioning
- error
- id: illumination_state
source: illumination.state
type: enum
values:
- "On"
- "Off"
- id: active_source
source: image.window.main.source
type: string
- id: available_sources
source: image.source.list
type: array
items: string
- id: available_connectors
source: image.connector.list
type: array
items: string
- id: detected_signal
source: image.connector.{connector_object}.detectedsignal
type: object
- id: network_lan_state
source: network.device.lan.state
type: enum
values:
- CONNECTED
- DISCONNECTED
- id: shutter_position
source: optics.shutter.position
type: enum
values:
- Open
- Closed
- id: environment_alarm_state
source: environment.alarmstate
type: enum
values:
- Fatal
- Error
- Alert
- Warning
- Ok
- id: firmware_component_status
source: firmware.listcomponentversionstatus
type: enum
values:
- Unknown
- OK
- Upgradable
Variables
- id: active_source
property: image.window.main.source
type: string
access: read_write
- id: illumination_state
property: illumination.state
type: enum
values:
- "On"
- "Off"
access: read
- id: laser_power
property: illumination.sources.laser.power
type: float
unit: percent
access: read_write
- id: laser_min_power
property: illumination.sources.laser.minpower
type: float
unit: percent
access: read
- id: laser_max_power
property: illumination.sources.laser.maxpower
type: float
unit: percent
access: read
- id: brightness
property: image.brightness
type: float
minimum: -1
maximum: 1
precision: 0.01
access: read_write
- id: contrast
property: image.contrast
type: float
minimum: 0
maximum: 2
precision: 0.01
access: read_write
- id: gamma
property: image.gamma
type: float
minimum: 1
maximum: 3
precision: 0.1
access: read_write
- id: saturation
property: image.saturation
type: float
minimum: 0
maximum: 2
precision: 0.01
access: read_write
- id: sharpness
property: image.sharpness
type: integer
minimum: -2
maximum: 8
access: read_write
- id: orientation
property: image.orientation
type: enum
values:
- DESKTOP_FRONT
- DESKTOP_REAR
- CEILING_FRONT
- CEILING_REAR
access: read_write
- id: window_position
property: image.window.main.position
type: object
access: read_write
- id: window_size
property: image.window.main.size
type: object
access: read_write
- id: window_scaling_mode
property: image.window.main.scalingmode
type: enum
values:
- Fill
- OneToOne
- FillScreen
- Stretch
access: read_write
- id: warp_enabled
property: image.processing.warp.enable
type: boolean
access: read_write
- id: warp_file_enabled
property: image.processing.warp.file.enable
type: boolean
access: read_write
- id: warp_file_selected
property: image.processing.warp.file.selected
type: string
access: read_write
- id: blend_file_enabled
property: image.processing.blend.file.enable
type: boolean
access: read_write
- id: blend_files_selected
property: image.processing.blend.file.selected
type: array
items: string
access: read_write
- id: blacklevel_file_enabled
property: image.processing.blacklevel.file.enable
type: boolean
access: read_write
- id: blacklevel_file_selected
property: image.processing.blacklevel.file.selected
type: string
access: read_write
- id: dmx_mode
property: dmx.mode
type: string
access: read_write
- id: dmx_start_channel
property: dmx.startchannel
type: integer
minimum: 1
maximum: 512
access: read_write
- id: dmx_shutdown
property: dmx.shutdown
type: boolean
access: read_write
- id: network_ipv4_configuration
property: network.device.lan.ip4config
type: object
access: read
- id: network_lan_state
property: network.device.lan.state
type: enum
values:
- CONNECTED
- DISCONNECTED
access: read
- id: shutter_position
property: optics.shutter.position
type: enum
values:
- Open
- Closed
access: read
- id: shutter_target
property: optics.shutter.target
type: enum
values:
- Open
- Closed
access: read_write
- id: zoom_position
property: optics.zoom.position
type: integer
access: read_write
- id: focus_position
property: optics.focus.position
type: integer
access: read_write
- id: lens_shift_horizontal_position
property: optics.lensshift.horizontal.position
type: integer
access: read_write
- id: lens_shift_vertical_position
property: optics.lensshift.vertical.position
type: integer
access: read_write
- id: standby_enabled
property: system.standby.enable
type: boolean
access: read_write
- id: eco_enabled
property: system.eco.enable
type: boolean
access: read_write
- id: environment_alarm_state
property: environment.alarmstate
type: enum
values:
- Fatal
- Error
- Alert
- Warning
- Ok
access: read
Events
- id: property_changed
method: property.changed
command: '{"jsonrpc":"2.0","method":"property.changed","params":{"property":{property_value_pairs}}}'
description: Reports subscribed property changes; notification has no id and requires no response.
- id: signal_callback
method: signal.callback
command: '{"jsonrpc":"2.0","method":"signal.callback","params":{"signal":{signal_argument_pairs}}}'
description: Reports subscribed signals; notification has no id and requires no response.
- id: model_updated
signal: modelupdated
description: Triggered when objects are added or removed.
- id: introspect_object_changed
signal: introspect.objectchanged
description: Reports object name and whether object is new or lost.
Macros
- id: activate_warp_file
label: Upload and Activate Warp File
steps:
- action: warp_file_upload
- action: warp_file_select
- action: warp_file_enable
- id: activate_blend_mask
label: Upload and Activate Blend Mask
steps:
- action: blend_file_upload
- action: blend_file_select
- action: blend_file_enable
- id: activate_blacklevel_mask
label: Upload and Activate Black-Level Mask
steps:
- action: blacklevel_file_upload
- action: blacklevel_file_select
- action: blacklevel_file_enable
- id: wake_from_eco
label: Wake Projector from ECO
alternatives:
- method: wake_on_lan
requirement: Projector MAC address
- action: serial_eco_wake
Safety
confirmation_required_for:
- system_power_off
- firmware_component_upgrade_schedule
interlocks:
- action: system_power_on
requirement: Verify system.state is standby or ready.
- action: system_power_off
requirement: Verify system.state is on.
- action: property_set
requirement: Wait for confirmation before setting same property again.
- action: firmware_component_upgrade_schedule
requirement: Upgrade occurs at following reboot.
- action: wake_from_eco
requirement: Use Wake-on-LAN, remote/keypad power, or RS-232 wake command while projector is in ECO mode.
Notes
Normal end-user access may skip authentication. Elevated access requires an authentication request containing secret pass code. JSON-RPC parameters are named and order-independent. Notifications contain no request ID and require no response.
API availability is dynamic and can depend on projector configuration and attached peripherals. Use recursive or non-recursive introspection to discover exact model API. Property subscription does not return current value; call property.get separately. Source changes may emit empty-source notification before newly selected source notification.
HTTP file endpoints support upload and, where available, download. Warp grid format matches MCM500/400. Blend and black-level masks accept PNG, JPEG, or TIFF; grayscale data is used, and blue channel is used for accepted color images.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-07-14T18:18:40.311Z
last_checked_at: 2026-07-21T20:30:40.009Z
Verification Summary
verdict: verified
checked_at: 2026-07-21T20:30:40.009Z
matched_actions: 102
action_count: 102
confidence: medium
summary: "All 102 spec actions matched to wire-level tokens documented in source; all transport params verified (port 9090, 19200 baud, /api base path, authenticate method); spec comprehensively represents source capabilities. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "protocol revision and model-specific API availability not stated in source."
- "secret pass code is installation-specific"
- "method parameter schema not stated in source\""
- "firmware compatibility range, protocol revision, authentication pass code, several method parameter schemas, property access modes not explicitly marked RW, and model-specific dynamic API surface are not fully stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0