Summary
Barco Dp4K 23Blp projector control spec covering Pulse JSON-RPC services over TCP/IP and RS-232, HTTP file transfer endpoints, projector operation, image processing, illumination, optics, DMX, environment monitoring, and firmware management.
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
credentials:
code: null # UNRESOLVED: secret pass code is installation-specific
notes: Authentication may be skipped for normal end-user access; higher access levels require authenticate.
Traits
- powerable # inferred from system.poweron and system.poweroff
- routable # inferred from source-selection commands
- queryable # inferred from property.get and query methods
- levelable # inferred from image and illumination level controls
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: integer
description: Request identifier
- id: invoke_method
label: Invoke Method
kind: action
command: '{"jsonrpc":"2.0","method":"{method}","params":{params},"id":{id}}'
params:
- name: method
type: string
- name: params
type: object
- name: id
type: integer
- id: set_property
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: integer
- id: get_property
label: Get Property
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"{property}"},"id":{id}}'
params:
- name: property
type: string
- name: id
type: integer
- id: get_multiple_properties
label: Get Multiple Properties
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":{properties}},"id":{id}}'
params:
- name: properties
type: array
- name: id
type: integer
- id: subscribe_property
label: Subscribe to Property Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.subscribe","params":{"property":{property}},"id":{id}}'
params:
- name: property
type: any
description: Property name or array of property names
- name: id
type: integer
- id: unsubscribe_property
label: Unsubscribe from Property Changes
kind: action
command: '{"jsonrpc":"2.0","method":"property.unsubscribe","params":{"property":{property}},"id":{id}}'
params:
- name: property
type: any
description: Property name or array of property names
- name: id
type: integer
- id: subscribe_signal
label: Subscribe to Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.subscribe","params":{"signal":{signal}},"id":{id}}'
params:
- name: signal
type: any
description: Signal name or array of signal names
- name: id
type: integer
- id: unsubscribe_signal
label: Unsubscribe from Signal
kind: action
command: '{"jsonrpc":"2.0","method":"signal.unsubscribe","params":{"signal":{signal}},"id":{id}}'
params:
- name: signal
type: any
description: Signal name or array of signal names
- name: id
type: integer
- 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
description: Object name; empty string introspects everything
- name: recursive
type: boolean
description: Defaults to true
- name: id
type: integer
- 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: serial_eco_wake
label: Wake from ECO over RS-232
kind: action
command: ":POWR1\r"
params: []
- id: get_system_state
label: Get Projector State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"system.state"},"id":{id}}'
params:
- name: id
type: integer
- id: subscribe_system_state
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
- id: get_active_source
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: integer
- id: list_sources
label: List Available Sources
kind: query
command: '{"jsonrpc":"2.0","method":"image.source.list","id":{id}}'
params:
- name: id
type: integer
- 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}"},"id":{id}}'
params:
- name: source
type: string
description: Name returned by image.source.list
- name: id
type: integer
- id: list_connectors
label: List Available Connectors
kind: query
command: '{"jsonrpc":"2.0","method":"image.connector.list","id":{id}}'
params:
- name: id
type: integer
- id: list_source_connectors
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: Source name stripped of non-word characters and converted to lowercase
- name: id
type: integer
- id: get_connector_signal
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
- name: id
type: integer
- id: get_illumination_state
label: Get Illumination State
kind: query
command: '{"jsonrpc":"2.0","method":"property.get","params":{"property":"illumination.state"},"id":{id}}'
params:
- name: id
type: integer
- id: get_laser_power
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: integer
- id: set_laser_power
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 power percentage; supported range is dynamic
- name: id
type: integer
- id: get_laser_minimum_power
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: integer
- id: get_laser_maximum_power
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: integer
- id: engage_clo
label: Engage Constant Light Output
kind: action
command: '{"jsonrpc":"2.0","method":"illumination.clo.engage","id":{id}}'
params:
- name: id
type: integer
- id: get_laser_serial_number
label: Get Laser Serial Number
kind: query
command: '{"jsonrpc":"2.0","method":"illumination.laser.getserialnumber","id":{id}}'
params:
- name: id
type: integer
- id: set_brightness
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: integer
- id: set_contrast
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: integer
- id: set_gamma
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: integer
- id: set_saturation
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: integer
- id: set_sharpness
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: integer
- id: set_orientation
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
- id: set_window_position
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
- id: set_window_size
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
- id: set_scaling_mode
label: Set 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
- id: set_warp_enabled
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
- id: upload_warp_file
label: Upload Warp File
kind: action
command: 'POST http://{projector-address}/api/image/processing/warp/file/transfer multipart/form-data file=@{file}'
params:
- name: projector-address
type: string
- name: file
type: string
- id: select_warp_file
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
- id: set_warp_file_enabled
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
- id: upload_blend_mask
label: Upload Blend Mask
kind: action
command: 'POST http://{projector-address}/api/image/processing/blend/file/transfer multipart/form-data file=@{file}'
params:
- name: projector-address
type: string
- name: file
type: string
- id: select_blend_file
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
- id: set_blend_file_enabled
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
- id: upload_black_level_mask
label: Upload Black-Level Mask
kind: action
command: 'POST http://{projector-address}/api/image/processing/blacklevel/file/transfer multipart/form-data file=@{file}'
params:
- name: projector-address
type: string
- name: file
type: string
- id: select_black_level_file
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
- id: set_black_level_file_enabled
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
- id: set_dmx_mode
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
- id: set_dmx_start_channel
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
- id: set_dmx_shutdown
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
- id: list_dmx_channels
label: List DMX Channels
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listchannels","id":{id}}'
params:
- name: id
type: integer
- id: list_dmx_modes
label: List DMX Modes
kind: query
command: '{"jsonrpc":"2.0","method":"dmx.listmodes","id":{id}}'
params:
- name: id
type: integer
- id: set_shutter_target
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
- id: set_zoom_position
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
- id: set_focus_position
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
- id: set_horizontal_lens_shift
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
- id: set_vertical_lens_shift
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
- id: set_standby_enabled
label: Enable or Disable Standby State
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
- id: set_eco_enabled
label: Enable or Disable ECO State
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
- id: get_environment_control_blocks
label: Get 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 environment value type
- name: id
type: integer
- id: get_alarm_info
label: Get Alarm Information
kind: query
command: '{"jsonrpc":"2.0","method":"environment.getalarminfo","id":{id}}'
params:
- name: id
type: integer
- id: list_firmware_components
label: List Firmware Components
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponents","id":{id}}'
params:
- name: id
type: integer
- id: list_firmware_component_version_status
label: List Firmware Component Version Status
kind: query
command: '{"jsonrpc":"2.0","method":"firmware.listcomponentversionstatus","id":{id}}'
params:
- name: id
type: integer
- id: schedule_firmware_component_upgrade
label: Schedule Firmware Component Upgrade
kind: action
command: '{"jsonrpc":"2.0","method":"firmware.schedulecomponentupgrade","id":{id}}'
params:
- name: id
type: integer
notes: Source states this forces a component upgrade at the following reboot, but does not document parameters.
- id: copy_color_preset_to_custom
label: Copy Color 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
- id: reset_custom_color_preset
label: Reset Custom Color 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
- id: reset_color_to_native
label: Reset Color to Native
kind: action
command: '{"jsonrpc":"2.0","method":"image.color.p7.custom.resettonative","id":{id}}'
params:
- name: id
type: integer
- 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
Feedbacks
- id: authentication_result
type: boolean
response_field: result
- id: property_set_result
type: boolean
response_field: result
- id: property_value
type: any
response_field: result
- id: system_state
type: enum
values:
- boot
- eco
- standby
- ready
- conditioning
- on
- service
- deconditioning
- error
source: system.state
- id: active_source
type: string
source: image.window.main.source
- id: available_sources
type: array
source: image.source.list
- id: available_connectors
type: array
source: image.connector.list
- id: detected_signal
type: object
source: image.connector.{connector}.detectedsignal
- id: illumination_state
type: enum
values:
- On
- Off
source: illumination.state
- id: laser_power
type: float
source: illumination.sources.laser.power
- id: laser_minimum_power
type: float
source: illumination.sources.laser.minpower
- id: laser_maximum_power
type: float
source: illumination.sources.laser.maxpower
- id: network_state
type: enum
values:
- CONNECTED
- DISCONNECTED
source: network.device.lan.state
- id: shutter_position
type: enum
values:
- Open
- Closed
source: optics.shutter.position
- id: environment_alarm_state
type: enum
values:
- Fatal
- Error
- Alert
- Warning
- Ok
source: environment.alarmstate
- id: environment_control_blocks
type: object
source: environment.getcontrolblocks
- id: environment_alarm_info
type: array
source: environment.getalarminfo
- id: firmware_components
type: array
source: firmware.listcomponents
- id: firmware_component_version_status
type: array
source: firmware.listcomponentversionstatus
Variables
- id: image_window_main_source
type: string
access: read_write
- id: image_window_main_position
type: object
access: read_write
fields:
x: integer
y: integer
- id: image_window_main_size
type: object
access: read_write
fields:
width: integer
height: integer
- id: image_window_main_scaling_mode
type: enum
access: read_write
values:
- Fill
- OneToOne
- FillScreen
- Stretch
- id: image_brightness
type: float
access: read_write
minimum: -1
maximum: 1
precision: 0.01
- id: image_contrast
type: float
access: read_write
minimum: 0
maximum: 2
precision: 0.01
- id: image_gamma
type: float
access: read_write
minimum: 1
maximum: 3
precision: 0.1
default: 2.2
- id: image_saturation
type: float
access: read_write
minimum: 0
maximum: 2
precision: 0.01
- id: image_sharpness
type: integer
access: read_write
minimum: -2
maximum: 8
- id: image_orientation
type: enum
access: read_write
values:
- DESKTOP_FRONT
- DESKTOP_REAR
- CEILING_FRONT
- CEILING_REAR
- id: illumination_laser_power
type: float
access: read_write
unit: percent
notes: Minimum and maximum are dynamic and must be queried.
- id: illumination_laser_minimum_power
type: float
access: read_only
unit: percent
- id: illumination_laser_maximum_power
type: float
access: read_only
unit: percent
- id: dmx_mode
type: string
access: read_write
- id: dmx_start_channel
type: integer
access: read_write
minimum: 1
maximum: 512
- id: dmx_shutdown
type: boolean
access: read_write
- id: network_ipv4_configuration
type: object
access: read_only
fields:
Address: string
Mask: string
Gateway: string
NameServers: string
- id: optics_shutter_target
type: enum
access: read_write
values:
- Open
- Closed
- id: optics_zoom_position
type: integer
access: read_write
- id: optics_focus_position
type: integer
access: read_write
- id: optics_lens_shift_horizontal_position
type: integer
access: read_write
- id: optics_lens_shift_vertical_position
type: integer
access: read_write
- id: system_standby_enabled
type: boolean
access: read_write
- id: system_eco_enabled
type: boolean
access: read_write
- id: warp_enabled
type: boolean
access: read_write
- id: warp_file_enabled
type: boolean
access: read_write
- id: warp_file_selected
type: string
access: read_write
- id: blend_file_enabled
type: boolean
access: read_write
- id: blend_files_selected
type: array
access: read_write
items: string
- id: black_level_file_enabled
type: boolean
access: read_write
- id: black_level_file_selected
type: string
access: read_write
Events
- id: property_changed
method: property.changed
payload: '{"jsonrpc":"2.0","method":"property.changed","params":{"property":[{property-value-pairs}]}}'
description: Unsolicited property-change notification; has no request identifier and requires no response.
- id: signal_callback
method: signal.callback
payload: '{"jsonrpc":"2.0","method":"signal.callback","params":{"signal":[{signal-argument-pairs}]}}'
description: Unsolicited subscribed-signal notification; has no request identifier and requires no response.
- id: model_updated
signal: modelupdated
description: Triggered when objects are added or removed.
Macros
- id: activate_warp_grid
label: Upload and Activate Warp Grid
steps:
- Upload warp file through HTTP POST to /api/image/processing/warp/file/transfer.
- Set image.processing.warp.file.selected to uploaded filename.
- Set image.processing.warp.file.enable to true.
- id: activate_blend_mask
label: Upload and Activate Blend Mask
steps:
- Upload blend mask through HTTP POST to /api/image/processing/blend/file/transfer.
- Set image.processing.blend.file.selected to uploaded filename.
- Set image.processing.blend.file.enable to true.
- id: activate_black_level_mask
label: Upload and Activate Black-Level Mask
steps:
- Upload black-level mask through HTTP POST to /api/image/processing/blacklevel/file/transfer.
- Set image.processing.blacklevel.file.selected to uploaded filename.
- Set image.processing.blacklevel.file.enable to true.
Safety
confirmation_required_for:
- firmware.schedulecomponentupgrade
interlocks:
- operation: system.poweron
requirement: Verify system.state is standby or ready before issuing command.
- operation: system.poweroff
requirement: Verify system.state is on before issuing command.
- operation: property.set
requirement: Wait for confirmation before setting same property again.
- operation: illumination.sources.laser.power
requirement: Query dynamic minimum and maximum power before setting target.
- operation: system_eco_wake
requirement: Network power-on requires Wake-on-LAN while projector is in ECO mode; RS-232 wake uses the documented special command.
Notes
Normal end-user access may skip authentication. Higher access levels require an authentication request containing a secret pass code. Notifications contain no request identifier, and clients must not return responses to them.
API contents are dynamic and may depend on projector model, configuration, lens capabilities, and peripherals. Use recursive or non-recursive introspect requests to discover exact available objects, methods, properties, signals, constraints, and access levels.
Property subscriptions only report actual changes; subscribing does not return current state. Query current value separately with property.get. Source selection can produce two notifications: an empty source while deselecting old input, followed by newly selected source.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-07-23T06:18:37.441Z
last_checked_at: 2026-08-05T07:27:24.750Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T07:27:24.750Z
matched_actions: 68
action_count: 68
confidence: medium
summary: "All 68 spec actions match literal method names/property paths/HTTP endpoints in the refined source; transport (port 9090, 19200 8N1) confirmed. (3 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source describes dynamic APIs whose availability depends on projector configuration and attached peripherals."
- "secret pass code is installation-specific"
- "firmware compatibility range and protocol framing details are not stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0