Summary
JSON-RPC 2.0 control API for Barco Pulse projector family. Devices expose properties, methods and signals over TCP/IP (port 9090) or RS-232 (19200 baud). Covers power, sources, illumination, image processing, optics, DMX, environment sensors, firmware and notifications.
Transport
protocols:
- tcp
- serial
addressing:
port: 9090
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: passcode # UNRESOLVED: source describes optional passcode authentication (method "authenticate" with "code" param) for elevated access; normal end-user access skips it
Traits
- powerable # inferred from system.poweron / system.poweroff method examples
- routable # inferred from image.window.main.source input select examples
- queryable # inferred from property.get / environment.getcontrolblocks examples
- levelable # inferred from image.brightness / image.contrast / illumination.sources.laser.power settable examples
- subscribable # inferred from property.subscribe / signal.subscribe examples
Actions
- id: authenticate
label: Authenticate (elevated access)
kind: action
command: '{"jsonrpc":"2.0","method":"authenticate","params":{"id":1,"code":98765}}'
params:
- name: code
type: integer
description: Secret pass code for elevated user access level
- id: power_on
label: Power On
kind: action
command: '{"jsonrpc":"2.0","method":"system.poweron"}'
params: []
- id: power_off
label: Power Off
kind: action
command: '{"jsonrpc":"2.0","method":"system.poweroff"}'
params: []
- id: get_property
label: Get Property Value
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"{property}"}}'
params:
- name: property
type: string
description: Object name and property name in dot notation (e.g. image.brightness)
- id: set_property
label: Set Property Value
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"{property}","value":{value}}}'
params:
- name: property
type: string
description: Object name and property name in dot notation
- name: value
type: string
description: New property value (string, int, float, bool, array, object, or dictionary)
- id: get_multiple_properties
label: Get Multiple Property Values
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":["{prop1}","{prop2}"]}}'
params:
- name: property
type: array
description: List of property names in dot notation
- id: subscribe_property
label: Subscribe to Property Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":"{property}"}}'
params:
- name: property
type: string
description: Single property name to observe
- id: subscribe_multiple_properties
label: Subscribe to Multiple Property Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":["{prop1}","{prop2}"]}}'
params:
- name: property
type: array
description: List of property names to observe
- id: unsubscribe_property
label: Unsubscribe from Property Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.unsubscribe","params":{"property":"{property}"}}'
params:
- name: property
type: string
description: Single property name to stop observing
- id: unsubscribe_multiple_properties
label: Unsubscribe from Multiple Property Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.unsubscribe","params":{"property":["{prop1}","{prop2}"]}}'
params:
- name: property
type: array
description: List of property names to stop observing
- id: subscribe_signal
label: Subscribe to Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.subscribe","params":{"signal":"{signal}"}}'
params:
- name: signal
type: string
description: Signal name in dot notation
- id: subscribe_multiple_signals
label: Subscribe to Multiple Signals
kind: action
command: '{"jsonrpc":"2.0","method":"signal.subscribe","params":{"signal":["{sig1}","{sig2}"]}}'
params:
- name: signal
type: array
description: List of signal names in dot notation
- id: unsubscribe_signal
label: Unsubscribe from Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.unsubscribe","params":{"signal":"{signal}"}}'
params:
- name: signal
type: string
description: Signal name in dot notation
- id: unsubscribe_multiple_signals
label: Unsubscribe from Multiple Signals
kind: action
command: '{"jsonrpc":"2.0","method":"signal.unsubscribe","params":{"signal":["{sig1}","{sig2}"]}}'
params:
- name: signal
type: array
description: List of signal names in dot notation
- id: introspect
label: Introspect Object (Recursive)
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"{object}","recursive":true}}'
params:
- name: object
type: string
description: Object name in dot notation (empty/omitted = introspect everything)
- id: introspect_nonrecursive
label: Introspect Object (One Level)
kind: query
command: '{"jsonrpc":"2.0","method":"introspect","params":{"object":"{object}","recursive":false}}'
params:
- name: object
type: string
description: Object name in dot notation
- id: get_active_source
label: Get Active Source
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.source"}}'
params: []
- id: set_active_source
label: Set Active Source
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.source","value":"{source}"}}'
params:
- name: source
type: string
description: Source name as returned by image.source.list (e.g. DisplayPort 1, HDMI)
- id: list_sources
label: List Available Sources
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.list"}'
params: []
- id: list_connectors
label: List Available Connectors
kind: query
command: '{"jsonrpc":"2.0","method":"image.connector.list"}'
params: []
- id: list_source_connectors
label: List Connectors Used by a Source
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.{sourcename}.listconnectors"}'
params:
- name: sourcename
type: string
description: Source object name (lowercase, no spaces, e.g. displayport1)
- id: get_connector_signal
label: Get Detected Signal on Connector
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.connector.{connectorname}.detectedsignal"}}'
params:
- name: connectorname
type: string
description: Connector object name (lowercase, no spaces)
- id: get_illumination_state
label: Get Illumination State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.state"}}'
params: []
- id: get_laser_power
label: Get Laser Illumination Power Level
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.power"}}'
params: []
- id: set_laser_power
label: Set Laser Illumination Power Level
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"illumination.sources.laser.power","value":{value}}}'
params:
- name: value
type: integer
description: Power level in percent (consult laser.minpower / laser.maxpower for valid range)
- id: get_laser_min_power
label: Get Laser Minimum Power Level
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.minpower"}}'
params: []
- id: get_laser_max_power
label: Get Laser Maximum Power Level
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.sources.laser.maxpower"}}'
params: []
- id: get_brightness
label: Get Image Brightness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.brightness"}}'
params: []
- id: set_brightness
label: Set Image Brightness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.brightness","value":{value}}}'
params:
- name: value
type: float
description: Normalized brightness offset (-1 to 1, step 0.01)
- id: get_contrast
label: Get Image Contrast
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.contrast"}}'
params: []
- id: set_contrast
label: Set Image Contrast
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.contrast","value":{value}}}'
params:
- name: value
type: float
description: Normalized contrast gain (0 to 2, step 0.01)
- id: get_gamma
label: Get Image Gamma
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.gamma"}}'
params: []
- id: set_gamma
label: Set Image Gamma
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.gamma","value":{value}}}'
params:
- name: value
type: float
description: Gamma value (1 to 3, step 0.1; default 2.2)
- id: get_saturation
label: Get Image Saturation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.saturation"}}'
params: []
- id: set_saturation
label: Set Image Saturation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.saturation","value":{value}}}'
params:
- name: value
type: float
description: Normalized saturation (0 to 2, step 0.01)
- id: get_sharpness
label: Get Image Sharpness
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.sharpness"}}'
params: []
- id: set_sharpness
label: Set Image Sharpness
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.sharpness","value":{value}}}'
params:
- name: value
type: integer
description: Sharpness (-2 to 8, step 1)
- id: get_orientation
label: Get Image Orientation
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.orientation"}}'
params: []
- id: set_orientation
label: Set Image Orientation
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.orientation","value":"{orientation}"}}'
params:
- name: orientation
type: enum
description: One of DESKTOP_FRONT, DESKTOP_REAR, CEILING_FRONT, CEILING_REAR
- id: get_window_position
label: Get Main Window Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.position"}}'
params: []
- id: set_window_position
label: Set Main Window Position
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.position","value":{"x":{x},"y":{y}}}}'
params:
- name: x
type: integer
description: X position
- name: y
type: integer
description: Y position
- id: get_window_size
label: Get Main Window Size
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.size"}}'
params: []
- id: set_window_size
label: Set Main Window Size
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.size","value":{"width":{width},"height":{height}}}}'
params:
- name: width
type: integer
description: Window width
- name: height
type: integer
description: Window height
- id: get_window_scaling_mode
label: Get Main Window Scaling Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"image.window.main.scalingmode"}}'
params: []
- id: set_window_scaling_mode
label: Set Main Window Scaling Mode
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.window.main.scalingmode","value":"{mode}"}}'
params:
- name: mode
type: enum
description: One of Fill, OneToOne, FillScreen, Stretch
- id: enable_warp
label: Enable All Warp Functions
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.enable","value":true}}'
params: []
- id: enable_warp_file
label: Enable File Warp
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.file.enable","value":true}}'
params: []
- id: select_warp_file
label: Select Warp Grid File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.warp.file.selected","value":"{filename}"}}'
params:
- name: filename
type: string
description: Name of uploaded warp file
- id: upload_warp_file
label: Upload Warp File
kind: action
command: 'curl -X POST -F file=@{filename} http://{address}/api/image/processing/warp/file/transfer'
params:
- name: address
type: string
description: Projector IP address (e.g. 192.168.1.100)
- name: filename
type: string
description: Local path to warp grid file
- id: enable_blend_file
label: Enable File Blend
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.enable","value":true}}'
params: []
- id: select_blend_file
label: Select Blend Mask File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blend.file.selected","value":["{filename}"]}}'
params:
- name: filename
type: string
description: Name of uploaded blend mask file
- id: upload_blend_file
label: Upload Blend Mask
kind: action
command: 'curl -X POST -F file=@{filename} http://{address}/api/image/processing/blend/file/transfer'
params:
- name: address
type: string
description: Projector IP address
- name: filename
type: string
description: Local path to blend mask image (PNG up to 16-bit, JPEG, TIFF)
- id: enable_blacklevel_file
label: Enable Black Level Correction
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blacklevel.file.enable","value":true}}'
params: []
- id: select_blacklevel_file
label: Select Black Level Mask File
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"image.processing.blacklevel.file.selected","value":"{filename}"}}'
params:
- name: filename
type: string
description: Name of uploaded black level mask file
- id: upload_blacklevel_file
label: Upload Black Level Mask
kind: action
command: 'curl -X POST -F file=@{filename} http://{address}/api/image/processing/blacklevel/file/transfer'
params:
- name: address
type: string
description: Projector IP address
- name: filename
type: string
description: Local path to black level mask image (PNG up to 16-bit, JPEG, TIFF)
- id: get_zoom_position
label: Get Zoom Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.zoom.position"}}'
params: []
- id: get_focus_position
label: Get Focus Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.focus.position"}}'
params: []
- id: get_lensshift_horizontal
label: Get Horizontal Lens Shift Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.horizontal.position"}}'
params: []
- id: get_lensshift_vertical
label: Get Vertical Lens Shift Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.lensshift.vertical.position"}}'
params: []
- id: get_shutter_position
label: Get Shutter Position
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.position"}}'
params: []
- id: get_shutter_target
label: Get Shutter Target
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"optics.shutter.target"}}'
params: []
- id: set_shutter_target
label: Set Shutter Target
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"optics.shutter.target","value":"{target}"}}'
params:
- name: target
type: enum
description: One of Open, Closed
- id: get_lan_state
label: Get LAN State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.state"}}'
params: []
- id: get_lan_ip4config
label: Get IPv4 Network Configuration
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"network.device.lan.ip4config"}}'
params: []
- id: get_alarm_state
label: Get Environment Alarm State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"environment.alarmstate"}}'
params: []
- id: get_environment_sensors
label: Get Environment Sensor Readings
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getcontrolblocks","params":{"type":"{type}","valuetype":"{valuetype}"}}'
params:
- name: type
type: enum
description: One of Sensor, Filter, Controller, Actuator, Alarm, GenericBlock
- name: valuetype
type: enum
description: One of Temperature, Speed, PWM, Voltage, Current, Power, Altitude, Pressure, Humidity, ADC, Coordinate, Peltier, Waveform, Average, Delay, Difference, Interpolation, Limit, Median, Noise, Weighting, Comparison, Threshold, Formula, Driver, PID, Mode, State, Pump, Resistance, Simulation, Constant, Manual, Range, Any
- id: get_alarm_info
label: Get Alarm Information
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getalarminfo"}'
params: []
- id: enable_standby
label: Enable Standby State
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"system.standby.enable","value":{value}}}'
params:
- name: value
type: boolean
description: True to enable standby state usage, false to disable (check availability first)
- id: enable_eco
label: Enable ECO State
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"system.eco.enable","value":{value}}}'
params:
- name: value
type: boolean
description: True to enable ECO state usage, false to disable (check availability first)
- id: list_dmx_modes
label: List DMX Modes
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listmodes"}'
params: []
- id: list_dmx_channels
label: List DMX Channel Names
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listchannels"}'
params: []
- id: get_dmx_mode
label: Get DMX Mode
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.mode"}}'
params: []
- id: set_dmx_mode
label: Set DMX Mode
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"dmx.mode","value":"{mode}"}}'
params:
- name: mode
type: string
description: DMX mode name
- id: get_dmx_startchannel
label: Get DMX Start Channel
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.startchannel"}}'
params: []
- id: set_dmx_startchannel
label: Set DMX Start Channel
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"dmx.startchannel","value":{channel}}}'
params:
- name: channel
type: integer
description: DMX start channel (1 to 512)
- id: get_dmx_shutdown
label: Get DMX Shutdown Setting
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"dmx.shutdown"}}'
params: []
- id: set_dmx_shutdown
label: Set DMX Shutdown Setting
kind: action
command: '{"jsonrpc":"2.0","method":"property.set","params":{"property":"dmx.shutdown","value":{value}}}'
params:
- name: value
type: boolean
description: True to enable DMX shutdown, false to disable
- id: list_firmware_components
label: List Firmware Components
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponents"}'
params: []
- id: list_firmware_versions
label: List Firmware Component Versions and Status
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponentversionstatus"}'
params: []
- id: schedule_firmware_upgrade
label: Schedule Firmware Component Upgrade
kind: action
command: '{"jsonrpc":"2.0","method":"firmware.schedulecomponentupgrade"}'
params: []
- id: engage_clo
label: Engage Constant Light Output (CLO)
kind: action
command: '{"jsonrpc":"2.0","method":"illumination.clo.engage"}'
params: []
- id: get_laser_serial
label: Get Laser Serial Number
kind: query
command: '{"jsonrpc":"2.0","method":"illumination.laser.getserialnumber"}'
params: []
- id: p7_copy_preset_to_custom
label: P7 - Copy Preset to Custom
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.copypresettocustom","params":{"presetname":"{presetname}"}}'
params:
- name: presetname
type: string
description: Preset name
- id: p7_reset_preset
label: P7 - Reset Preset to Default
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resetpreset","params":{"presetname":"{presetname}"}}'
params:
- name: presetname
type: string
description: Preset name
- id: p7_reset_to_native
label: P7 - Reset to Native
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resettonative"}'
params: []
- id: rgbmode_next
label: RGB Mode - Next
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.rgbmode.nextrgbmode"}'
params: []
- id: led_blink
label: Blink LED
kind: action
command: '{"jsonrpc":"2.0","method":"ledctrl.blink","params":{"led":"{led}","color":"{color}","period":{period}}}'
params:
- name: led
type: string
description: LED name (e.g. systemstatus)
- name: color
type: string
description: LED color (e.g. red)
- name: period
type: integer
description: Blink period
- id: serial_wake_from_eco
label: Wake from ECO via RS-232
kind: action
command: ':POWR1\r'
notes: ASCII sent on RS-232 serial port; use when projector is in ECO mode. Alternative: Wake-on-LAN, remote power button, keypad power button.
params: []
Feedbacks
- id: system_state
type: enum
values: [boot, eco, standby, ready, conditioning, on, service, deconditioning, error]
notes: One of the projector lifecycle states.
- id: illumination_state
type: enum
values: [On, Off]
- id: environment_alarm_state
type: enum
values: [Fatal, Error, Alert, Warning, Ok]
- id: shutter_position
type: enum
values: [Open, Closed]
- id: lan_state
type: enum
values: [CONNECTED, DISCONNECTED]
- id: window_scaling_mode
type: enum
values: [Fill, OneToOne, FillScreen, Stretch]
- id: orientation
type: enum
values: [DESKTOP_FRONT, DESKTOP_REAR, CEILING_FRONT, CEILING_REAR]
- id: dmx_firmware_status
type: enum
values: [Unknown, OK, Upgradable]
- id: detected_signal
type: object
description: Active signal info on a connector (resolution, frequencies, pixel rate, scan type, color info, etc.)
Variables
- name: brightness
path: image.brightness
type: float
range: [-1, 1]
step: 0.01
- name: contrast
path: image.contrast
type: float
range: [0, 2]
step: 0.01
- name: gamma
path: image.gamma
type: float
range: [1, 3]
step: 0.1
default: 2.2
- name: saturation
path: image.saturation
type: float
range: [0, 2]
step: 0.01
- name: sharpness
path: image.sharpness
type: integer
range: [-2, 8]
step: 1
- name: laser_power
path: illumination.sources.laser.power
type: integer
description: Target laser power in percent. Range depends on runtime minpower/maxpower.
- name: laser_min_power
path: illumination.sources.laser.minpower
type: integer
read_only: true
- name: laser_max_power
path: illumination.sources.laser.maxpower
type: integer
read_only: true
- name: dmx_mode
path: dmx.mode
type: string
- name: dmx_startchannel
path: dmx.startchannel
type: integer
range: [1, 512]
- name: dmx_shutdown
path: dmx.shutdown
type: boolean
- name: standby_enable
path: system.standby.enable
type: boolean
- name: eco_enable
path: system.eco.enable
type: boolean
- name: window_position
path: image.window.main.position
type: object
fields: [x:int, y:int]
- name: window_size
path: image.window.main.size
type: object
fields: [width:int, height:int]
- name: lan_ip4config
path: network.device.lan.ip4config
type: object
fields: [Address:string, Mask:string, Gateway:string, NameServers:string]
Events
- id: modelupdated
description: Signal triggered when object structure changes (objects added or removed).
notification_method: signal.callback
- id: property_changed
description: Server-to-client notification delivering property/value pairs when subscribed property values change.
notification_method: property.changed
- id: signal_callback
description: Generic signal callback delivering an array of signal/argument-list pairs.
notification_method: signal.callback
- id: introspect_objectchanged
description: Signal exposed by the introspect object when an object is added or removed.
args:
object: string (object name)
isnew: boolean
Macros
# UNRESOLVED: source does not describe explicit multi-step macros; macros are composed client-side from the JSON-RPC primitives above.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not document explicit safety warnings, interlock procedures, or power-on sequencing requirements. The ECO-wake hint (verify state before issuing poweron/poweroff) is operational guidance, not a safety interlock.
Notes
Document title is "RS232 and Network Command Catalog — Pulse API". Content describes the JSON-RPC 2.0 Pulse API used across Barco Pulse projectors (not specifically the Apx Audio Processor). The same command set applies to both TCP (port 9090) and RS-232 (19200 8N1) transports.
Object/method naming uses dot notation in lowercase (JavaScript-like). Position of params object keys does not matter; "id" is optional but recommended for matching requests to responses. Methods that return no value yield result: null, not an error.
Best practice: wait for the property.set confirmation before issuing another property.set on the same property to avoid flooding the server.
Authentication is optional and only required for elevated access (above normal end user). Normal end-user operation can proceed without an authenticate call.
API surface is dynamic — parts depend on installed peripherals (lens, DMX module, etc.). Use the introspect method to discover the exact API available on a given unit at runtime.
Warp file format matches the MCM500/400 projector family. Blend/black-level masks must match the resolution of the corresponding layer (e.g. WUXGA → 1920x1200, 4K → 1280x800).
ECO-mode wake-up: send ASCII :POWR1\r on RS-232, or use Wake-on-LAN (projector MAC), or remote/keypad power button.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-07-14T08:58:39.847Z
last_checked_at: 2026-07-21T20:55:20.660Z
Verification Summary
verdict: verified
checked_at: 2026-07-21T20:55:20.660Z
matched_actions: 88
action_count: 88
confidence: medium
summary: "All 88 spec actions matched literally in source; transport parameters verified in RS232 section; spec comprehensively represents Pulse API. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source document provided is titled \"RS232 and Network Command Catalog\" for the Pulse API, but the requested device is \"Barco Apx Audio Processor\". Treating the document as the authoritative protocol source; audio-processor-specific commands not present."
- "voltage/current/power specifications not stated in source"
- "fault recovery sequences not stated in source"
- "source describes optional passcode authentication (method \"authenticate\" with \"code\" param) for elevated access; normal end-user access skips it"
- "source does not describe explicit multi-step macros; macros are composed client-side from the JSON-RPC primitives above."
- "source does not document explicit safety warnings, interlock procedures, or power-on sequencing requirements. The ECO-wake hint (verify state before issuing poweron/poweroff) is operational guidance, not a safety interlock."
- "entity_id placeholder \"barco_apx_audio_processor\" was provided but the source document describes the Pulse projector API, not an audio processor. Audio-processor-specific commands (mixing, EQ, routing, levels, etc.) are not present in this source."
- "source document is named for the Pulse API but the operator requested the Apx Audio Processor. Operator should confirm whether this protocol applies to the audio processor family or whether a different source document is required."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0