Summary
The Lightware FP-UMX-TPS-TX120 is a wall-plate / FP-series HDBaseT-class TPS transmitter in the UMX-TPS-TX100 family. It exposes VGA, HDMI, and Autoselect video inputs; analog + embedded digital audio inputs; and a 3-pole Phoenix RS-232 serial port plus RJ45 Ethernet (TPS + LAN). Control is via two ASCII protocols — the legacy Lightware LW2 command set over TCP port 10001, and the modern tree-structured Lightware LW3 protocol over TCP port 6107 — both also accessible over the local RS-232 port when set to Control mode. This spec covers both LW2 and LW3 command catalogues as documented in the source user manual.
Transport
# Two control interfaces are documented in source:
# - RS-232 (3-pole Phoenix, Control protocol selectable LW2 or LW3)
# - TCP (LW2 default port 10001, LW3 default port 6107)
# Default static IP per source: 192.168.0.100. Default RS-232 settings per source: 9600, 8N1 (mirrored on LDC example "COM1:57600").
# No login is required by default; Cleartext Login (LOGIN:login) is an OPTIONAL feature gated to TX140K / TX140-Plus / WP-UMX-TPS-TX130-Plus-US models, NOT the FP-UMX-TPS-TX120.
protocols:
- serial
- tcp
addressing:
port: 10001 # LW2 default port per source (LW3 default port 6107 also stated)
serial:
baud_rate: 9600 # source example shows 9600 as default; 57600, 4800, 7200, 14400, 19200, 38400, 115200 also supported
data_bits: 8 # source: data bits 8 or 9
parity: none # source parity options: none / odd / even
stop_bits: 1 # source stop bit options: 1, 1.5, 2
flow_control: none # UNRESOLVED: source does not document flow-control explicitly
auth:
type: none # inferred: no auth procedure in source for FP-UMX-TPS-TX120 (Cleartext Login is a separately gated optional feature)
Traits
# Derived from source evidence:
# - powerable inferred (RST/FACTORY/reset exist; device supports reboot; no explicit "power on/off" command, but SYS:reset / SYS:factoryDefaults restart the unit)
# - routable inferred from video / audio crosspoint switch commands (XP:switch, mute/unmute, lock/unlock, autoselect, priority)
# - queryable inferred from extensive GET-style queries (product name, serial, firmware, port status, crosspoint state, IP status, etc.)
# - levelable inferred from analog audio SET /MEDIA/AUDIO/<in>.Volume (level) and .Balance (level)
# - lockable inferred from ControlLock, lockSource/lockDestination commands
powerable: false # UNRESOLVED: source has no dedicated power-on / power-off command for FP-UMX-TPS-TX120; only reboot / factory-reset
routable: true # inferred from crosspoint / switch commands
queryable: true # inferred from query commands returning state
levelable: true # inferred from analog audio Volume/Balance SETs
Actions
# Format guide:
# kind: action → method-style command
# kind: query → GET-style command (returns state)
# kind: set → SET-style command (writes property)
# command: → literal payload verbatim from source, parameterized parts shown as {name}
#
# Both LW2 ({...} CrLf on TCP 10001) and LW3 (CALL/SET/GET /node.method CrLf on TCP 6107 or RS-232) are documented.
# LW3 actions use the explicit ASCII syntax from §7.
# ───────────────────────── LW2 - General (TCP 10001) ─────────────────────────
- id: lw2_list_commands
label: LW2 List All Available Commands
kind: action
command: "{lcmd}\r\n" # literal from §6.3.1
params: []
- id: lw2_view_product_type
label: LW2 Viewing Product Type
kind: query
command: "{i}\r\n"
params: []
- id: lw2_query_device_label
label: LW2 Querying the Device Label
kind: query
command: "{label}\r\n"
params: []
- id: lw2_query_control_protocol
label: LW2 Querying the Control Protocol
kind: query
command: "{P_?}\r\n"
params: []
- id: lw2_view_firmware_version
label: LW2 Viewing Firmware Version of the CPU
kind: query
command: "{F}\r\n"
params: []
- id: lw2_connection_test
label: LW2 Connection Test
kind: action
command: "{PING}\r\n"
params: []
- id: lw2_compile_time
label: LW2 Compile Time
kind: query
command: "{CT}\r\n"
params: []
- id: lw2_view_serial_number
label: LW2 Viewing Serial Number
kind: query
command: "{S}\r\n"
params: []
- id: lw2_view_installed_boards
label: LW2 Viewing the Installed Boards
kind: query
command: "{IS}\r\n"
params: []
- id: lw2_view_firmware_controllers
label: LW2 Viewing Firmware for All Controllers
kind: query
command: "{FC}\r\n"
params: []
- id: lw2_query_health_status
label: LW2 Querying Health Status
kind: query
command: "{ST}\r\n"
params: []
- id: lw2_restart_device
label: LW2 Restarting the Device
kind: action
command: "{RST}\r\n"
params: []
- id: lw2_factory_defaults
label: LW2 Restoring Factory Default Settings
kind: action
command: "{FACTORY=ALL}\r\n"
params: []
# ───────────────────────── LW2 - AV Port Settings ─────────────────────────
- id: lw2_switch_input_to_output
label: LW2 Switching an Input to the Outputs
kind: action
command: "{<in>@<out> <layer>}\r\n" # <layer> ∈ A / V / AV
params:
- {name: in, type: integer, description: Input port number (1- or 2-digit ASCII; 0 = disconnect)}
- {name: out, type: integer, description: Output port number (1- or 2-digit ASCII)}
- {name: layer, type: string, description: "A (audio), V (video), AV (both), or omit for legacy"}
- id: lw2_mute_output
label: LW2 Muting an Output
kind: action
command: "{#<out> <layer>}\r\n"
params:
- {name: out, type: integer, description: Output port number}
- {name: layer, type: string, description: "A, V, or AV"}
- id: lw2_unmute_output
label: LW2 Unmuting an Output
kind: action
command: "{+<out> <layer>}\r\n"
params:
- {name: out, type: integer, description: Output port number}
- {name: layer, type: string, description: "A, V, or AV"}
- id: lw2_lock_output
label: LW2 Locking an Output
kind: action
command: "{#> <out> <layer>}\r\n"
params:
- {name: out, type: integer, description: Output port number}
- {name: layer, type: string, description: "A, V, or AV"}
- id: lw2_unlock_output
label: LW2 Unlocking an Output
kind: action
command: "{+< <out> <layer>}\r\n"
params:
- {name: out, type: integer, description: Output port number}
- {name: layer, type: string, description: "A, V, or AV"}
- id: lw2_view_connection_state
label: LW2 Viewing Connection State on the Output
kind: query
command: "{VC <layer>}\r\n"
params:
- {name: layer, type: string, description: "A, V, or AV"}
- id: lw2_view_crosspoint_size
label: LW2 Viewing the Crosspoint Size
kind: query
command: "{getsize <layer>}\r\n"
params:
- {name: layer, type: string, description: "A, V, or AV"}
- id: lw2_change_video_autoselect
label: LW2 Changing the Video Autoselect Mode
kind: action
command: "{AS_V<out>=<state>;<mode>}\r\n" # state ∈ E/D, mode ∈ F/L/P
params:
- {name: out, type: integer, description: Output port number}
- {name: state, type: string, description: "E (enabled) or D (disabled)"}
- {name: mode, type: string, description: "F (First detect), L (Last detect), P (Priority detect)"}
- id: lw2_change_audio_autoselect
label: LW2 Changing the Audio Autoselect Mode
kind: action
command: "{AS_A<out>=<state>;<mode>}\r\n"
params:
- {name: out, type: integer, description: Output port number}
- {name: state, type: string, description: "E (enabled) or D (disabled)"}
- {name: mode, type: string, description: "F, L, or P"}
- id: lw2_change_video_input_priorities
label: LW2 Changing the Video Input Priorities
kind: action
command: "{PRIO_V<out>=<in1_prio>;<in2_prio>;…;<inn_prio>}\r\n" # prio 0-5, 31 (skip)
params:
- {name: out, type: integer, description: Output port number}
- {name: priorities, type: string, description: Semicolon-separated priority list per input (0=highest .. 5=lowest, 31=skip)"}
- id: lw2_change_audio_input_priorities
label: LW2 Changing the Audio Input Priorities
kind: action
command: "{PRIO_A<out>=<in1_prio>;<in2_prio>;…;<inn_prio>}\r\n"
params:
- {name: out, type: integer, description: Output port number}
- {name: priorities, type: string, description: Semicolon-separated priority list per input"}
# ───────────────────────── LW2 - Network Configuration ─────────────────────────
- id: lw2_query_ip_status
label: LW2 Querying the Current IP Status
kind: query
command: "{IP_STAT=?}\r\n"
params: []
- id: lw2_set_ip_address
label: LW2 Setting the IP Address
kind: action
command: "{IP_ADDRESS=<type>;<ip_address>}\r\n" # type 0=static, 1=dynamic
params:
- {name: type, type: integer, description: "0 (static) or 1 (DHCP)"}
- {name: ip_address, type: string, description: IPv4 address, dot-separated octets}
- id: lw2_set_subnet_mask
label: LW2 Setting the Subnet Mask
kind: action
command: "{IP_NETMASK=<subnet_mask>}\r\n"
params:
- {name: subnet_mask, type: string, description: IPv4 dot-decimal subnet mask}
- id: lw2_set_gateway
label: LW2 Setting the Gateway Address
kind: action
command: "{IP_GATEWAY=<gateway_addr>}\r\n"
params:
- {name: gateway_addr, type: string, description: IPv4 dot-decimal gateway address}
- id: lw2_apply_network_settings
label: LW2 Applying Network Settings
kind: action
command: "{ip_apply}\r\n"
params: []
- id: lw2_ethernet_enable
label: LW2 Enabling/Disabling the Ethernet Port
kind: action
command: "{ETH_ENABLE=<switch>}\r\n" # 0=disabled, 1=enabled
params:
- {name: switch, type: integer, description: "0 (disable) or 1 (enable)"}
# ───────────────────────── LW2 - RS-232 Settings ─────────────────────────
- id: lw2_set_rs232_mode
label: LW2 Setting the RS-232 Mode
kind: action
command: "{RS232=<mode>}\r\n" # CONTROL / CI / PASS
params:
- {name: mode, type: string, description: "CONTROL (Control mode), CI (Command injection), PASS (Pass-through / Event Manager)"}
- id: lw2_set_rs232_local_format
label: LW2 Setting the RS-232 Local Parameters
kind: action
command: "{RS232_LOCAL_FORMAT=<BaudRate>;<DataBit>;<Parity>;<StopBit>}\r\n"
params:
- {name: baud, type: integer, description: "4800 / 7200 / 9600 / 14400 / 19200 / 38400 / 57600 / 115200 (X = no change)"}
- {name: databits, type: integer, description: "8 / 9 (X = no change)"}
- {name: parity, type: string, description: "N / E / O (X = no change)"}
- {name: stopbits, type: string, description: "1 / 1,5 / 2 (X = no change)"}
- id: lw2_set_rs232_local_protocol
label: LW2 Setting the Control Protocol of the RS-232 Port
kind: action
command: "{RS232_LOCAL_PROT=<protocol>}\r\n" # LW2 / LW3
params:
- {name: protocol, type: string, description: "LW2 or LW3"}
- id: lw2_set_rs232_link_format
label: LW2 Setting the Format of the Serial Link Port
kind: action
command: "{RS232_LINK_FORMAT=<baud_rate>;<data_bit>;<parity>;<stop_bit>}\r\n"
params:
- {name: baud, type: integer, description: Baud rate or X (no change)"}
- {name: databits, type: integer, description: Data bits or X (no change)"}
- {name: parity, type: string, description: Parity (N/E/O) or X (no change)"}
- {name: stopbits, type: string, description: Stop bits (1/1,5/2) or X (no change)"}
- id: lw2_set_rs232_link_protocol
label: LW2 Setting the Protocol of the Serial Link Port
kind: action
command: "{RS232_LINK_PROT=<protocol>}\r\n"
params:
- {name: protocol, type: string, description: "LW2 or LW3"}
# ───────────────────────── LW3 - System Commands ─────────────────────────
- id: lw3_get_product_name
label: LW3 Querying the Product Name
kind: query
command: "GET /.ProductName\r\n"
params: []
- id: lw3_set_device_label
label: LW3 Setting the Device Label
kind: set
command: "SET /MANAGEMENT/UID.DeviceLabel={label}\r\n"
params:
- {name: label, type: string, description: ASCII label, max 39 chars}
- id: lw3_get_serial_number
label: LW3 Querying the Serial Number
kind: query
command: "GET /.SerialNumber\r\n"
params: []
- id: lw3_get_firmware_version
label: LW3 Querying the Firmware Version
kind: query
command: "GET /SYS/MB.FirmwareVersion\r\n"
params: []
- id: lw3_reset_device
label: LW3 Resetting the Device
kind: action
command: "CALL /SYS:reset()\r\n"
params: []
- id: lw3_factory_defaults
label: LW3 Restoring the Factory Default Settings
kind: action
command: "CALL /SYS:factoryDefaults()\r\n"
params: []
- id: lw3_control_lock
label: LW3 Locking the Front Panel Buttons
kind: set
command: "SET /MANAGEMENT/UI.ControlLock={lock_status}\r\n" # 1=None, 2=Locked, 3=Force locked
params:
- {name: lock_status, type: integer, description: "1 (None), 2 (Locked), 3 (Force locked)"}
- id: lw3_button_default_function
label: LW3 Setting the Default Function of the Front Panel Buttons
kind: set
command: "SET /MANAGEMENT/UI/BUTTONS/{btn_id}.DefaultFunctionEnable={btn_status}\r\n" # btn_id ∈ B1/B2/B2(Show me), btn_status ∈ Enable/Disable
params:
- {name: btn_id, type: string, description: "B1 (Video select), B2 (Audio select), B2 (Show me)"}
- {name: btn_status, type: string, description: "Enable or Disable"}
- id: lw3_dark_mode
label: LW3 Dark Mode
kind: set
command: "SET /MANAGEMENT/UI/DARKMODE.DarkModeEnable={status}\r\n"
params:
- {name: status, type: string, description: "true (enabled) or false (disabled)"}
- id: lw3_dark_mode_delay
label: LW3 Dark Mode Delay
kind: set
command: "SET /MANAGEMENT/UI/DARKMODE.DarkModeDelay={delay_time}\r\n"
params:
- {name: delay_time, type: integer, description: Delay in seconds}
- id: lw3_run_macro
label: LW3 Running a Macro
kind: action
command: "CALL /CTRL/MACROS:run({macro_name})\r\n"
params:
- {name: macro_name, type: string, description: Name of the macro to run"}
# ───────────────────────── LW3 - Video Port Settings ─────────────────────────
- id: lw3_video_source_port_status
label: LW3 Querying the Status of Source Ports (Video)
kind: query
command: "GET /MEDIA/VIDEO/XP.SourcePortStatus\r\n"
params: []
- id: lw3_video_destination_port_status
label: LW3 Querying the Status of Destination Port (Video)
kind: query
command: "GET /MEDIA/VIDEO/XP.DestinationPortStatus\r\n"
params: []
- id: lw3_video_crosspoint
label: LW3 Querying the Video Crosspoint Setting
kind: query
command: "GET /MEDIA/VIDEO/XP.DestinationConnectionList\r\n"
params: []
- id: lw3_video_disconnect_input
label: LW3 Disconnecting the Video Inputs
kind: action
command: "CALL /MEDIA/VIDEO/XP:switch(0:{out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_switch_input
label: LW3 Switching a Video Input
kind: action
command: "CALL /MEDIA/VIDEO/XP:switch({in}:{out})\r\n"
params:
- {name: in, type: string, description: Input port (e.g. I1..I6)"}
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_connected_source
label: LW3 Querying the Connected Input Port Number
kind: query
command: "GET /MEDIA/VIDEO/{out}.ConnectedSource\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_autoselect_query
label: LW3 Querying the Video Autoselect Settings
kind: query
command: "GET /MEDIA/VIDEO/XP.DestinationPortAutoselect\r\n"
params: []
- id: lw3_video_autoselect_set
label: LW3 Changing the Autoselect Mode (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:setDestinationPortAutoselect({out1_set})\r\n" # 2-letter codes, e.g. O1:EP, O1:D
params:
- {name: out1_set, type: string, description: Semicolon-separated O#:XY pairs, where X ∈ {E,D}, Y ∈ {F,P,L}"}
- id: lw3_video_priority_query
label: LW3 Querying the Input Port Priority (Video)
kind: query
command: "GET /MEDIA/VIDEO/XP.PortPriorityList\r\n"
params: []
- id: lw3_video_priority_set
label: LW3 Changing the Input Port Priority (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:setAutoselectionPriority({pairs})\r\n" # I1\(O1\):4;I2\(O1\):4
params:
- {name: pairs, type: string, description: "Semicolon-separated I#\\(O#\\):<prio> pairs (0..31, 31=skip)"}
- id: lw3_video_mute_source
label: LW3 Muting an Input Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:muteSource({in})\r\n"
params:
- {name: in, type: string, description: Input port, multiple inputs separated by ';'}
- id: lw3_video_unmute_source
label: LW3 Unmuting an Input Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:unmuteSource({in})\r\n"
params:
- {name: in, type: string, description: Input port, multiple inputs separated by ';'}
- id: lw3_video_lock_source
label: LW3 Locking an Input Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:lockSource({in})\r\n"
params:
- {name: in, type: string, description: Input port, multiple inputs separated by ';'}
- id: lw3_video_unlock_source
label: LW3 Unlocking an Input Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:unlockSource({in})\r\n"
params:
- {name: in, type: string, description: Input port, multiple inputs separated by ';'}
- id: lw3_video_mute_destination
label: LW3 Muting an Output Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:muteDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_unmute_destination
label: LW3 Unmuting an Output Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:unmuteDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_lock_destination
label: LW3 Locking an Output Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:lockDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_unlock_destination
label: LW3 Unlocking an Output Port (Video)
kind: action
command: "CALL /MEDIA/VIDEO/XP:unlockDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_video_hdcp_input
label: LW3 Setting the HDCP (Input Port)
kind: set
command: "SET /MEDIA/VIDEO/{in}.HdcpEnable={logical_value}\r\n"
params:
- {name: in, type: string, description: Digital input (I2/I3/I4); analog (I1, I5) unsupported"}
- {name: logical_value, type: string, description: "true (enabled) or false (disabled)"}
- id: lw3_video_hdcp_output
label: LW3 Setting the HDCP (Output Port)
kind: set
command: "SET /MEDIA/VIDEO/{out}.HdcpModeSetting={HDCP_mode}\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- {name: HDCP_mode, type: integer, description: "0 (Auto) or 1 (Always)"}
- id: lw3_video_hdmi_mode
label: LW3 Setting the HDMI Mode (Output Port)
kind: set
command: "SET /MEDIA/VIDEO/{out}.HdmiModeSetting={mode}\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- {name: mode, type: integer, description: "0 (Auto), 1 (DVI), 2 (HDMI 24 bit), 3 (HDMI 30 bit), 4 (HDMI 36 bit)"}
- id: lw3_video_color_space
label: LW3 Setting the Color Space (Output Port)
kind: set
command: "SET /MEDIA/VIDEO/{out}.ColorSpaceSetting={colorspace}\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- {name: colorspace, type: integer, description: "0 (Auto), 1 (RGB), 2 (YCbCr 4:4:4), 3 (YCbCr 4:2:2)"}
- id: lw3_video_free_run_mode
label: LW3 Test Pattern Generator Mode
kind: set
command: "SET /MEDIA/VIDEO/{in}.FreeRunMode={mode}\r\n"
params:
- {name: in, type: string, description: Input port"}
- {name: mode, type: integer, description: "0 (Always off), 1 (Always on), 2 (Auto)"}
- id: lw3_video_free_run_color
label: LW3 Test Pattern Color
kind: set
command: "SET /MEDIA/VIDEO/{in}.FreeRunColor={RGB_code}\r\n" # RR;GG;BB
params:
- {name: in, type: string, description: Input port"}
- {name: RGB_code, type: string, description: "RGB in RR;GG;BB format (decimal, semicolon-separated)"}
- id: lw3_video_free_run_resolution
label: LW3 Test Pattern Resolution
kind: set
command: "SET /MEDIA/VIDEO/{in}.FreeRunResolution={resolution}\r\n"
params:
- {name: in, type: string, description: Input port"}
- {name: resolution, type: integer, description: "0..11 (0=640x480p60, 10=1920x1080p60, 11=1920x1200p60)"}
- id: lw3_video_tps_mode
label: LW3 Setting the TPS Mode
kind: set
command: "SET /REMOTE/{port}.tpsModeSetting={tps_mode}\r\n"
params:
- {name: port, type: string, description: Remote port (e.g. S1)"}
- {name: tps_mode, type: string, description: "A (Auto), H (HDBaseT), L (Longreach), 1 (LPPF1), 2 (LPPF2)"}
# ───────────────────────── LW3 - Audio Port Settings ─────────────────────────
- id: lw3_audio_source_port_status
label: LW3 Querying the Status of Source Ports (Audio)
kind: query
command: "GET /MEDIA/AUDIO/XP.SourcePortStatus\r\n"
params: []
- id: lw3_audio_destination_port_status
label: LW3 Querying the Status of Destination Port (Audio)
kind: query
command: "GET /MEDIA/AUDIO/XP.DestinationPortStatus\r\n"
params: []
- id: lw3_audio_crosspoint
label: LW3 Querying the Audio Crosspoint Setting
kind: query
command: "GET /MEDIA/AUDIO/XP.DestinationConnectionList\r\n"
params: []
- id: lw3_audio_switch_input
label: LW3 Switching Audio Input
kind: action
command: "CALL /MEDIA/AUDIO/XP:switch({in}:{out})\r\n"
params:
- {name: in, type: string, description: Audio input port (e.g. I1..I5)"}
- {name: out, type: string, description: Audio output port (e.g. O1)"}
- id: lw3_audio_autoselect_query
label: LW3 Querying the Audio Autoselect Settings
kind: query
command: "GET /MEDIA/AUDIO/XP.DestinationPortAutoselect\r\n"
params: []
- id: lw3_audio_autoselect_set
label: LW3 Changing the Autoselect Mode (Audio)
kind: action
command: "CALL /MEDIA/AUDIO/XP:setDestinationPortAutoselect({out}:{out_set})\r\n" # e.g. O1:EL
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- {name: out_set, type: string, description: "2-letter code: 1st ∈ {E,D}, 2nd ∈ {F,P,L,S}"}
- id: lw3_audio_priority_query
label: LW3 Querying the Input Port Priority (Audio)
kind: query
command: "GET /MEDIA/AUDIO/XP.PortPriorityList\r\n"
params: []
- id: lw3_audio_priority_set
label: LW3 Changing the Input Port Priority (Audio)
kind: action
command: "CALL /MEDIA/AUDIO/XP:setAutoselectionPriority({pairs})\r\n"
params:
- {name: pairs, type: string, description: "Semicolon-separated I#\\(O#\\):<prio> pairs (0..31)"}
- id: lw3_audio_mute_source
label: LW3 Muting an Audio Input
kind: action
command: "CALL /MEDIA/AUDIO/XP:muteSource({in})\r\n"
params:
- {name: in, type: string, description: Audio input, multiple inputs separated by ';'}
- id: lw3_audio_unmute_source
label: LW3 Unmuting an Audio Input
kind: action
command: "CALL /MEDIA/AUDIO/XP:unmuteSource({in})\r\n"
params:
- {name: in, type: string, description: Audio input, multiple inputs separated by ';'}
- id: lw3_audio_lock_source
label: LW3 Locking an Input Port (Audio)
kind: action
command: "CALL /MEDIA/AUDIO/XP:lockSource({in})\r\n"
params:
- {name: in, type: string, description: Audio input, multiple inputs separated by ';'}
- id: lw3_audio_unlock_source
label: LW3 Unlocking an Input Port (Audio)
kind: action
command: "CALL /MEDIA/AUDIO/XP:unlockSource({in})\r\n"
params:
- {name: in, type: string, description: Audio input, multiple inputs separated by ';'}
- id: lw3_audio_mute_destination
label: LW3 Muting an Audio Output
kind: action
command: "CALL /MEDIA/AUDIO/XP:muteDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_audio_unmute_destination
label: LW3 Unmuting an Audio Output
kind: action
command: "CALL /MEDIA/AUDIO/XP:unmuteDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_audio_lock_destination
label: LW3 Locking an Output (Audio)
kind: action
command: "CALL /MEDIA/AUDIO/XP:lockDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
- id: lw3_audio_unlock_destination
label: LW3 Unlocking an Output (Audio)
kind: action
command: "CALL /MEDIA/AUDIO/XP:unlockDestination({out})\r\n"
params:
- {name: out, type: string, description: Output port (e.g. O1)"}
# ───────────────────────── LW3 - Analog Audio Input Levels ─────────────────────────
- id: lw3_audio_volume
label: LW3 Setting Analog Audio Input Volume
kind: set
command: "SET /MEDIA/AUDIO/{in}.Volume={level}\r\n" # dB attenuation, -95.625..0, step -0.375
params:
- {name: in, type: string, description: Analog audio input (e.g. I1)"}
- {name: level, type: number, description: "Attenuation in dB (-95.625 .. 0, step 0.375)"}
- id: lw3_audio_balance
label: LW3 Setting Analog Audio Input Balance
kind: set
command: "SET /MEDIA/AUDIO/{in}.Balance={level}\r\n" # 0..100 (0=left, 50=centre, 100=right)
params:
- {name: in, type: string, description: Analog audio input (e.g. I5)"}
- {name: level, type: integer, description: "Balance value 0..100 (50 = centre)"}
# ───────────────────────── LW3 - RS-232 Port Configuration ─────────────────────────
- id: lw3_uart_control_protocol
label: LW3 Setting the RS-232 Control Protocol
kind: set
command: "SET /MEDIA/UART/{port}.ControlProtocol={protocol}\r\n" # 0=LW2, 1=LW3
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: protocol, type: integer, description: "0 (LW2) or 1 (LW3)"}
- id: lw3_uart_baud
label: LW3 Setting the RS-232 Baud Rate
kind: set
command: "SET /MEDIA/UART/{port}.Baudrate={baudrate}\r\n" # 0..7
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: baudrate, type: integer, description: "0=4800, 1=7200, 2=9600, 3=14400, 4=19200, 5=38400, 6=57600, 7=115200"}
- id: lw3_uart_databits
label: LW3 Setting the RS-232 Data Bits
kind: set
command: "SET /MEDIA/UART/{port}.DataBits={databits}\r\n"
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: databits, type: integer, description: "8 or 9"}
- id: lw3_uart_stopbits
label: LW3 Setting the RS-232 Stop Bits
kind: set
command: "SET /MEDIA/UART/{port}.StopBits={stopbits}\r\n" # 0=1, 1=1.5, 2=2
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: stopbits, type: integer, description: "0 (1), 1 (1.5), 2 (2)"}
- id: lw3_uart_parity
label: LW3 Setting the RS-232 Parity
kind: set
command: "SET /MEDIA/UART/{port}.Parity={parity}\r\n" # 0=None, 1=Odd, 2=Even
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: parity, type: integer, description: "0 (None), 1 (Odd), 2 (Even)"}
- id: lw3_uart_rs232_mode
label: LW3 Setting the RS-232 Operation Mode
kind: set
command: "SET /MEDIA/UART/{port}.Rs232Mode={mode}\r\n" # 0=Pass-through, 1=Control, 2=Command injection
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: mode, type: integer, description: "0 (Pass-through), 1 (Control), 2 (Command injection)"}
- id: lw3_uart_command_injection
label: LW3 Enabling/Disabling Command Injection
kind: set
command: "SET /MEDIA/UART/{port}.CommandInjectionEnable={logical_value}\r\n"
params:
- {name: port, type: string, description: Serial port (e.g. P1)"}
- {name: logical_value, type: string, description: "true (enabled) or false (disabled)"}
# ───────────────────────── LW3 - RS-232 Message Sending ─────────────────────────
- id: lw3_uart_send_message
label: LW3 Sending an RS-232 Message (ASCII, escapes supported)
kind: action
command: "CALL /MEDIA/UART/P1:sendMessage({message})\r\n"
params:
- {name: message, type: string, description: ASCII message; control chars escapable via \\xNN (e.g. PWR0\\x0D\\x0A)"}
- id: lw3_uart_send_text
label: LW3 Sending an RS-232 Text (ASCII, no escapes)
kind: action
command: "CALL /MEDIA/UART/P1:sendText({message})\r\n"
params:
- {name: message, type: string, description: ASCII text without control characters"}
- id: lw3_uart_send_binary
label: LW3 Sending an RS-232 Binary Message (HEX)
kind: action
command: "CALL /MEDIA/UART/P1:sendBinaryMessage({hex_message})\r\n"
params:
- {name: hex_message, type: string, description: HEX bytes concatenated (no separator), e.g. 433030"}
# ───────────────────────── LW3 - EDID Management ─────────────────────────
- id: lw3_edid_status_query
label: LW3 Querying the Emulated EDIDs
kind: query
command: "GET /EDID.EdidStatus\r\n"
params: []
- id: lw3_edid_validity_query
label: LW3 Querying the Validity of a Dynamic EDID
kind: query
command: "GET /EDID/D/{dynamic}.Validity\r\n"
params:
- {name: dynamic, type: string, description: Dynamic EDID index (e.g. D1)"}
- id: lw3_edid_preferred_resolution
label: LW3 Querying the Preferred Resolution of a User EDID
kind: query
command: "GET /EDID/U/{user}.PreferredResolution\r\n"
params:
- {name: user, type: string, description: User EDID index (e.g. U2)"}
- id: lw3_edid_switch
label: LW3 Emulating an EDID to an Input Port
kind: action
command: "CALL /EDID:switch({source}:{emulated})\r\n" # F49:E2
params:
- {name: source, type: string, description: "Dynamic / user / factory EDID reference (e.g. F49)"}
- {name: emulated, type: string, description: Emulated EDID slot for the input (e.g. E2)"}
- id: lw3_edid_switch_all
label: LW3 Emulating an EDID to All Input Ports
kind: action
command: "CALL /EDID:switchAll({source})\r\n"
params:
- {name: source, type: string, description: Dynamic / user / factory EDID reference (e.g. F47)"}
- id: lw3_edid_copy
label: LW3 Copying an EDID to User Memory
kind: action
command: "CALL /EDID:copy({source}:{user})\r\n"
params:
- {name: source, type: string, description: "dynamic / emulated / factory / user reference (e.g. D1)"}
- {name: user, type: string, description: User EDID index (e.g. U1)"}
- id: lw3_edid_delete
label: LW3 Deleting an EDID from User Memory
kind: action
command: "CALL /EDID:delete({user})\r\n"
params:
- {name: user, type: string, description: User EDID index (e.g. U1)"}
- id: lw3_edid_reset
label: LW3 Resetting the Emulated EDIDs
kind: action
command: "CALL /EDID:reset()\r\n"
params: []
# ───────────────────────── LW3 - Ethernet Port Configuration ─────────────────────────
- id: lw3_dhcp_enable
label: LW3 Setting the DHCP State
kind: set
command: "SET /MANAGEMENT/NETWORK.DhcpEnabled={dhcp_status}\r\n"
params:
- {name: dhcp_status, type: string, description: "true (DHCP) or false (static)"}
- id: lw3_set_static_ip
label: LW3 Changing the IP Address (Static)
kind: set
command: "SET /MANAGEMENT/NETWORK.StaticIpAddress={ip_address}\r\n"
params:
- {name: ip_address, type: string, description: IPv4 address, e.g. 192.168.0.85"}
- id: lw3_set_static_netmask
label: LW3 Changing the Subnet Mask (Static)
kind: set
command: "SET /MANAGEMENT/NETWORK.StaticNetworkMask={netmask}\r\n"
params:
- {name: netmask, type: string, description: IPv4 dot-decimal subnet mask"}
- id: lw3_set_static_gateway
label: LW3 Changing the Gateway Address (Static)
kind: set
command: "SET /MANAGEMENT/NETWORK.StaticGatewayAddress={gw_address}\r\n"
params:
- {name: gw_address, type: string, description: IPv4 dot-decimal gateway address"}
- id: lw3_apply_network_settings
label: LW3 Applying Network Settings
kind: action
command: "CALL /MANAGEMENT/NETWORK:ApplySettings(1)\r\n"
params: []
# ───────────────────────── LW3 - Event Manager (general primitives) ─────────────────────────
# NOTE: Many of the following event-related commands are documented in source but are gated to specific models (-TX140K, -TX140-Plus, WP-UMX-TPS-TX130-Plus-US) and firmware versions. Apply per-feature DIFFERENCE notes when using.
- id: lw3_event_condition
label: LW3 Setting an Event Condition
kind: set
command: "SET /EVENTS/E{loc}.Condition={expression}\r\n" # e.g. /MEDIA/VIDEO/I1.SignalPresent=1
params:
- {name: loc, type: integer, description: Event slot number}
- {name: expression, type: string, description: "Path.property=value (e.g. /MEDIA/VIDEO/I1.SignalPresent=1)"}
- id: lw3_event_condition_inverted
label: LW3 Inverting an Event Condition
kind: set
command: "SET /EVENTS/E{loc}.ConditionInverted={true|false}\r\n"
params:
- {name: loc, type: integer, description: Event slot number}
- {name: inverted, type: string, description: "true / false"}
- id: lw3_event_action
label: LW3 Setting an Event Action by Direct Path
kind: set
command: "SET /EVENTS/E{loc}.Action={expression}\r\n" # e.g. /MEDIA/VIDEO/XP.switch=I4:O1
params:
- {name: loc, type: integer, description: Event slot number}
- {name: expression, type: string, description: "Path.property_or_method=value (no colons/brackets for methods)"}
- id: lw3_event_name
label: LW3 Setting the Name of the Event
kind: set
command: "SET /EVENTS/E{loc}.Name={string}\r\n" # max 20 chars; A-Z a-z 0-9 - _ space
params:
- {name: loc, type: integer, description: Event slot number}
- {name: string, type: string, description: "Event name (max 20 chars, [A-Za-z0-9 _ - ])"}
- id: lw3_event_enabled
label: LW3 Enabling/Disabling the Event
kind: set
command: "SET /EVENTS/E{loc}.Enabled={state}\r\n"
params:
- {name: loc, type: integer, description: Event slot number}
- {name: state, type: string, description: "true (or 1) / false (or 0)"}
- id: lw3_event_delay_timeout
label: LW3 Setting the Condition Timeout
kind: set
command: "SET /EVENTS/E{loc}.ConditionTimeout={time}\r\n" # seconds
params:
- {name: loc, type: integer, description: Event slot number}
- {name: time, type: integer, description: Timeout in seconds (0 = no delay)"}
- id: lw3_event_condition_count
label: LW3 Querying the Condition Counter
kind: query
command: "GET /EVENTS/E{loc}.ConditionCount\r\n"
params:
- {name: loc, type: integer, description: Event slot number"}
- id: lw3_event_action_test
label: LW3 Testing an Action
kind: action
command: "CALL /EVENTS/E{loc}:ActionTest(1)\r\n"
params:
- {name: loc, type: integer, description: Event slot number"}
# ───────────────────────── LW3 - Variables (per-feature DIFFERENCE: TX140K / TX140-Plus / WP-130-Plus-US) ─────────────────────────
- id: lw3_variable_value
label: LW3 Variable Value Assignment
kind: set
command: "SET /CTRL/VARS/V{loc}.Value={value}\r\n"
params:
- {name: loc, type: integer, description: Variable slot (1..30)"}
- {name: value, type: string, description: Numeric or string value; strings ≤15 chars, numbers -2147483648..2147483647"}
- id: lw3_variable_add
label: LW3 Variable Add (with optional min/max clamping)
kind: action
command: "CALL /CTRL/VARS/V{loc}:add({operand};{min};{max})\r\n"
params:
- {name: loc, type: integer, description: Variable slot (1..30)"}
- {name: operand, type: integer, description: Value to add (negative allowed)"}
- {name: min, type: integer, description: Lower limit (optional)"}
- {name: max, type: integer, description: Upper limit (optional)"}
- id: lw3_variable_cycle
label: LW3 Variable Cycle (wraps at min/max)
kind: action
command: "CALL /CTRL/VARS/V{loc}:cycle({operand};{min};{max})\r\n"
params:
- {name: loc, type: integer, description: Variable slot (1..30)"}
- {name: operand, type: integer, description: Value to add (negative allowed)"}
- {name: min, type: integer, description: Lower limit (optional)"}
- {name: max, type: integer, description: Upper limit (optional)"}
- id: lw3_variable_case
label: LW3 Variable Case (interval mapping)
kind: action
command: "CALL /CTRL/VARS/V{loc}:case({cases})\r\n" # e.g. 10 20 15; 26 50 20
params:
- {name: loc, type: integer, description: Variable slot (1..30)"}
- {name: cases, type: string, description: "Semicolon-separated 'min max val' triples (up to 16 cases)"}
- id: lw3_variable_scanf
label: LW3 Variable Scan and Store from LW3 property
kind: action
command: "CALL /CTRL/VARS/V{loc}:scanf({path}.{property};{pattern})\r\n" # escape % as \%
params:
- {name: loc, type: integer, description: Variable slot (1..30)"}
- {name: path, type: string, description: LW3 node path"}
- {name: property, type: string, description: LW3 property name"}
- {name: pattern, type: string, description: "Pattern using %s, %<n>s, %c, %<n>c, %[...], %[^...], %*, literal text; escape % as \\%"}
- id: lw3_variable_printf
label: LW3 Variable Reformat (prefix/insert %s/postfix)
kind: action
command: "CALL /CTRL/VARS/V{loc}:printf({format})\r\n" # e.g. PWR%s
params:
- {name: loc, type: integer, description: Variable slot (1..30)"}
- {name: format, type: string, description: "Format string with %s placeholder; ASCII only; result max 15 chars"}
# ───────────────────────── LW3 - GPIO Port Configuration (per-feature DIFFERENCE: TX130/TX140/TX140K/TX140-Plus only) ─────────────────────────
- id: lw3_gpio_direction
label: LW3 Setting the Direction of a GPIO Pin
kind: set
command: "SET /MEDIA/GPIO/{port}.Direction={direction}\r\n" # I / O
params:
- {name: port, type: string, description: GPIO port (e.g. P1)"}
- {name: direction, type: string, description: "I (Input) or O (Output)"}
- id: lw3_gpio_output
label: LW3 Setting the Output Level of a GPIO Pin
kind: set
command: "SET /MEDIA/GPIO/{port}.Output={value}\r\n" # H / L
params:
- {name: port, type: string, description: GPIO port (e.g. P1)"}
- {name: value, type: string, description: "H (high) or L (low)"}
- id: lw3_gpio_toggle
label: LW3 Toggling the Level of a GPIO Pin
kind: action
command: "CALL /MEDIA/GPIO/{port}:toggle()\r\n"
params:
- {name: port, type: string, description: GPIO port (e.g. P1)"}
# ───────────────────────── LW3 - Ethernet Message Sending ─────────────────────────
- id: lw3_tcp_message
label: LW3 Sending a TCP Message (ASCII, escapes supported)
kind: action
command: "CALL /MEDIA/ETHERNET:tcpMessage({ip}:{port}={message})\r\n"
params:
- {name: ip, type: string, description: Target IPv4 address"}
- {name: port, type: integer, description: Target TCP port"}
- {name: message, type: string, description: ASCII payload, control chars escapable via \\xNN"}
- id: lw3_tcp_text
label: LW3 Sending a TCP Text (ASCII, no escapes)
kind: action
command: "CALL /MEDIA/ETHERNET:tcpText({ip}:{port}={text})\r\n"
params:
- {name: ip, type: string, description: Target IPv4 address"}
- {name: port, type: integer, description: Target TCP port"}
- {name: text, type: string, description: ASCII text without control characters"}
- id: lw3_tcp_binary
label: LW3 Sending a TCP Binary Message (HEX)
kind: action
command: "CALL /MEDIA/ETHERNET:tcpBinary({ip}:{port}={hex_message})\r\n"
params:
- {name: ip, type: string, description: Target IPv4 address"}
- {name: port, type: integer, description: Target TCP port"}
- {name: hex_message, type: string, description: HEX bytes concatenated (no separator required)"}
- id: lw3_udp_message
label: LW3 Sending a UDP Message (ASCII, escapes supported)
kind: action
command: "CALL /MEDIA/ETHERNET:udpMessage({ip}:{port}={message})\r\n"
params:
- {name: ip, type: string, description: Target IPv4 address"}
- {name: port, type: integer, description: Target UDP port"}
- {name: message, type: string, description: ASCII payload"}
- id: lw3_udp_text
label: LW3 Sending a UDP Text (ASCII, no escapes)
kind: action
command: "CALL /MEDIA/ETHERNET:udpText({ip}:{port}={text})\r\n"
params:
- {name: ip, type: string, description: Target IPv4 address"}
- {name: port, type: integer, description: Target UDP port"}
- {name: text, type: string, description: ASCII text"}
- id: lw3_udp_binary
label: LW3 Sending a UDP Binary Message (HEX)
kind: action
command: "CALL /MEDIA/ETHERNET:udpBinary({ip}:{port}={hex_message})\r\n"
params:
- {name: ip, type: string, description: Target IPv4 address"}
- {name: port, type: integer, description: Target UDP port"}
- {name: hex_message, type: string, description: HEX bytes concatenated"}
- id: lw3_wake_on_lan
label: LW3 Wake-on-LAN
kind: action
command: "CALL /MEDIA/ETHERNET:wakeOnLan({mac_address})\r\n"
params:
- {name: mac_address, type: string, description: Target MAC in hex-colon format (e.g. AA:BB:CC:22:14:FF)"}
# ───────────────────────── LW3 - IR (Infrared) Port Configuration ─────────────────────────
- id: lw3_ir_command_injection
label: LW3 Enabling/Disabling IR Command Injection Mode
kind: set
command: "SET /MEDIA/IR/{port}.CommandInjectionEnable={logical_value}\r\n"
params:
- {name: port, type: string, description: IR port (e.g. S1)"}
- {name: logical_value, type: string, description: "true (enabled) or false (disabled)"}
- id: lw3_ir_enable_modulation
label: LW3 Enabling/Disabling IR Output Signal Modulation
kind: set
command: "SET /MEDIA/IR/{port}.EnableModulation={logical_value}\r\n"
params:
- {name: port, type: string, description: IR output port (e.g. D1)"}
- {name: logical_value, type: string, description: "true / false"}
- id: lw3_ir_send_pronto_hex_little_endian
label: LW3 Sending Pronto Hex Codes (Little-endian)
kind: action
command: "CALL /MEDIA/IR/{output_port}:sendProntoHex({hex_code})\r\n"
params:
- {name: output_port, type: string, description: "IR output port (D1 = Local Infra, D2 = TPS Infra)"}
- {name: hex_code, type: string, description: Pronto hex code, max 765 chars (little-endian), no spaces"}
- id: lw3_ir_send_pronto_hex_big_endian
label: LW3 Sending Pronto Hex Codes (Big-endian)
kind: action
command: "CALL /MEDIA/IR/{output_port}:sendProntoHexBigEndian({hex_code})\r\n"
params:
- {name: output_port, type: string, description: "IR output port (D1 = Local Infra, D2 = TPS Infra)"}
- {name: hex_code, type: string, description: Pronto hex code, max 765 chars (big-endian), no spaces"}
# ───────────────────────── LW3 - CEC (per-feature DIFFERENCE: TX140K / TX140-Plus / WP-130-Plus-US) ─────────────────────────
- id: lw3_cec_send_click
label: LW3 CEC Press&Release (Push-button) Commands
kind: action
command: "CALL /MEDIA/CEC/{port}:sendClick({command})\r\n"
params:
- {name: port, type: string, description: Video port (e.g. I2, O1)"}
- {name: command, type: string, description: "CEC command name (e.g. ok, power_on, power_off, volume_up, mute, play, stop, select_media_1, ...)"}
- id: lw3_cec_send
label: LW3 CEC Send Command
kind: action
command: "CALL /MEDIA/CEC/{port}:send({command})\r\n"
params:
- {name: port, type: string, description: Video port (I1-I4 or O1-O2)"}
- {name: command, type: string, description: "CEC command (image_view_on, standby, text_view_on, active_source, get_cec_version, set_osd, clear_osd, give_power_status)"}
- id: lw3_cec_set_osd_string
label: LW3 CEC Set OSD String
kind: set
command: "SET /MEDIA/CEC/{port}.OsdString={text}\r\n"
params:
- {name: port, type: string, description: Video port (I1-I4 or O1-O2)"}
- {name: text, type: string, description: "OSD string; [A-Za-z0-9._-], max 14 chars"}
- id: lw3_cec_send_hex
label: LW3 CEC Send Command (Hex Format)
kind: action
command: "CALL /MEDIA/CEC/{port}:sendHex({hex_code})\r\n"
params:
- {name: port, type: string, description: Video port (I1-I4 or O1-O2)"}
- {name: hex_code, type: string, description: CEC frame in hex, max 30 chars (15 bytes)"}
- id: lw3_cec_last_received
label: LW3 CEC Query Last Received CEC Message
kind: query
command: "GET /MEDIA/CEC/{port}.LastReceivedMessage\r\n"
params:
- {name: port, type: string, description: Video port (I1-I4 or O1-O2)"}
# ───────────────────────── LW3 - RS-232 Message Recognizer (per-feature DIFFERENCE: TX140K/TX140-Plus only) ─────────────────────────
- id: lw3_rs232_recognizer_enable
label: LW3 Enabling/Disabling RS-232 Recognizer
kind: set
command: "SET /MEDIA/UART/{serial_port}.RecognizerEnable={recognizer_enable}\r\n"
params:
- {name: serial_port, type: string, description: "Serial port (P1 or P2)"}
- {name: recognizer_enable, type: string, description: "true / false"}
- id: lw3_rs232_recognizer_delimiter
label: LW3 Setting RS-232 Recognizer Delimiter
kind: set
command: "SET /MEDIA/UART/RECOGNIZER.DelimiterHex={delimiter}\r\n"
params:
- {name: delimiter, type: string, description: Delimiter in hex, max 8 chars (16 hex digits), e.g. 3a"}
- id: lw3_rs232_recognizer_timeout
label: LW3 Setting RS-232 Recognizer Timeout
kind: set
command: "SET /MEDIA/UART/RECOGNIZER.TimeOut={timeout}\r\n"
params:
- {name: timeout, type: integer, description: Timeout in ms (0=disabled, min 10)"}
- id: lw3_rs232_recognizer_active_timeout
label: LW3 Setting RS-232 Recognizer Active Timeout
kind: set
command: "SET /MEDIA/UART/RECOGNIZER.ActivePropertyTimeout={a_timeout}\r\n"
params:
- {name: a_timeout, type: integer, description: Active timeout in ms (0..255, default 50)"}
- id: lw3_rs232_recognizer_rx
label: LW3 Querying Last RS-232 Recognized Message (String)
kind: query
command: "GET /MEDIA/UART/RECOGNIZER.Rx\r\n"
params: []
- id: lw3_rs232_recognizer_rx_hex
label: LW3 Querying Last RS-232 Recognized Message (Hex)
kind: query
command: "GET /MEDIA/UART/RECOGNIZER.RxHex\r\n"
params: []
- id: lw3_rs232_recognizer_active_rx
label: LW3 Querying Last RS-232 Active Message (String)
kind: query
command: "GET /MEDIA/UART/RECOGNIZER.ActiveRx\r\n"
params: []
- id: lw3_rs232_recognizer_active_rx_hex
label: LW3 Querying Last RS-232 Active Message (Hex)
kind: query
command: "GET /MEDIA/UART/RECOGNIZER.ActiveRxHex\r\n"
params: []
- id: lw3_rs232_recognizer_clear
label: LW3 Clearing Last RS-232 Recognized Stored Messages
kind: action
command: "CALL /MEDIA/UART/RECOGNIZER:clear()\r\n"
params: []
# ───────────────────────── LW3 - TCP Clients (per-feature DIFFERENCE: TX140K/TX140-Plus/WP-130-Plus-US) ─────────────────────────
- id: lw3_tcp_server_ip
label: LW3 Setting the TCP Server IP Address
kind: set
command: "SET /CTRL/TCP/C{loc}.ServerIP={ip_address}\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- {name: ip_address, type: string, description: Target server IPv4 address"}
- id: lw3_tcp_server_port
label: LW3 Setting the TCP Server Port
kind: set
command: "SET /CTRL/TCP/C{loc}.ServerPort={port_no}\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- {name: port_no, type: integer, description: Target server TCP port"}
- id: lw3_tcp_connect
label: LW3 Connecting to a TCP Server
kind: action
command: "CALL /CTRL/TCP/C{loc}:connect()\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_disconnect
label: LW3 Disconnecting from a TCP Server
kind: action
command: "CALL /CTRL/TCP/C{loc}:disconnect()\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_timeout
label: LW3 Setting the TCP Recognizer Timeout
kind: set
command: "SET /CTRL/TCP/C{loc}.TimeOut={timeout}\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- {name: timeout, type: integer, description: Timeout in ms (0=disabled, min 10)"}
- id: lw3_tcp_active_timeout
label: LW3 Setting the TCP Active Property Timeout
kind: set
command: "SET /CTRL/TCP/C{loc}.ActivePropertyTimeout={a_timeout}\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- {name: a_timeout, type: integer, description: Active timeout in ms (0..255, default 50)"}
- id: lw3_tcp_delimiter
label: LW3 Setting the TCP Recognizer Delimiter
kind: set
command: "SET /CTRL/TCP/C{loc}.DelimiterHex={delimiter}\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- {name: delimiter, type: string, description: Delimiter in hex, max 8 chars (16 hex digits), e.g. 00"}
- id: lw3_tcp_rx
label: LW3 Querying Last TCP Recognized Message (String)
kind: query
command: "GET /CTRL/TCP/C{loc}.Rx\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_rx_hex
label: LW3 Querying Last TCP Recognized Message (Hex)
kind: query
command: "GET /CTRL/TCP/C{loc}.RxHex\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_active_rx
label: LW3 Querying Last TCP Active Message (String)
kind: query
command: "GET /CTRL/TCP/C{loc}.ActiveRx\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_active_rx_hex
label: LW3 Querying Last TCP Active Message (Hex)
kind: query
command: "GET /CTRL/TCP/C{loc}.ActiveRxHex\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_clear
label: LW3 Clearing Last TCP Recognized Stored Message
kind: action
command: "CALL /CTRL/TCP/C{loc}:clear()\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- id: lw3_tcp_action_trigger
label: LW3 Running an Immediate Event Action on TCP Recognizer
kind: set
command: "SET /CTRL/TCP/C{loc}.ActionTrigger={event_nr}\r\n"
params:
- {name: loc, type: integer, description: TCP client slot (1..3)"}
- {name: event_nr, type: integer, description: Event number (without letter E) to trigger"}
# ───────────────────────── LW3 - HTTP Messaging (per-feature DIFFERENCE: TX140K/TX140-Plus/WP-130-Plus-US) ─────────────────────────
- id: lw3_http_server_ip
label: LW3 Setting the HTTP Target IP Address
kind: set
command: "SET /CTRL/HTTP/C1.ServerIP={ip_address}\r\n"
params:
- {name: ip_address, type: string, description: Target IPv4 address"}
- id: lw3_http_server_port
label: LW3 Setting the HTTP Target Port
kind: set
command: "SET /CTRL/HTTP/C1.ServerPort={port_no}\r\n"
params:
- {name: port_no, type: integer, description: Target TCP port (typically 80 for HTTP)"}
- id: lw3_http_file
label: LW3 Setting the HTTP Target Path
kind: set
command: "SET /CTRL/HTTP/C1.File={path}\r\n"
params:
- {name: path, type: string, description: URL path on target (e.g. /putxml)"}
- id: lw3_http_header
label: LW3 Setting the HTTP Message Header
kind: set
command: "SET /CTRL/HTTP/C1.Header={header_text}\r\n" # CRLF as \r\n
params:
- {name: header_text, type: string, description: HTTP header lines separated by \\r\\n (auto-escaped when typing Enter in LDC)"}
- id: lw3_http_post
label: LW3 Sending an HTTP Post Message
kind: action
command: "CALL /CTRL/HTTP/C1:post({body_text})\r\n"
params:
- {name: body_text, type: string, description: HTTP body / payload"}
- id: lw3_http_put
label: LW3 Sending an HTTP Put Message
kind: action
command: "CALL /CTRL/HTTP/C1:put({body_text})\r\n"
params:
- {name: body_text, type: string, description: HTTP body / payload"}
# ───────────────────────── LW3 - Cleartext Login Protection (per-feature DIFFERENCE: TX140K/TX140-Plus/WP-130-Plus-US) ─────────────────────────
- id: lw3_login_set_password
label: LW3 Setting the Login Password
kind: action
command: "CALL /LOGIN:setPassword({password})\r\n"
params:
- {name: password, type: string, description: New login password (cleartext)"}
- id: lw3_login_login
label: LW3 Logging into the Device
kind: action
command: "CALL /LOGIN:login({password})\r\n"
params:
- {name: password, type: string, description: Login password (cleartext)"}
- id: lw3_login_logout
label: LW3 Logging out of the Device
kind: action
command: "CALL /LOGIN:logout({password})\r\n"
params:
- {name: password, type: string, description: Login password (cleartext)"}
- id: lw3_login_enable
label: LW3 Enabling/Disabling the Cleartext Login Function
kind: set
command: "SET /LOGIN.LoginEnable={login_state}\r\n"
params:
- {name: login_state, type: string, description: "true (1) / false (0)"}
# ───────────────────────── LW3 - Ethernet Tool Kit (per-feature DIFFERENCE: TX140K/TX140-Plus/WP-130-Plus-US) ─────────────────────────
- id: lw3_mac_filter_address
label: LW3 Setting a MAC Filter Entry
kind: set
command: "SET /MANAGEMENT/MACFILTER.MACaddress{loc}={mac};{receive};{send};{name}\r\n"
params:
- {name: loc, type: integer, description: Filter entry location (1..8)"}
- {name: mac, type: string, description: "MAC address in hex:colon format (e.g. 04:D4:C4:4D:01:43)"}
- {name: receive, type: string, description: "true (allow querying) / false"}
- {name: send, type: string, description: "true (allow parameter setting) / false"}
- {name: name, type: string, description: "Optional name, max 5 ASCII chars"}
- id: lw3_mac_filter_enable
label: LW3 Enabling/Disabling MAC Filter
kind: set
command: "SET /MANAGEMENT/MACFILTER.FilterEnable={logical_value}\r\n"
params:
- {name: logical_value, type: string, description: "true / false"}
- id: lw3_servicefilter_lw2
label: LW3 Blocking the LW2 Control Port
kind: set
command: "SET /MANAGEMENT/SERVICEFILTER.Lw2Enabled={port_mode}\r\n"
params:
- {name: port_mode, type: string, description: "true (port open) / false (port blocked)"}
- id: lw3_servicefilter_http
label: LW3 Blocking the HTTP Port
kind: set
command: "SET /MANAGEMENT/SERVICEFILTER.HttpEnabled={port_mode}\r\n"
params:
- {name: port_mode, type: string, description: "true (port open) / false (port blocked)"}
- id: lw3_hostname
label: LW3 Setting the Hostname
kind: set
command: "SET /MANAGEMENT/NETWORK.HostName={unique_name}\r\n"
params:
- {name: unique_name, type: string, description: "Hostname 1..64 chars; [A-Za-z0-9.-]; -/. not last char"}
- id: lw3_event_trigger_condition
label: LW3 Triggering a Condition Manually
kind: action
command: "CALL /EVENTS/E{loc}:triggerCondition(1)\r\n"
params:
- {name: loc, type: integer, description: Event slot number"}
Feedbacks
# LW3 responses the source explicitly documents. LW2 also returns values but is omitted
# here because the spec already exposes those endpoints as queries (Actions with kind: query).
# Use the same GET/SET/CALL commands; the response line carries the value.
- id: video_source_port_status
type: string
description: "Per-input 5-char ASCII status: char 1 = Mute/Lock (T/L/M/U), chars 2-5 = 2-byte HEX of audio/HDCP/signal/connection. Example: M00AA;T00AF;T00AA;T00EF;T000A;T002E"
- id: video_destination_port_status
type: string
description: "Per-output 5-char ASCII status (Mute/Lock + 2-byte HEX). Example: M00BF"
- id: video_crosspoint_connection
type: string
description: "Currently connected input per output (e.g. I1, I5). Returned by /MEDIA/VIDEO/XP.DestinationConnectionList"
- id: video_connected_source
type: string
description: "Currently connected input for the given output (e.g. I1). Returned by /MEDIA/VIDEO/<out>.ConnectedSource"
- id: video_autoselect
type: string
description: "2-letter code per output: 1st ∈ {E,D}, 2nd ∈ {F,P,L}. Example: EL = Enabled Last-detect"
- id: video_port_priority
type: string
description: "Per-output priority order of input ports, e.g. 0,1,2,3,4,5 (0=highest, 31=skip)"
- id: audio_source_port_status
type: string
description: "Per-input 5-char ASCII status for audio layer. Example: T000F;M000B;T000A;T000A;T000C"
- id: audio_destination_port_status
type: string
description: "Per-output 5-char ASCII status for audio layer. Example: T000F"
- id: audio_crosspoint_connection
type: string
description: "Currently connected audio input per output (e.g. I5)"
- id: audio_autoselect
type: string
description: "2-letter code per output: 1st ∈ {E,D}, 2nd ∈ {F,P,L,S}"
- id: audio_port_priority
type: string
description: "Per-output priority order of audio input ports"
- id: edid_status
type: string
description: "Semicolon-separated list of <source>:<emulated> pairs (e.g. D1:E1;D1:E2). Returned by /EDID.EdidStatus"
- id: edid_dynamic_validity
type: boolean
description: "true / false. Returned by /EDID/D/<dynamic>.Validity"
- id: edid_user_preferred_resolution
type: string
description: "Preferred resolution string for the queried User EDID (e.g. 1920x1080p60.00Hz). Returned by /EDID/U/<user>.PreferredResolution"
- id: ip_status
type: string
description: "LW2 IP status: <type>;<ip_address>;<subnet_mask>;<gateway_addr> (type 0=static, 1=dynamic). Example: 0;192.168.0.100;255.255.255.0;192.168.0.1"
- id: control_protocol
type: string
description: "LW2 current control protocol (#1=LW2 or #2=LW3 per source). Returned by {P_?}"
- id: product_name
type: string
description: "Read-only product name. Example: UMX-TPS-TX140-Plus"
- id: firmware_version
type: string
description: "Firmware version string. Example: 1.6.0b13 r99 (LW2), 1.3.2b1 r43 (LW3)"
- id: serial_number
type: string
description: "8-digit serial number. Example: 5A004254"
- id: health_status
type: string
description: "Voltages and temperatures. Example: CPU 12.16V 5.03V 3.30V 3.33V 3.37V 1.30V 1.86V 1.00V 53.22C 53.26C"
- id: installed_boards
type: string
description: "SL# 0 <MB_DESC> lines. Example: SL# 0 UMX-TPS-TX140K"
- id: firmware_controllers
type: string
description: "Per-controller firmware (CF <desc>...). Example: CF UMX-TPS-TX140K 1.5.0b1 r53"
- id: device_label
type: string
description: "User-editable label, max 39 ASCII chars. Example: UMX-TPS-TX140_ConferenceRoom"
- id: rs232_local_format
type: string
description: "Current local RS-232 format (e.g. 9600,8N1). Returned by {RS232_LOCAL_FORMAT=?} or /MEDIA/UART/P1.Rs232Confguration"
- id: cec_last_received_message
type: string
description: "Last CEC message received from connected device. Example: give_power_status"
- id: uart_recognizer_rx
type: string
description: "Last RS-232 recognized message (string, max 12 bytes). Example: Login:"
- id: uart_recognizer_rx_hex
type: string
description: "Last RS-232 recognized message in hex. Example: FF1F4C6F67696E3A"
- id: uart_recognizer_active_rx
type: string
description: "Last RS-232 active recognized message (string). Cleared after ActivePropertyTimeout"
- id: uart_recognizer_active_rx_hex
type: string
description: "Last RS-232 active recognized message (hex). Cleared after ActivePropertyTimeout"
- id: tcp_recognizer_rx
type: string
description: "Last TCP recognized message (string, max 128 bytes). Example: PWR_off"
- id: tcp_recognizer_rx_hex
type: string
description: "Last TCP recognized message in hex. Example: 5057525F6F6666"
- id: tcp_recognizer_active_rx
type: string
description: "Last TCP active recognized message (string, max 12 bytes). Example: AudOut+"
- id: tcp_recognizer_active_rx_hex
type: string
description: "Last TCP active recognized message (hex). Example: 4175644F75742B00"
- id: event_condition_count
type: integer
description: "Number of times the event condition has been detected and triggered. Reset at boot"
- id: event_external_condition_trigger_count
type: integer
description: "Number of times the event condition has been triggered externally. Reset at boot"
Variables
# Source documents user-defined Variables (§7.11) on certain models (TX140K / TX140-Plus / WP-130-Plus-US).
# 30 slots; numeric (-2147483648..2147483647) or string (≤15 chars); non-volatile.
- id: var_value
type: number_or_string
description: "Current value of variable slot V<loc>. Numeric (-2147483648..2147483647) or string (max 15 chars)"
address: "/CTRL/VARS/V{loc}.Value"
- id: var_loc
type: integer
description: "Variable slot index (1..30)"
- id: var_operand
type: integer
description: "Value added/subtracted in add/cycle methods"
- id: var_min
type: integer
description: "Optional minimum clamp value"
- id: var_max
type: integer
description: "Optional maximum clamp value"
- id: var_case_min
type: integer
description: "Minimum value of an interval in the case() method"
- id: var_case_max
type: integer
description: "Maximum value of an interval in the case() method"
- id: var_case_newval
type: integer
description: "Replacement value applied when value falls within the interval"
- id: var_scanf_pattern
type: string
description: "Printf-style scanf pattern: %s, %<n>s, %c, %<n>c, %[chars], %[^chars], %*, literal text. Escape % as \\%"
- id: var_printf_format
type: string
description: "Format string with literal prefix, %s placeholder, and literal postfix"
Events
# LW3 unsolicited notifications (CHG) the source documents.
- id: lw3_change_notification
type: string
description: "Asynchronous 'change message' notification: 'CHG <node_path>.<property>=<value>'. Sent after subscription (OPEN/OPEN *) when subscribed property changes. Example: 'CHG /MEDIA/AUDIO/O3.VolumePercent=50.00'"
- id: lw3_subscription_open_response
type: string
description: "Response prefix 'o-' returned when subscribing (OPEN) to a node. Example: 'o- /MEDIA/VIDEO'"
- id: lw3_subscription_close_response
type: string
description: "Response prefix 'c-' returned when unsubscribing (CLOSE) from a node. Example: 'c- /MEDIA/VIDEO'"
Macros
# Source documents LW3 macros on certain models (TX140K / TX140-Plus / WP-130-Plus-US). Max 50 macros per device.
# Storage: non-volatile internal preset slot; uploaded as .LW3 file via LDC.
# Format: ';myDeviceMacros' header, ';Begin <macro_name>' / '<LW3 commands>' / ';End <macro_name>' body.
- id: macro_run
type: string
description: "Run a stored macro by name. Command: 'CALL /CTRL/MACROS:run(<macro_name>)'. Example macro body (CALL commands with method syntax): 'CALL /MEDIA/VIDEO/XP:unmuteSource(I3)' / 'CALL /MEDIA/VIDEO/XP:switch(I3:O1;I3:O2)'"
- id: macro_name
type: string
description: "Unique macro name within the preset"
- id: macro_commands
type: string
description: "Semicolon- or newline-separated LW3 SET and CALL commands (syntax not checked at upload; errors not reported)"
Safety
confirmation_required_for:
- factory_defaults_reset # LW2 {FACTORY=ALL} and LW3 CALL /SYS:factoryDefaults() reset all settings
- firmware_update # LW3 firmware update mode forced via front panel (Show Me pressed at power-on)
interlocks: []
# UNRESOLVED: source contains a CE/CEC safety note about ordering transmission but does not
# describe hardware interlocks; Cleartext Login blocks configuration but is itself optional
# (and gated to higher-tier models).
Notes
- Default static IP per source: 192.168.0.100.
- Default RS-232 settings per source example: 9600, 8N1 (LDC CLI example uses COM1:57600 for serial discovery). Both are configurable; baud rate options are 4800, 7200, 9600, 14400, 19200, 38400, 57600, 115200; data bits 8 or 9; parity N/O/E; stop bits 1, 1.5, 2.
- LW2 framing: commands wrapped in
{ ... }, responses in( ... ), line-terminated CrLf (0x0D, 0x0A). All inputs are converted to uppercase; responses may mix case. - LW3 framing: ASCII, all command/response lines terminated with CrLf ("\r\n"). Max line length 800 bytes.
- LW3 response prefixes:
pr(read-only property),pw(read-write property),ns(child node),n-(node),nm(node manual),pm(property manual),m-(method),mm(method manual),mO(method OK),mF(method failed),pE(property error),mE(method error),nE(node error),o-(subscribe ok),c-(unsubscribe ok),CHG(change notification). - LW3 escaping: special characters
\ { } # % ( ) \r \n \tmust be backslash-escaped inside parameter values; hex bytes can be inserted as\xNN(e.g.CALL /MEDIA/UART/P1:sendMessage(PWR0\x0D\x0A)). - LW3 signature prefix: optional 4-digit hex before a command groups its response lines between
{...}braces (e.g.1700#GET /EDID.*). - LW3 subscription model:
OPEN <path>/OPEN <path>/*to subscribe;CLOSEto unsubscribe; per-connection. Re-subscribing required after socket break. - The source is a multi-model family manual; some commands are gated to specific variants and firmware versions:
- Cleartext Login (LOGIN:*), Wake-on-LAN, Hostname, MAC filter, Service filter (LW2/HTTP port blocking): TX140K / TX140-Plus / WP-UMX-TPS-TX130-Plus-US from FW v1.5.0b4 (UMX) / v1.5.0b6 (FP/WP).
- CEC send/sendClick/sendHex/OsdString: TX140K / TX140-Plus from v1.3.0b11, WP-130-Plus-US from v1.4.0b8.
- HTTP Clients & Salvo HTTP: TX140K / TX140-Plus from v1.5.0b4, WP-130-Plus-US from v1.5.0b6.
- TCP Clients / TCP Message Recognizer: TX140K / TX140-Plus from v1.5.0b4, WP-130-Plus-US from v1.5.0b6.
- Macros / Variables: TX140K / TX140-Plus from v1.5.0b4, WP-130-Plus-US from v1.5.0b6.
- RS-232 Message Recognizer: TX140K / TX140-Plus from v1.3.0b11, WP-130-Plus-US from v1.4.0b8.
- GPIO port: TX130, TX140, TX140K, TX140-Plus models ONLY (FP-UMX-TPS-TX120 is NOT listed in §3.4.13 as having a GPIO port — section applies to UMX-TPS-TX130/TX140/TX140K/TX140-Plus only).
- SalvoHttp endpoint (per source §5.15): POST to
<IP_address>/protocol.lw3delivers a batch of LW3 commands to the Lightware device; LW3 responses are not sent back to the poster. If Cleartext Login is enabled, login must be the first command. - HTTP Clients from the Lightware device to third-party devices: HTTP only (no HTTPS); POST/PUT only — response is just an ACK, not suitable for parameter querying.
Provenance
source_domains:
- assets.prod.pim.lightware.com
- lightware.com
source_urls:
- https://assets.prod.pim.lightware.com/assets/File-Downloads/Guides-and-Manuals/User-Manual/UMX-TPS-TX100_Series_UserManual.pdf
- https://lightware.com
retrieved_at: 2026-08-11T09:46:43.951Z
last_checked_at: 2026-08-19T09:30:07.196Z
Verification Summary
verdict: verified
checked_at: 2026-08-19T09:30:07.196Z
matched_actions: 184
action_count: 184
confidence: medium
summary: "All 184 spec actions match source verbatim; transport parameters (port 10001/6107, baud 9600 8N1, IP 192.168.0.100) confirmed; coverage ratio well above 0.9 floor. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "EVENTS/E<loc>.ConditionEndCheck"
- "EVENTS/E<loc>.ConditionTimeoutContinuous"
- "EVENTS/E<loc>.ConditionTimeoutPending"
- "EVENTS/E<loc>.ConditionDetect"
- "OPEN /MEDIA/VIDEO"
- "CLOSE /MEDIA/VIDEO"
- "/MEDIA/UART/<port>.CommandInjectionStatus"
- "{GPIO<pin_nr>=<dir>;<level>}"
- "source is a multi-model family manual; per-variant applicability of some commands (Macros, Variables, GPIO, CEC, HTTP, Cleartext Login, Wake-on-LAN, Message Recognizers, MAC filter, port blocking, hostname) is gated by firmware version, model suffix (-130/-140/-140K/-140-Plus/FP-/WP-) and is not always called out for the FP-UMX-TPS-TX120 specifically. Treat all conditional features as UNRESOLVED for this base spec."
- "source does not document flow-control explicitly"
- "source has no dedicated power-on / power-off command for FP-UMX-TPS-TX120; only reboot / factory-reset"
- "source contains a CE/CEC safety note about ordering transmission but does not"
- "- Specific applicability of optional features to the FP-UMX-TPS-TX120 sub-model not always stated in source; many are explicitly listed for TX140K / TX140-Plus / WP-130-Plus-US only."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0