Summary
ViewSonic CDE5010 Series commercial display / digital signage panel controllable over RS-232C using an 8-byte ASCII command packet plus CR. The protocol defines a Set-Function block, a Get-Function block, and a Remote Control Pass-through mode that surfaces front-panel/RCU key presses to the host. Multiple displays can be daisy-chained via RS-232 OUT / IN; each display is addressed by a monitor ID (01-98, 99 = broadcast).
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not stated in source (parity/data/stop fixed; flow not mentioned)
connector: DSUB-9 Male # Pin 2 RXD (in), Pin 3 TXD (out), Pin 5 GND; crossover (null-modem) cable required for PC use
auth:
type: none # inferred: no auth procedure in source
addressing:
device_id_range: "01-98" # monitor ID; default 01; 99 = broadcast (no reply)
Traits
- powerable # inferred from Set Power on/off (cmd "!") and Get-Power status (cmd "l")
- routable # inferred from Set Input Select (cmd '"') and PIP-Input (cmd "7")
- queryable # inferred from 20+ Get-Function commands
- levelable # inferred from Brightness / Contrast / Volume / Bass / Treble / Sharpness / Color / Tint set commands
Actions
# Frame format (all set/get actions, derived from source 11.3 protocol description):
# Length(1='8') + ID(2 ASCII digits) + Type(1: 's' set, 'g' get) + Command(1 ASCII) + Value1(1) + Value2(1) + Value3(1) + CR(0x0D)
# Total 9 bytes; Length byte counts 8 bytes excluding CR.
# Templates below use {id} = 2-digit ASCII monitor ID (e.g. "01"); broadcast = "99".
# {value} = exactly 3 ASCII bytes per source value-range column.
# -------------------- Set-Function: Basic --------------------
- id: set_power
label: Set Power (Standby / On)
kind: action
command: "8{id}s!{value}\r" # cmd '!' = 0x21
params:
- name: id
type: string
description: 2-digit ASCII monitor ID 01-98, or 99 for broadcast
- name: value
type: enum
values: ["000", "001"] # 000 STBY, 001 ON
description: 000 = Standby, 001 = Power on
- id: set_input_select
label: Set Input Select
kind: action
command: "8{id}s\"{value}\r" # cmd '"' = 0x22
params:
- name: id
type: string
- name: value
type: enum
values: ["000","001","002","003","004","014","024","034","005","006","016","026","007","008","009","00A"]
description: |
000 TV, 001 AV, 002 S-Video, 003 YPbPr, 004 HDMI1, 014 HDMI2, 024 HDMI3, 034 HDMI4,
005 DVI, 006 VGA1, 016 VGA2, 026 VGA3, 007 Slot-in PC (OPS/SDM)/HDBT,
008 Internal memory, 009 DP, 00A Embedded/Main (Android).
Source note: HEX of "00A" is 30 30 41.
- id: set_brightness
label: Set Brightness
kind: action
command: "8{id}s${value}\r" # cmd '$' = 0x24
params:
- name: id
type: string
- name: value
type: string
description: 3-digit ASCII, 000-100
- id: set_power_lock
label: Set Power Lock
kind: action
command: "8{id}s4{value}\r" # cmd '4' = 0x34
params:
- name: id
type: string
- name: value
type: enum
values: ["000", "001"] # 000 Unlock, 001 Lock
- id: set_volume
label: Set Volume
kind: action
command: "8{id}s5{value}\r" # cmd '5' = 0x35
params:
- name: id
type: string
- name: value
type: string
description: 000-100 absolute; 900 = volume down (-1); 901 = volume up (+1)
- id: set_mute
label: Set Mute
kind: action
command: "8{id}s6{value}\r" # cmd '6' = 0x36
params:
- name: id
type: string
- name: value
type: enum
values: ["000", "001"] # 000 OFF, 001 ON (mute)
- id: set_button_lock
label: Set Button Lock
kind: action
command: "8{id}s8{value}\r" # cmd '8' = 0x38
params:
- name: id
type: string
- name: value
type: enum
values: ["000", "001"] # 000 Unlock, 001 Lock
- id: set_menu_lock
label: Set Menu Lock
kind: action
command: "8{id}s>{value}\r" # cmd '>' = 0x3E
params:
- name: id
type: string
- name: value
type: enum
values: ["000", "001"] # 000 Unlock, 001 Lock
- id: set_remote_control
label: Set Remote Control Mode
kind: action
command: "8{id}sB{value}\r" # cmd 'B' = 0x42
params:
- name: id
type: string
- name: value
type: enum
values: ["000", "001", "002"]
description: 000 Disable, 001 Enable, 002 Pass through
# -------------------- Set-Function: Optional --------------------
- id: set_contrast
label: Set Contrast
kind: action
command: "8{id}s#{value}\r" # cmd '#' = 0x23
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100"}
- id: set_sharpness
label: Set Sharpness
kind: action
command: "8{id}s%{value}\r" # cmd '%' = 0x25
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100"}
- id: set_color
label: Set Color
kind: action
command: "8{id}s&{value}\r" # cmd '&' = 0x26
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100"}
- id: set_tint
label: Set Tint
kind: action
command: "8{id}s'{value}\r" # cmd '\'' = 0x27
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100"}
- id: set_color_mode
label: Set Color Mode
kind: action
command: "8{id}s){value}\r" # cmd ')' = 0x29
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001", "002", "003"]
description: 000 Normal, 001 Warm, 002 Cold, 003 Personal
- id: set_surround_sound
label: Set Surround Sound
kind: action
command: "8{id}s-{value}\r" # cmd '-' = 0x2D
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001"] # 000 Off, 001 On
- id: set_bass
label: Set Bass
kind: action
command: "8{id}s.{value}\r" # cmd '.' = 0x2E
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100"}
- id: set_treble
label: Set Treble
kind: action
command: "8{id}s/{value}\r" # cmd '/' = 0x2F
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100"}
- id: set_balance
label: Set Balance
kind: action
command: "8{id}s0{value}\r" # cmd '0' = 0x30
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-100; 050 is central"}
- id: set_picture_size
label: Set Picture Size
kind: action
command: "8{id}s1{value}\r" # cmd '1' = 0x31
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001", "002"]
description: 000 FULL (16:9), 001 NORMAL (4:3), 002 REAL (1:1)
- id: set_osd_language
label: Set OSD Language
kind: action
command: "8{id}s2{value}\r" # cmd '2' = 0x32
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001", "002"]
description: 000 English, 001 French, 002 Spanish. Source notes additional languages may be supported per model.
- id: set_pip_mode
label: Set PIP Mode
kind: action
command: "8{id}s9{value}\r" # cmd '9' = 0x39
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001", "002"]
description: 000 OFF, 001 PIP (POP), 002 PBP
- id: set_pip_sound_select
label: Set PIP Sound Select
kind: action
command: "8{id}s:{value}\r" # cmd ':' = 0x3A
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001"] # 000 Main, 001 PIP (POP)
- id: set_pip_position
label: Set PIP Position
kind: action
command: "8{id}s;{value}\r" # cmd ';' = 0x3B
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001", "002", "003"]
description: 000 Up, 001 Down, 002 Left, 003 Right
- id: set_pip_input
label: Set PIP Input
kind: action
command: "8{id}s7{value}\r" # cmd '7' = 0x37
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000","001","002","003","004","014","024","034","005","006","016","026","007","008","009","00A"]
description: Same value enum as set_input_select.
- id: set_number
label: Number Key Input
kind: action
command: "8{id}s@{value}\r" # cmd '@' = 0x40
params:
- {name: id, type: string}
- {name: value, type: string, description: "000-009"}
- id: set_key_pad
label: Key Pad Input
kind: action
command: "8{id}sA{value}\r" # cmd 'A' = 0x41
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000","001","002","003","004","005","006","007"]
description: 000 UP, 001 DOWN, 002 LEFT, 003 RIGHT, 004 ENTER, 005 INPUT, 006 MENU/(EXIT), 007 EXIT
- id: set_tiling_mode
label: Set Tiling Mode
kind: action
command: "8{id}sP{value}\r" # cmd 'P' = 0x50
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001"] # 000 OFF, 001 ON
- id: set_tiling_compensation
label: Set Tiling Bezel Compensation
kind: action
command: "8{id}sQ{value}\r" # cmd 'Q' = 0x51
params:
- {name: id, type: string}
- name: value
type: enum
values: ["000", "001"] # 000 OFF, 001 ON
- id: set_tiling_h_by_v
label: Set Tiling H by V Monitors
kind: action
command: "8{id}sR{value}\r" # cmd 'R' = 0x52
params:
- {name: id, type: string}
- {name: value, type: string, description: "01x~09x H monitors; 0x1~0x9 V monitors (2nd digit H, 3rd digit V)"}
- id: set_tiling_position
label: Set Tiling Position
kind: action
command: "8{id}sS{value}\r" # cmd 'S' = 0x53
params:
- {name: id, type: string}
- {name: value, type: string, description: "001-025; copy screen of Position# to identified display"}
- id: set_date_year
label: Set Date - Year
kind: action
command: "8{id}sV{value}\r" # cmd 'V' = 0x56
params:
- {name: id, type: string}
- {name: value, type: string, description: "Y17~Y99 (last 2 digits of year 2017-2099)"}
- id: set_date_month
label: Set Date - Month
kind: action
command: "8{id}sV{value}\r" # cmd 'V' = 0x56 (shared opcode with year/day; differentiated by value prefix)
params:
- {name: id, type: string}
- {name: value, type: string, description: "M01~M12"}
- id: set_date_day
label: Set Date - Day
kind: action
command: "8{id}sV{value}\r" # cmd 'V' = 0x56
params:
- {name: id, type: string}
- {name: value, type: string, description: "D01~D31"}
- id: set_time_hour
label: Set Time - Hour
kind: action
command: "8{id}sW{value}\r" # cmd 'W' = 0x57
params:
- {name: id, type: string}
- {name: value, type: string, description: "H00~H23 (24-hour format)"}
- id: set_time_min
label: Set Time - Minute
kind: action
command: "8{id}sW{value}\r" # cmd 'W' = 0x57
params:
- {name: id, type: string}
- {name: value, type: string, description: "M00~M59"}
- id: set_time_sec
label: Set Time - Second
kind: action
command: "8{id}sW{value}\r" # cmd 'W' = 0x57
params:
- {name: id, type: string}
- {name: value, type: string, description: "S00~S59"}
# -------------------- Get-Function: Basic --------------------
- id: get_contrast
label: Get Contrast
kind: query
command: "8{id}ga000\r" # cmd 'a' = 0x61
params:
- {name: id, type: string}
- id: get_brightness
label: Get Brightness
kind: query
command: "8{id}gb000\r" # cmd 'b' = 0x62
params:
- {name: id, type: string}
- id: get_sharpness
label: Get Sharpness
kind: query
command: "8{id}gc000\r" # cmd 'c' = 0x63
params:
- {name: id, type: string}
- id: get_color
label: Get Color
kind: query
command: "8{id}gd000\r" # cmd 'd' = 0x64
params:
- {name: id, type: string}
- id: get_tint
label: Get Tint
kind: query
command: "8{id}ge000\r" # cmd 'e' = 0x65
params:
- {name: id, type: string}
- id: get_volume
label: Get Volume
kind: query
command: "8{id}gf000\r" # cmd 'f' = 0x66
params:
- {name: id, type: string}
- id: get_mute
label: Get Mute
kind: query
command: "8{id}gg000\r" # cmd 'g' = 0x67
params:
- {name: id, type: string}
- id: get_input_select
label: Get Input Select
kind: query
command: "8{id}gj000\r" # cmd 'j' = 0x6A
params:
- {name: id, type: string}
- id: get_power_status
label: Get Power Status (ON / STBY)
kind: query
command: "8{id}gl000\r" # cmd 'l' = 0x6C
params:
- {name: id, type: string}
- id: get_remote_control
label: Get Remote Control Mode
kind: query
command: "8{id}gn000\r" # cmd 'n' = 0x6E
params:
- {name: id, type: string}
- id: get_power_lock
label: Get Power Lock
kind: query
command: "8{id}go000\r" # cmd 'o' = 0x6F
params:
- {name: id, type: string}
- id: get_button_lock
label: Get Button Lock
kind: query
command: "8{id}gp000\r" # cmd 'p' = 0x70
params:
- {name: id, type: string}
- id: get_menu_lock
label: Get Menu Lock
kind: query
command: "8{id}gq000\r" # cmd 'q' = 0x71
params:
- {name: id, type: string}
- id: get_tiling_mode
label: Get Tiling Mode
kind: query
command: "8{id}gv000\r" # cmd 'v' = 0x76
params:
- {name: id, type: string}
- id: get_tiling_compensation
label: Get Tiling Bezel Compensation
kind: query
command: "8{id}gw000\r" # cmd 'w' = 0x77
params:
- {name: id, type: string}
- id: get_tiling_h_by_v
label: Get Tiling H by V Monitors
kind: query
command: "8{id}gx000\r" # cmd 'x' = 0x78
params:
- {name: id, type: string}
- id: get_tiling_position
label: Get Tiling Position
kind: query
command: "8{id}gy000\r" # cmd 'y' = 0x79
params:
- {name: id, type: string}
- id: get_ack
label: Get ACK (Communication Link Test)
kind: query
command: "8{id}gz000\r" # cmd 'z' = 0x7A
params:
- {name: id, type: string}
- id: get_thermal
label: Get Thermal (deg C)
kind: query
command: "8{id}g0000\r" # cmd '0' = 0x30 (for specific models only per source)
params:
- {name: id, type: string}
- id: get_power_log
label: Get Power On/Off Log
kind: query
command: "8{id}g1000\r" # cmd '1' = 0x31 (for specific models only per source)
params:
- {name: id, type: string}
- id: get_date
label: Get Date (umbrella)
kind: query
command: "8{id}g2000\r" # cmd '2' = 0x32 (see Set-Date for response format)
params:
- {name: id, type: string}
- id: get_time
label: Get Time (umbrella)
kind: query
command: "8{id}g3000\r" # cmd '3' = 0x33 (see Set-Time for response format)
params:
- {name: id, type: string}
# -------------------- Get-Function: Optional (only rows new vs. basic) --------------------
- id: get_pip_mode
label: Get PIP Mode
kind: query
command: "8{id}gt000\r" # cmd 't' = 0x74
params:
- {name: id, type: string}
- id: get_pip_input
label: Get PIP Input
kind: query
command: "8{id}gu000\r" # cmd 'u' = 0x75
params:
- {name: id, type: string}
- id: get_date_year
label: Get Date - Year
kind: query
command: "8{id}g2000\r" # cmd '2' = 0x32; response value Y00~Y00
params:
- {name: id, type: string}
- id: get_date_month
label: Get Date - Month
kind: query
command: "8{id}g2000\r" # cmd '2' = 0x32; response value M00~M00
params:
- {name: id, type: string}
- id: get_date_day
label: Get Date - Day
kind: query
command: "8{id}g2000\r" # cmd '2' = 0x32; response value D00~D00
params:
- {name: id, type: string}
- id: get_time_hour
label: Get Time - Hour
kind: query
command: "8{id}g3000\r" # cmd '3' = 0x33; response value H00~H00
params:
- {name: id, type: string}
- id: get_time_min
label: Get Time - Minute
kind: query
command: "8{id}g3000\r" # cmd '3' = 0x33; response value M00~M00
params:
- {name: id, type: string}
- id: get_time_sec
label: Get Time - Second
kind: query
command: "8{id}g3000\r" # cmd '3' = 0x33; response value S00~S00
params:
- {name: id, type: string}
- id: get_rs232_version
label: Get RS232 Protocol Version
kind: query
command: "8{id}g6000\r" # cmd '6' = 0x36; response 001~ (Version 0.0.1~9.9.9)
params:
- {name: id, type: string}
Feedbacks
# Generic reply ACK / NAK frames returned after every Set / Get command.
- id: set_ack
label: Set Acknowledge
type: frame
pattern: "4{id}+\r" # Length=4, ID, Command Type '+' = 0x2B, CR. Source 11.2.3 / Set-Function reply.
description: Sent by display after a valid Set-Function command.
- id: set_nak
label: Set Negative Acknowledge
type: frame
pattern: "4{id}-\r" # Length=4, ID, Command Type '-' = 0x2D, CR.
description: Sent by display after an invalid Set-Function command.
- id: get_reply
label: Get-Function Valid Reply
type: frame
pattern: "8{id}r{cmd}{v1}{v2}{v3}\r" # Length=8, ID, Type 'r' = 0x72, command echo, 3 ASCII value bytes, CR.
description: Sent by display in response to a valid Get-Function query.
- id: get_nak
label: Get-Function Invalid Reply
type: frame
pattern: "4{id}-\r" # Length=4, ID, '-' = 0x2D, CR.
description: Sent by display when a Get-Function command opcode is not in the table.
# Observable state derived from the Get reply payloads.
- id: power_state
type: enum
values: ["off", "on"] # 000 STBY -> off, 001 ON -> on (Get-Power status, cmd 'l')
- id: mute_state
type: enum
values: ["off", "on"] # 000 unmuted, 001 muted (Get-Mute, cmd 'g')
- id: input_state
type: enum
values: ["TV","AV","S-Video","YPbPr","HDMI1","HDMI2","HDMI3","HDMI4","DVI","VGA1","VGA2","VGA3","Slot-in PC","Internal memory","DP","Embedded/Android"]
description: From Get-Input Select reply (cmd 'j'); value mapping per Set-Input table.
- id: volume_level
type: integer
range: [0, 100] # From Get-Volume (cmd 'f')
- id: brightness_level
type: integer
range: [0, 100] # From Get-Brightness (cmd 'b')
- id: contrast_level
type: integer
range: [0, 100] # From Get-Contrast (cmd 'a')
- id: power_lock_state
type: enum
values: ["unlock", "lock"] # From Get-Power Lock (cmd 'o')
- id: button_lock_state
type: enum
values: ["unlock", "lock"] # From Get-Button Lock (cmd 'p')
- id: menu_lock_state
type: enum
values: ["unlock", "lock"] # From Get-Menu Lock (cmd 'q')
- id: thermal_value
type: integer
range: [-99, 100] # From Get-Thermal (cmd '0'): 000~100 = 0~+100 degC, -01~-99 = -1~-99 degC
Variables
# Settable persistent parameters. Each maps to a Set / Get pair above.
- id: brightness
type: integer
range: [0, 100]
set_action: set_brightness
get_action: get_brightness
- id: contrast
type: integer
range: [0, 100]
set_action: set_contrast
get_action: get_contrast
- id: sharpness
type: integer
range: [0, 100]
set_action: set_sharpness
get_action: get_sharpness
- id: color
type: integer
range: [0, 100]
set_action: set_color
get_action: get_color
- id: tint
type: integer
range: [0, 100]
set_action: set_tint
get_action: get_tint
- id: volume
type: integer
range: [0, 100]
set_action: set_volume
get_action: get_volume
- id: bass
type: integer
range: [0, 100]
set_action: set_bass
- id: treble
type: integer
range: [0, 100]
set_action: set_treble
- id: balance
type: integer
range: [0, 100]
description: 050 is central
set_action: set_balance
- id: monitor_id
type: integer
range: [1, 255]
description: OSD-configurable monitor ID for RS-232 addressing (1-255 per OSD; protocol address space 01-98 + 99 broadcast)
# UNRESOLVED: no protocol command documented to set monitor ID; configured via OSD only per source.
Events
# IR Pass-through events (Section 11.3.3).
# Emitted only when Remote Control mode is set to 002 (Pass through) via set_remote_control.
- id: ir_passthrough_key
label: IR Pass-through Key Press
trigger: RCU button press while pass-through mode active
pattern: "6{id}p{code_msb}{code_lsb}\r" # 7-byte frame: Length=6, ID(2), Type 'p' = 0x70, RCU Code MSB, RCU Code LSB, CR
fields:
- name: id
description: Source monitor ID
- name: code
description: |
Two-byte RCU key code (MSB,LSB). Source documents these codes:
01=1, 02=2, 03=3, 04=4, 05=5, 06=6, 07=7, 08=8, 09=9, 0A=0,
0B=- , 0C=RECALL(LAST), 0D=INFO(DISPLAY),
0F=ASPECT(ZOOM,SIZE), 10=VOLUME UP(+), 11=VOLUME DOWN(-), 12=MUTE,
13=CHANNEL/PAGE UP(+)/BRIGHTNESS+, 14=CHANNEL/PAGE DOWN(-)/BRIGHTNESS-,
15=POWER, 16=SOURCES(INPUTS), 19=SLEEP, 1A=MENU,
1B=UP, 1C=DOWN, 1D=LEFT(-), 1E=RIGHT(+), 1F=OK(ENTER,SET), 20=EXIT,
2C=RED(F1), 2D=GREEN(F2), 2E=YELLOW(F3), 2F=BLUE(F4).
notes: |
- IR pass-through codes are not identical to internal RCU key codes (source 11.3.3 note 1).
- POWER key special handling (note 2):
- When display is OFF and receives IR POWER: display turns on then forwards POWER code to host.
- When display is ON and receives IR POWER: display forwards POWER code to host then turns off.
- When SET-Power Lock is enabled, display does not respond to POWER key.
- VOLUME UP / VOLUME DOWN repeat while the key is held.
Macros
# UNRESOLVED: no multi-step macros documented in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, voltage interlocks, or power-sequencing requirements
# for the RS-232 control surface; only the IR-pass-through POWER key sequence (documented as an event
# note) and the SET-Power Lock behavior are described.
Notes
- Monitor ID address space: 01-98 (default 01); 99 is broadcast and produces no reply on Set-Function commands except #1 unit which replies as ID=01 per source note.
- Frame length byte is ASCII '8' (0x38) for both Set and Get; the Length value counts message bytes excluding the trailing CR.
- All command codes in the YAML
command:fields are written verbatim from the Set-Function / Get-Function tables (source Section 11.3.1 and 11.3.2). Hex byte for each opcode is captured in the inline comment. - Set-Date (cmd
V= 0x56) and Set-Time (cmdW= 0x57) reuse a single opcode across Year/Month/Day or Hour/Minute/Second respectively; the value prefix byte (Y/M/D, H/M/S) selects the field. They are listed as separate source rows and therefore as separate actions, matching the granularity rule. - "Power on" reply is documented as an exception for VT2405LED-1 and VT3205LED (reply 0x32 2B 0D = "2+"); the CDE5010 Series is not called out as one of these exception models, but the note is reproduced here for awareness.
- "Power STBY status" Get reply is similarly noted as an exception for VT2405LED-1 and VT3205LED (reply 0x36 72 6C 30 30 30 0D = "6rl000"); same caveat as above.
- LAN/RJ-45 control is referenced in the hardware section along with an OSD "RS232-Routing" selector (RS232 / LAN -> RS232) and an SICP Network Port (1025-65535, unavailable: 8000 / 9988 / 15220 / 28123 / 28124), but the TCP/IP wire protocol is not documented in this excerpt.
- IR loop-through supports up to 9 displays (and IR daisy-chain via RS232 likewise up to 9 displays) per the hardware notes.
Provenance
source_domains:
- viewsonicglobal.com
source_urls:
- https://www.viewsonicglobal.com/public/products_download/user_guide/CD/CDE5010/CDE5010_UG_ENG.pdf
retrieved_at: 2026-04-30T04:25:05.911Z
last_checked_at: 2026-06-02T07:06:51.005Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T07:06:51.005Z
matched_actions: 67
action_count: 67
confidence: medium
summary: "All 67 spec actions matched to source commands with correct opcodes, parameters, and ranges; all transport values verified verbatim in source documentation. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "TCP/LAN control is mentioned in the hardware section (RJ-45, SICP Network Port 1025-65535) but the source does not document the TCP wire protocol for the command set; LAN transport is therefore not represented here."
- "flow control not stated in source (parity/data/stop fixed; flow not mentioned)"
- "no protocol command documented to set monitor ID; configured via OSD only per source."
- "no multi-step macros documented in source."
- "source contains no safety warnings, voltage interlocks, or power-sequencing requirements"
- "LAN command transport not specified in source."
- "firmware version compatibility, voltage / power specs, error recovery behavior, and TCP transport details are not stated in the source excerpt provided."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0