Summary
Barco Lti Xdc 6500Bi2 projector control spec using Pulse JSON-RPC services over TCP/IP or RS-232 and file transfers over HTTP. It covers generic service operations, projector power, source selection, illumination, image processing, optics, DMX, environment monitoring, firmware management, properties, subscriptions, and notifications.
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_end_user_access: none
request: '{"jsonrpc":"2.0","method":"authenticate","params":{"code":{code}},"id":{id}}'
credentials: null # UNRESOLVED: secret pass code is installation-specific
Traits
- powerable
- routable
- queryable
- levelable
Actions
- id: authenticate
label: Authenticate
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: string_or_number
required: false
- id: invoke_method
label: Invoke 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
required: false
- name: id
type: string_or_number
required: false
- 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
- name: value
type: any
- name: id
type: string_or_number
required: false
- id: property_get
label: Get Property
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":{property}},"id":{id}}'
params:
- name: property
type: string_or_array
- name: id
type: string_or_number
required: false
- 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_or_array
- name: id
type: string_or_number
required: false
- 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_or_array
- name: id
type: string_or_number
required: false
- 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_or_array
- name: id
type: string_or_number
required: false
- 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_or_array
- name: id
type: string_or_number
required: false
- id: introspect
label: Introspect API Object
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"{object}","recursive":{recursive}},"id":{id}}'
params:
- name: object
type: string
required: false
default: ""
- name: recursive
type: boolean
required: false
default: true
- name: id
type: string_or_number
required: false
- id: system_state_get
label: Get Projector State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.state"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- 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: active_source_get
label: Get Active Source
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.source"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: image_source_list
label: List Available Sources
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.list","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_connector_list
label: List Available Connectors
kind: query
command: '{"jsonrpc":"2.0","method":"image.connector.list","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: source_connectors_list
label: List Source Connectors
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: string_or_number
required: false
- id: connector_detected_signal_get
label: Get 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: string_or_number
required: false
- id: connector_detected_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
- name: id
type: string_or_number
required: false
- id: illumination_state_get
label: Get Illumination State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.state"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- 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: string_or_number
required: false
- id: laser_power_get
label: Get Laser Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.power"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: laser_power_set
label: Set Laser Power
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"illumination.sources.laser.power","value":{value}},"id":{id}}'
params:
- name: value
type: float
description: Target power in percent; query dynamic minimum and maximum first
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: laser_minimum_power_get
label: Get Minimum Laser Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.minpower"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: laser_maximum_power_get
label: Get Maximum Laser Power
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.maxpower"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_brightness_get
label: Get Brightness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.brightness"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_brightness_set
label: Set Brightness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.brightness","value":{value}},"id":{id}}'
params:
- name: value
type: float
minimum: -1
maximum: 1
precision: 0.01
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: image_contrast_get
label: Get Contrast
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.contrast"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_contrast_set
label: Set Contrast
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.contrast","value":{value}},"id":{id}}'
params:
- name: value
type: float
minimum: 0
maximum: 2
precision: 0.01
- name: id
type: string_or_number
required: false
- id: image_gamma_get
label: Get Gamma
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.gamma"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_gamma_set
label: Set Gamma
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.gamma","value":{value}},"id":{id}}'
params:
- name: value
type: float
minimum: 1
maximum: 3
precision: 0.1
- name: id
type: string_or_number
required: false
- id: image_saturation_get
label: Get Saturation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.saturation"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_saturation_set
label: Set Saturation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.saturation","value":{value}},"id":{id}}'
params:
- name: value
type: float
minimum: 0
maximum: 2
precision: 0.01
- name: id
type: string_or_number
required: false
- id: image_sharpness_get
label: Get Sharpness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.sharpness"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_sharpness_set
label: Set Sharpness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.sharpness","value":{value}},"id":{id}}'
params:
- name: value
type: integer
minimum: -2
maximum: 8
- name: id
type: string_or_number
required: false
- id: image_orientation_get
label: Get Image Orientation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.orientation"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: image_orientation_set
label: Set Image Orientation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.orientation","value":"{value}"},"id":{id}}'
params:
- name: value
type: enum
values:
- DESKTOP_FRONT
- DESKTOP_REAR
- CEILING_FRONT
- CEILING_REAR
- name: id
type: string_or_number
required: false
- id: window_position_get
label: Get Window Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.position"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: window_size_get
label: Get Window Size
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.size"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: window_scaling_mode_get
label: Get Window Scaling Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.scalingmode"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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":"{value}"},"id":{id}}'
params:
- name: value
type: enum
values:
- Fill
- OneToOne
- FillScreen
- Stretch
- name: id
type: string_or_number
required: false
- id: warp_enable_get
label: Get Warp Enabled
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.processing.warp.enable"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: warp_enable_set
label: Set Warp Enabled
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: string_or_number
required: false
- 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: file
- name: projector-address
type: string
- 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: string_or_number
required: false
- id: warp_file_enable_get
label: Get Warp File Enabled
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.processing.warp.file.enable"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: warp_file_enable_set
label: Set Warp File Enabled
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: string_or_number
required: false
- 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: file
- name: projector-address
type: string
- id: blend_file_select
label: Select Blend Mask
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: string_or_number
required: false
- id: blend_file_enable_get
label: Get Blend Mask Enabled
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.processing.blend.file.enable"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: blend_file_enable_set
label: Set Blend Mask Enabled
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: string_or_number
required: false
- 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: file
- name: projector-address
type: string
- id: blacklevel_file_select
label: Select Black-Level Mask
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: string_or_number
required: false
- id: blacklevel_file_enable_get
label: Get Black-Level Correction Enabled
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.processing.blacklevel.file.enable"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: blacklevel_file_enable_set
label: Set Black-Level Correction Enabled
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: string_or_number
required: false
- id: dmx_mode_get
label: Get DMX Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.mode"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: dmx_start_channel_get
label: Get DMX Start Channel
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.startchannel"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: dmx_shutdown_get
label: Get DMX Shutdown
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.shutdown"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: dmx_list_channels
label: List DMX Channels
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listchannels","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: dmx_list_modes
label: List DMX Modes
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listmodes","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: network_ipv4_config_get
label: Get IPv4 Configuration
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.ip4config"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: network_lan_state_get
label: Get LAN State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.state"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: shutter_position_get
label: Get Shutter Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.position"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: shutter_target_get
label: Get Shutter Target
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.target"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: zoom_position_get
label: Get Zoom Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.zoom.position"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: focus_position_get
label: Get Focus Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.focus.position"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: lens_shift_horizontal_get
label: Get Horizontal Lens Shift
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.horizontal.position"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: lens_shift_vertical_get
label: Get Vertical Lens Shift
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.vertical.position"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- id: standby_enable_get
label: Get Standby Enabled
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.standby.enable"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: standby_enable_set
label: Set Standby Enabled
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: string_or_number
required: false
- id: eco_enable_get
label: Get ECO Enabled
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.eco.enable"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: eco_enable_set
label: Set ECO Enabled
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: string_or_number
required: false
- id: environment_alarm_state_get
label: Get Environment Alarm State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"environment.alarmstate"},"id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: environment_get_control_blocks
label: Get Environment Control Blocks
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getcontrolblocks","params":{"type":"{type}","valuetype":"{valuetype}"},"id":{id}}'
params:
- name: type
type: enum
values:
- Sensor
- Filter
- Controller
- Actuator
- Alarm
- GenericBlock
- name: valuetype
type: string
description: Supported environment value type from source catalogue
- name: id
type: string_or_number
required: false
- id: environment_get_alarm_info
label: Get Environment Alarm Information
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getalarminfo","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: firmware_list_components
label: List Firmware Components
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponents","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: firmware_list_component_version_status
label: List Firmware Component Version Status
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponentversionstatus","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: firmware_schedule_component_upgrade
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: string_or_number
required: false
- id: illumination_clo_engage
label: Engage Constant Light Output
kind: action
command: '{"jsonrpc":"2.0","method":"illumination.clo.engage","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- id: illumination_laser_get_serial_number
label: Get Laser Serial Number
kind: query
command: '{"jsonrpc":"2.0","method":"illumination.laser.getserialnumber","id":{id}}'
params:
- name: id
type: string_or_number
required: false
- 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":"{presetname}"},"id":{id}}'
params:
- name: presetname
type: string
- name: id
type: string_or_number
required: false
- id: p7_reset_preset
label: Reset P7 Preset
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resetpreset","params":{"presetname":"{presetname}"},"id":{id}}'
params:
- name: presetname
type: string
- name: id
type: string_or_number
required: false
- 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: string_or_number
required: false
- 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: string_or_number
required: false
Feedbacks
- id: authentication_result
type: boolean
source: authenticate
- id: method_result
type: any
source: JSON-RPC result
- id: method_error
type: object
source: JSON-RPC error
- id: property_set_confirmation
type: boolean
source: property.set
- id: property_value
type: any
source: property.get
- id: subscription_confirmation
type: boolean
source:
- property.subscribe
- property.unsubscribe
- signal.subscribe
- signal.unsubscribe
- id: system_state
type: enum
property: system.state
values:
- boot
- eco
- standby
- ready
- conditioning
- on
- service
- deconditioning
- error
- id: active_source
type: string
property: image.window.main.source
- id: available_sources
type: array
method: image.source.list
- id: available_connectors
type: array
method: image.connector.list
- id: connector_detected_signal
type: object
property: "image.connector.{connector_object}.detectedsignal"
- id: illumination_state
type: enum
property: illumination.state
values:
- On
- Off
- id: laser_power
type: float
property: illumination.sources.laser.power
- id: laser_minimum_power
type: float
property: illumination.sources.laser.minpower
- id: laser_maximum_power
type: float
property: illumination.sources.laser.maxpower
- id: image_brightness
type: float
property: image.brightness
minimum: -1
maximum: 1
- id: image_contrast
type: float
property: image.contrast
minimum: 0
maximum: 2
- id: image_gamma
type: float
property: image.gamma
minimum: 1
maximum: 3
- id: image_saturation
type: float
property: image.saturation
minimum: 0
maximum: 2
- id: image_sharpness
type: integer
property: image.sharpness
minimum: -2
maximum: 8
- id: image_orientation
type: enum
property: image.orientation
values:
- DESKTOP_FRONT
- DESKTOP_REAR
- CEILING_FRONT
- CEILING_REAR
- id: window_scaling_mode
type: enum
property: image.window.main.scalingmode
values:
- Fill
- OneToOne
- FillScreen
- Stretch
- id: network_lan_state
type: enum
property: network.device.lan.state
values:
- CONNECTED
- DISCONNECTED
- id: shutter_position
type: enum
property: optics.shutter.position
values:
- Open
- Closed
- id: environment_alarm_state
type: enum
property: environment.alarmstate
values:
- Fatal
- Error
- Alert
- Warning
- Ok
- id: firmware_component_version_status
type: array
method: firmware.listcomponentversionstatus
status_values:
- Unknown
- OK
- Upgradable
Variables
- id: active_source
property: image.window.main.source
type: string
- id: laser_power
property: illumination.sources.laser.power
type: float
access: read_write
constraints: dynamic
- id: image_brightness
property: image.brightness
type: float
minimum: -1
maximum: 1
default: 0
precision: 0.01
- id: image_contrast
property: image.contrast
type: float
minimum: 0
maximum: 2
default: 1
precision: 0.01
- id: image_gamma
property: image.gamma
type: float
minimum: 1
maximum: 3
default: 2.2
precision: 0.1
- id: image_saturation
property: image.saturation
type: float
minimum: 0
maximum: 2
default: 1
precision: 0.01
- id: image_sharpness
property: image.sharpness
type: integer
minimum: -2
maximum: 8
precision: 1
- id: image_orientation
property: image.orientation
type: enum
values:
- DESKTOP_FRONT
- DESKTOP_REAR
- CEILING_FRONT
- CEILING_REAR
- id: window_position
property: image.window.main.position
type: object
fields:
x: integer
y: integer
- id: window_size
property: image.window.main.size
type: object
fields:
width: integer
height: integer
- id: window_scaling_mode
property: image.window.main.scalingmode
type: enum
values:
- Fill
- OneToOne
- FillScreen
- Stretch
- id: warp_enabled
property: image.processing.warp.enable
type: boolean
- id: warp_file_enabled
property: image.processing.warp.file.enable
type: boolean
- id: warp_file_selected
property: image.processing.warp.file.selected
type: string
- id: blend_file_enabled
property: image.processing.blend.file.enable
type: boolean
- id: blend_file_selected
property: image.processing.blend.file.selected
type: array
items: string
- id: blacklevel_file_enabled
property: image.processing.blacklevel.file.enable
type: boolean
- id: blacklevel_file_selected
property: image.processing.blacklevel.file.selected
type: string
- id: dmx_mode
property: dmx.mode
type: string
- id: dmx_start_channel
property: dmx.startchannel
type: integer
minimum: 1
maximum: 512
- id: dmx_shutdown
property: dmx.shutdown
type: boolean
- id: shutter_target
property: optics.shutter.target
type: enum
values:
- Open
- Closed
- id: zoom_position
property: optics.zoom.position
type: integer
- id: focus_position
property: optics.focus.position
type: integer
- id: horizontal_lens_shift
property: optics.lensshift.horizontal.position
type: integer
- id: vertical_lens_shift
property: optics.lensshift.vertical.position
type: integer
- id: standby_enabled
property: system.standby.enable
type: boolean
- id: eco_enabled
property: system.eco.enable
type: boolean
Events
- id: property_changed
method: property.changed
command: '{"jsonrpc":"2.0","method":"property.changed","params":{"property":[{property_value_pairs}]}}'
description: Unsolicited array of property/value pairs; message 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: Unsolicited array of signal/argument-list pairs; message has no id and requires no response
- id: model_updated
signal: modelupdated
description: Triggered when API object structure changes
- id: introspect_object_changed
signal: introspect.objectchanged
payload:
object: string
newobject: boolean
Macros
- id: select_active_source
label: Select Active Source Safely
steps:
- command: '{"jsonrpc":"2.0","method":"image.source.list","id":{id}}'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.source","value":"{source}"},"id":{id}}'
- id: activate_warp_file
label: Upload and Activate Warp File
steps:
- command: 'curl -X POST -F file=@{file} http://{projector-address}/api/image/processing/warp/file/transfer'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.file.selected","value":"{filename}"},"id":{id}}'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.file.enable","value":true},"id":{id}}'
- id: activate_blend_mask
label: Upload and Activate Blend Mask
steps:
- command: 'curl -X POST -F file=@{file} http://{projector-address}/api/image/processing/blend/file/transfer'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.selected","value":"{filename}"},"id":{id}}'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.enable","value":true},"id":{id}}'
- id: activate_blacklevel_mask
label: Upload and Activate Black-Level Mask
steps:
- command: 'curl -X POST -F file=@{file} http://{projector-address}/api/image/processing/blacklevel/file/transfer'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blacklevel.file.selected","value":"{filename}"},"id":{id}}'
- command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blacklevel.file.enable","value":true},"id":{id}}'
Safety
confirmation_required_for:
- firmware_schedule_component_upgrade
interlocks:
- action: system_power_on
condition: system.state in ["standby", "ready"]
description: Verify projector is in standby or ready before power-on
- action: system_power_off
condition: system.state == "on"
description: Verify projector is on before power-off
- action: laser_power_set
condition: value >= illumination.sources.laser.minpower and value <= illumination.sources.laser.maxpower
description: Query dynamic minimum and maximum power values before changing laser power
- action: property_set
condition: previous write to same property confirmed
description: Wait for property.set confirmation before setting same property again
Notes
TCP/IP Pulse service uses port 9090. RS-232 uses 19200 baud, 8 data bits, no parity, one stop bit, and no flow control. Same JSON-RPC commands work through network and serial connections.
Normal end-user access may skip authentication; higher access requires a secret pass code. JSON-RPC parameters are passed by name and parameter order does not matter.
Subscriptions do not return current values. Use property.get after subscribing when initial state is required. Notifications have no request ID and must not receive responses.
API availability is dynamic and may depend on projector model, configuration, lens, illumination source, and peripherals. Use introspect to discover exact methods, properties, objects, signals, ranges, and access permissions available on connected projector.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-08-18T18:19:12.239Z
last_checked_at: 2026-08-19T08:56:37.533Z
Verification Summary
verdict: verified
checked_at: 2026-08-19T08:56:37.533Z
matched_actions: 99
action_count: 99
confidence: medium
summary: "All 99 spec action units map to literal JSON-RPC methods/properties/file endpoints/serial commands documented in the source. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "exact model-specific API availability depends on projector configuration and installed peripherals."
- "firmware version compatibility and HTTP port are not stated in source."
- "secret pass code is installation-specific"
- "method parameter schema not stated in source\""
- "source identifies generic Pulse projector API, not explicit model-specific availability for every documented member."
- "HTTP port, firmware compatibility, computed authentication code source, and undocumented method parameter schemas are not stated."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0