Summary
Visualizer document camera controllable via RS-232, USB, and Ethernet. Supports power, zoom, focus, iris, preset, routing, and exposure controls. Ethernet commands sent to port 50915. Default serial: 115200 baud, 8N1. No login required. Two coexisting serial protocols: Protocol 2 (multi-byte hex, default on EYE-12/SCB-12) and Protocol 1 (single-byte legacy, upward compatible with VZ-9plus).
Transport
protocols:
- serial
- tcp
addressing:
port: 50915 # Ethernet room control port
serial:
baud_rate: 115200 # default; configurable: 9600/19200/38400/57600/115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
# Evidence: power on/off, zoom/focus/iris/mirror, preset recall/store,
# light control, exposure settings, resolution output routing
- powerable
- routable
- queryable
- levelable
Actions
# ============================================================
# Protocol 2 - SET commands (multi-byte hex)
# Existing entries preserved; additions appended below.
# ============================================================
# --- Motor / Zoom / Focus / Iris (existing) ---
- id: power
label: Power
kind: action
params:
- name: state
type: integer
description: 00=Off, 01=On, 02=Toggle
- id: zoom
label: Zoom
kind: action
params:
- name: direction
type: integer
description: |
01=Wide step, 02=Tele step, 11=Start Wide, 12=Start Tele
Absolute: 01 20 02 yz wx - position 0x0000 to 0x0FFF
- id: focus
label: Focus
kind: action
params:
- name: direction
type: integer
description: |
01=Far step, 02=Near step, 11=Start Far, 12=Start Near
Absolute: 01 21 02 yz wx - position 0x0000 to 0x0FFF
- id: iris
label: Iris
kind: action
params:
- name: direction
type: integer
description: |
01=Open step, 02=Close step, 11=Start Open, 12=Start Close
Absolute: 01 22 02 yz wx
- id: auto_focus
label: Auto Focus
kind: action
params:
- name: state
type: integer
description: 00=AF Off, 01=AF On, 02=AF Toggle, 10=One-Push AF
- id: auto_iris
label: Auto Iris
kind: action
params:
- name: state
type: integer
description: 00=Off, 01=On, 02=Toggle
- id: mirror
label: Mirror
kind: action
params:
- name: direction
type: integer
description: |
01=Up step, 02=Down step, 11=Start Up, 12=Start Down
Absolute: 01 24 02 yz wx
- id: arm
label: Arm
kind: action
params:
- name: state
type: integer
description: 00=Up, 01=Down, 02=Toggle
# --- Preset / Light / Output / Exposure / Ethernet (existing) ---
- id: recall_preset
label: Recall Preset
kind: action
params:
- name: preset
type: integer
description: |
00=Power On Preset, 01=Preset1, 02=Preset2, 03=Preset3
Factory: 0xE5-0xEE (Max Wide, DIN A4-A8, Max Tele, Slide, X-Ray)
- id: store_preset
label: Store Preset
kind: action
params:
- name: preset
type: integer
description: 00=Power On Preset, 01=Preset1, 02=Preset2, 03=Preset3
- id: preset_special_function
label: Preset Special Function Key
kind: action
params:
- name: preset
type: integer
description: 01=Preset1, 02=Preset2, 03=Preset3
- name: function
type: integer
description: |
00=PRESET, 01=POS_NEG, 02=BLUE, 03=BLACK_WHITE, 04=WB, 05=FREEZE,
06=IMAGE, 07=ONEPUSH_AF, 08=LIGHT_ON_OFF, 09=SLIDE_ON_OFF,
0A=TEXT, 0B=LIGHT
- id: light
label: Light / Lightbox
kind: action
params:
- name: state
type: integer
description: |
00=Light Off/LB Off, 01=Light On/LB Off, 02=Light Off/LB On,
03=Light Off/SlideBox On, 10=Toggle, 11=Light Off/LB Toggle, 80=Lamp change
- id: resolution_rgb
label: Resolution RGB
kind: action
params:
- name: mode
type: integer
description: |
FF=Off, 00=Auto, 01=SVGA/60, 02=SVGA/75, 03=SVGA/85, 04=XGA/60,
05=XGA/75, 06=XGA/85, 07=1152/75, 08=SXGA-/60, 09=SXGA-/85,
0A=SXGA/60, 0B=SXGA/75, 0C=SXGA/85, 0D=UXGA/60, 0E=UXGA/70,
0F=UXGA/75, 10=1792/60, 11=1856/60, 12=SXGA+/60, 13=SXGA+/75,
14=VGA/60, 15=720p/50, 16=720p/60, 17=1080p/50, 18=1080p/60,
19=XGA 16:9, 1A=WSXGA/60, 1B=WXGA/60
- id: resolution_dvi
label: Resolution DVI
kind: action
params:
- name: mode
type: integer
description: Same values as Resolution RGB
- id: freeze
label: Freeze
kind: action
params:
- name: state
type: integer
description: 00=Off, 01=On, 02=Toggle
- id: color_mode
label: Color Mode
kind: action
params:
- name: mode
type: integer
description: 00=B/W, 01=Presentation, 02=Natural, 03=Video Conference, 04=Manual, 05=B/W Toggle
- id: white_balance
label: White Balance
kind: action
params:
- name: mode
type: integer
description: 00=Auto, 01=One-Push, 02=Manual, 10=Perform WB, 50=Perform WB for Manual
- id: gain
label: Gain
kind: action
params:
- name: value
type: integer
description: 0x00-0x12=0-18dB, 0x40=Auto Low, 0x80=Auto Med, 0xC0=Auto High
- id: shutter
label: Shutter
kind: action
params:
- name: mode
type: integer
description: 00=Step, 01=Variable, 02=Auto, 03=Off
- id: brightness
label: Image Brightness
kind: action
params:
- name: value
type: integer
description: 0xF6-0xFF=−10 to −1, 0x00=0, 0x01-0x0A=+1 to +10
- id: saturation
label: Saturation
kind: action
params:
- name: value
type: integer
description: 0x00-0xC8 (0-172%)
- id: ethernet_dhcp
label: DHCP
kind: action
params:
- name: state
type: integer
description: 00=Off, 01=On, 02=Toggle
- id: ethernet_ip
label: IP Address
kind: action
params:
- name: octets
type: string
description: 4 hex octets (01 to FF each)
- id: subnet_mask
label: Subnet Mask
kind: action
params:
- name: octets
type: string
description: 4 hex octets (00 to FF each)
- id: gateway_ip
label: Gateway IP
kind: action
params:
- name: octets
type: string
description: 4 hex octets (00 to FF each)
- id: multicast
label: Multicast
kind: action
params:
- name: mode
type: integer
description: 00=Off, 01=Auto, 02=Cont
- name: ip
type: string
description: 4 hex octets
- name: port
type: integer
description: Hex 2260-2328 (port 8800-9000)
- name: format
type: integer
description: 00=Native, 02=SVGA/75, 03=SVGA/85, 00=SXGA-, etc.
- name: framerate
type: integer
description: 00=Low, 01=Medium, 02=High
- id: reply_mode
label: Reply Mode (RS232)
kind: action
params:
- name: mode
type: integer
description: 00=Off, 01=Reply Command
- id: baudrate
label: Baudrate
kind: action
params:
- name: rate
type: integer
description: 00=9600, 01=19200, 02=38400, 03=57600, 04=115200
- id: menu_on_off
label: Menu On/Off
kind: action
params:
- name: state
type: integer
description: 00=Off, 01=On, 02=Toggle
- id: memory_recall
label: Memory Recall
kind: action
params:
- name: slot
type: integer
description: 01-09=Memory 1-9
- id: memory_store
label: Memory Store
kind: action
params:
- name: slot
type: integer
description: 01-09=Memory 1-9, 10=Snapshot, 20=Erase Memory
# ============================================================
# Protocol 2 - ADDED SET commands (previously missing)
# ============================================================
# --- Motor Control ---
- id: stop_all_motors
label: Stop All Motors
kind: action
command: "01 2F 01 00"
params: []
notes: Stops Iris, Focus, Zoom movement.
# --- Zoom Macro / Digital Zoom ---
- id: zoom_macro
label: Zoom Macro
kind: action
command: "01 2B 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=Macro 11x, 02=Macro 12x, 03=Macro Toggle"
- id: set_digital_zoom
label: Set Digital Zoom Position
kind: action
command: "01 28 02 {yz} {wx}"
params:
- name: position
type: integer
description: "2-byte position 0x0000-0x0FFF"
- id: digital_zoom
label: Digital Zoom Mode
kind: action
command: "01 29 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=2x, 02=4x"
- id: digital_zoom_warning
label: Digital Zoom Warning
kind: action
command: "01 2A 01 {state}"
params:
- name: state
type: integer
description: "00=Warning Stop, 02=Warning None"
# --- Iris Priority ---
- id: iris_priority
label: Iris Priority
kind: action
command: "01 33 01 {state}"
params:
- name: state
type: integer
description: "00=Auto, 01=Manual, 02=Toggle"
# --- Height / Light Mirror / Light Focus ---
- id: height_adjustment
label: Start Height Adjustment
kind: action
command: "01 2D 01 {state}"
params:
- name: state
type: integer
description: "00=Start Manual Adjustment, 01=Start Auto Adjustment"
- id: light_mirror_x
label: Light Mirror X (Left/Right)
kind: action
command: "01 25 01 {state}"
params:
- name: state
type: integer
description: "01=Mirror Left, 02=Mirror Right, 11=Start Left, 12=Start Right. Absolute: 01 25 02 yz wx"
notes: Also documented as "Light Mirror control" in source.
- id: light_mirror_y
label: Light Mirror Y (Up/Down)
kind: action
command: "01 26 01 {state}"
params:
- name: state
type: integer
description: "01=Mirror Up, 02=Mirror Down, 11=Start Up, 12=Start Down. Absolute: 01 26 02 yz wx"
- id: light_focus
label: Light Focus
kind: action
command: "01 27 01 {state}"
params:
- name: state
type: integer
description: "01=Far step, 02=Near step, 11=Start Far, 12=Start Near. Absolute: 01 27 02 yz wx"
- id: store_mirror_pos
label: Store Mirror-Pos
kind: action
command: "01 4D 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On"
# --- Power Control (extended) ---
- id: poweron_preset
label: PowerOn Preset
kind: action
command: "01 34 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: display_logo
label: Display Logo
kind: action
command: "01 35 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: mains_on
label: Mains-On
kind: action
command: "01 36 01 {state}"
params:
- name: state
type: integer
description: "00=Standby, 01=Power-On, 02=Toggle"
- id: auto_power_off_time
label: Auto-Power-Off Time
kind: action
command: "01 37 01 {value}"
params:
- name: value
type: integer
description: "FF=Off, 1E=30min, 3C=1h, 78=2h, B4=3h, F0=4h"
# --- Light Control (extended) ---
- id: reset_lamp1_hours
label: Reset Lamp1 Hours
kind: action
command: "01 A3 01 81"
params: []
- id: reset_lamp2_hours
label: Reset Lamp2 Hours
kind: action
command: "01 A4 01 81"
params: []
- id: lamp_voltage
label: Lamp Voltage
kind: action
command: "01 A1 01 {value}"
params:
- name: value
type: integer
description: "GET returns: 00=Longlife, 01=Economic, 02=Bright"
- id: laser
label: Laser
kind: action
command: "01 A2 01 {value}"
params:
- name: value
type: integer
description: "Value yz (see source)"
# --- Image Turn ---
- id: image_turn
label: Image Turn On/Off
kind: action
command: "01 83 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle. Orientation as selected in OSD."
- id: image_turn_rotation
label: ImageTurn Rotation
kind: action
command: "01 84 01 {mode}"
params:
- name: mode
type: integer
description: "00=Cycle, 01=-90° (Rechts), 02=180°, 03=+90° (Links)"
# --- Miscellaneous (keylock, IR, mounting, OSD level, etc.) ---
- id: keylock
label: Keylock On/Off
kind: action
command: "01 80 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: ir_code
label: IR Code
kind: action
command: "01 81 01 {code}"
params:
- name: code
type: integer
description: "1C=A, 1D=B, 1E=C, 1F=D, 97-9F=Code 1-9"
- id: number_of_ir_codes
label: Number of IR Codes
kind: action
command: "01 18 01 {value}"
params:
- name: value
type: integer
description: "00=4 IR Codes, 01=9 IR Codes"
notes: "Opcode 0x18 also reused by Description command in Ethernet section - source conflict."
- id: mounting_position
label: Mounting Position
kind: action
command: "01 19 01 {value}"
params:
- name: value
type: integer
description: "00=Regular, 01=Flipped"
- id: osd_level
label: OSD Level
kind: action
command: "01 82 01 {value}"
params:
- name: value
type: integer
description: "00=Quiet, 01=Talk, 02=Verbose"
- id: text_enhancer
label: Text Enhancer On/Off
kind: action
command: "01 85 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: image_on_off
label: Image On/Off
kind: action
command: "01 86 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: lcd_brightness
label: LCD Brightness
kind: action
command: "01 87 01 {value}"
params:
- name: value
type: integer
description: "0x00-0xFF"
- id: zoom_wheel_calibration
label: Zoom Wheel Calibration
kind: action
command: "01 8B 01 00"
params: []
- id: pixel_calibration
label: Pixel Calibration
kind: action
command: "01 8C 01 00"
params: []
- id: debug
label: Debug On/Off
kind: action
command: "01 88 01 {state}"
params:
- name: state
type: integer
description: "00=Debug Off, 01=Debug On, 05=Demo Mode"
- id: adjustment_menu
label: Adjustment Menu
kind: action
command: "01 8D 01 00"
params: []
- id: service_menu
label: Service Menu
kind: action
command: "01 8E 01 00"
params: []
- id: recall_factory_settings
label: Recall Factory Settings
kind: action
command: "01 8F 01 00"
params: []
# --- Visualizer Menu Control (extended) ---
- id: unlock_menu
label: Unlock Menu
kind: action
command: "01 9A 01 00"
params: []
- id: unlock_extra_menu
label: Unlock Extra Menu
kind: action
command: "01 9B 01 00"
params: []
- id: menu_control
label: Menu Control
kind: action
command: "01 99 01 {key}"
params:
- name: key
type: integer
description: "02=Function Up, 08=Function Down, 04=Data Left, 06=Data Right, 05=Enter, 10=Help, 80=Reset Menu"
# --- Output Control (extended) ---
- id: video_format
label: Video Format
kind: action
command: "01 52 01 {mode}"
params:
- name: mode
type: integer
description: "00=NTSC, 01=PAL, 02=Off"
- id: detail
label: Detail
kind: action
command: "01 53 01 {mode}"
params:
- name: mode
type: integer
description: "00=Off, 01=Low, 02=Medium, 03=High"
- id: pos_neg_blue
label: Pos/Neg/Blue
kind: action
command: "01 54 01 {mode}"
params:
- name: mode
type: integer
description: "00=Positive, 01=Negative, 02=Blue, 03=Toggle"
- id: color_bw
label: Color/BW
kind: action
command: "01 55 01 {mode}"
params:
- name: mode
type: integer
description: "00=Color, 01=Black/White, 02=Toggle"
- id: intern_extern
label: Intern/Extern
kind: action
command: "01 57 01 {mode}"
params:
- name: mode
type: integer
description: "00=Intern, 01=Extern, 02=Toggle"
- id: autosense_externin
label: AutoSense ExternIn On/Off
kind: action
command: "01 58 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: extern_freeze_output
label: Extern/Freeze Output
kind: action
command: "01 59 01 {xy}"
params:
- name: xy
type: integer
description: "Output routing value (see source)"
- id: preview_output
label: Preview Output Control
kind: action
command: "01 5A 01 {mode}"
params:
- name: mode
type: integer
description: "00=Preview, 01=Regular"
- id: image_mirror
label: Image Mirror
kind: action
command: "01 5B 01 {xy}"
params:
- name: xy
type: integer
description: "GET returns: 00=Off, 01=Horizontal, 02=Vertical, 03=H+V"
# --- Image Storing (extended) ---
- id: memory_off
label: Memory Off
kind: action
command: "01 90 01 00"
params: []
notes: Switches to Live image.
- id: showall
label: ShowAll On/Off
kind: action
command: "01 93 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: erase_memory_behaviour
label: Erase Memory Behaviour
kind: action
command: "01 94 01 {mode}"
params:
- name: mode
type: integer
description: "00=Manual, 01=Standby, 02=Toggle"
# --- Exposure (extended) ---
- id: shutter_speed_step
label: Speed (Shutter=step)
kind: action
command: "01 62 01 {value}"
params:
- name: value
type: integer
description: "00=1/30s, 01=Flickerless, 02=1/50s, 03=1/60s, 04=1/100s, 05=1/120s, 06=1/250s, 07=1/500s, 08=1/1000s, 09=1/2000s, 0A=1/3000s"
- id: trigger_mode
label: Trigger Mode On/Off
kind: action
command: "01 6A 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On, 02=Toggle"
- id: trigger_edge
label: Trigger Edge Pos/Neg
kind: action
command: "01 6B 01 {state}"
params:
- name: state
type: integer
description: "00=Positive, 01=Negative, 02=Toggle"
- id: back_light_compensation
label: Back Light Compensation
kind: action
command: "01 6C 01 {mode}"
params:
- name: mode
type: integer
description: "00=Off, 01=Medium, 02=High"
# --- Color (extended) ---
- id: gamma_normal_mode
label: Gamma Normal Mode
kind: action
command: "01 68 01 {value}"
params:
- name: value
type: integer
description: "0x00-0x03 - Gamma Level for Normal Mode"
- id: gamma_text_mode
label: Gamma Text Mode
kind: action
command: "01 69 01 {value}"
params:
- name: value
type: integer
description: "0x00-0x03 - Gamma Level for Text Mode"
# --- Ethernet (extended) ---
- id: ethernet_mode
label: Ethernet Mode
kind: action
command: "01 74 01 {mode}"
params:
- name: mode
type: integer
description: "00=Off, 01=Image Only, 02=Control Only, 03=Image+Control, 04=FW Update Only, 05=Image+FW, 06=Control+FW, 07=Image+Control+FW"
- id: multicast_mode
label: Multicast Mode
kind: action
command: "01 75 01 {mode}"
params:
- name: mode
type: integer
description: "00=Off, 01=Auto, 02=Cont"
- id: multicast_format
label: Multicast Format
kind: action
command: "01 79 01 {mode}"
params:
- name: mode
type: integer
description: "00=Native, 02=SVGA/75, 03=SVGA/85, 00=SXGA-, 01=XGA, 06=XGA/85, 07=1152/75, 02=768x576, 03=VGA, 04=QVGA, 05=N/A, 0C=SXGA/85, 0D=UXGA/60, 0E=UXGA/70, 0F=UXGA/75, 10=1792/60, 11=1856/60, 06=SXGA, 13=SXGA+/75, 07=UXGA, 08=720p, 09=576p, 0A=432p, 0B=288p, 19=XGA 16:9, 0C=144p"
notes: "Source table has duplicated index values (data entry errors in source)."
- id: multicast_framerate
label: Multicast Framerate
kind: action
command: "01 7A 01 {mode}"
params:
- name: mode
type: integer
description: "00=Low, 01=Medium, 02=High"
- id: description
label: Description (string)
kind: action
command: "01 18 {yz} AB CD EF ... FF"
params:
- name: text
type: string
description: "ASCII description string, max length 255 bytes"
notes: "Opcode 0x18 conflicts with Number of IR Codes command - source conflict."
# --- Firmware Update ---
- id: firmware_erase_flash
label: Firmware Upload Erase Flash
kind: action
command: "01 B0 01 00"
params: []
- id: firmware_upload_data_start
label: Firmware Upload Data Start
kind: action
command: "01 B1 04 {yz} {wx} {uv} {st}"
params:
- name: length
type: integer
description: "Length of firmware data (4-byte)"
- id: firmware_upload_data
label: Firmware Upload Data
kind: action
command: "05 B2 {yz} {wx} AB CD EF ... FF"
params:
- name: block
type: string
description: "Data block; yz wx = length in hex. USB max=508 (512-4), ETH max=1440."
- id: firmware_upload_data_stop
label: Firmware Upload Data Stop
kind: action
command: "01 B3 01 00"
params: []
- id: firmware_downgrade
label: Firmware Downgrade
kind: action
command: "01 B4 01 00"
params: []
notes: "Execute before uploading old firmware."
# --- OSD ---
- id: osd_transparency
label: OSD Transparency
kind: action
command: "01 C0 01 {state}"
params:
- name: state
type: integer
description: "00=Off, 01=On"
- id: osd_size
label: OSD Size
kind: action
command: "01 C1 01 {mode}"
params:
- name: mode
type: integer
description: "00=Small, 01=Large"
- id: osd_horizontal_position
label: Menu Horizontal Position
kind: action
command: "01 C2 01 {value}"
params:
- name: value
type: integer
description: "0x00-0x64 (0-100%)"
- id: osd_vertical_position
label: Menu Vertical Position
kind: action
command: "01 C3 01 {value}"
params:
- name: value
type: integer
description: "0x00-0x64 (0-100%)"
- id: osd_status_position
label: Status Position
kind: action
command: "01 C4 01 {mode}"
params:
- name: mode
type: integer
description: "00=Top, 01=Bottom"
- id: osd_selection_bar_color
label: Selection Bar Color
kind: action
command: "01 C5 01 {value}"
params:
- name: value
type: integer
description: "00=Black (color index)"
- id: osd_selected_text_color
label: Selected Text Color
kind: action
command: "01 C6 01 {value}"
params:
- name: value
type: integer
description: "00=Black (color index)"
- id: osd_menu_text_color
label: Menu Text Color
kind: action
command: "01 C7 01 {value}"
params:
- name: value
type: integer
description: "00=Black (color index)"
- id: osd_menu_headline_color
label: Menu Headline Color
kind: action
command: "01 C8 01 {value}"
params:
- name: value
type: integer
description: "00=Black (color index)"
- id: osd_menu_status_text_color
label: Menu Status Text Color
kind: action
command: "01 C9 01 {value}"
params:
- name: value
type: integer
description: "00=Black (color index)"
# ============================================================
# Protocol 1 - legacy single-byte serial commands
# (distinct documented entries; coexist via page select)
# Page select: $30=Page0 (standard), $31=Page1 (auto-revert)
# ============================================================
- id: p1_select_page0
label: "[P1] Select Page 0"
kind: action
command: "30"
params: []
notes: "Standard page. Optional - page 0 is default."
- id: p1_select_page1
label: "[P1] Select Page 1"
kind: action
command: "31"
params: []
notes: "After page-1 command executes, auto-reverts to page 0."
# --- Zoom (P1) ---
- id: p1_zoom_wide
label: "[P1] Zoom Wide"
kind: action
command: "C3"
params: []
notes: "Repetitive send (min 10Hz) for continuous zoom."
- id: p1_zoom_tele
label: "[P1] Zoom Tele"
kind: action
command: "C7"
params: []
- id: p1_start_zoom_wide
label: "[P1] Start Zoom Wide"
kind: action
command: "81"
params: []
- id: p1_start_zoom_tele
label: "[P1] Start Zoom Tele"
kind: action
command: "82"
params: []
- id: p1_get_zoom_position
label: "[P1] Get Zoom Position"
kind: query
command: "A1"
params: []
notes: "Returns 3-digit hex '000'-'FFF' + LF + CR."
- id: p1_set_zoom_position
label: "[P1] Set Zoom Position"
kind: action
command: "A2 {pos}"
params:
- name: pos
type: string
description: "3-digit hex '000'(wide)-'FFF'(tele), within 3s after '?' echo"
- id: p1_set_digital_zoom
label: "[P1] Set Digital Zoom"
kind: action
command: "31 A3 {pos}"
params:
- name: pos
type: string
description: "3-digit hex '000'-'FFF' (page 1)"
- id: p1_get_digital_zoom
label: "[P1] Get Digital Zoom"
kind: query
command: "31 A4"
params: []
notes: "Page 1. Returns 3-digit hex + LF + CR."
# --- Focus (P1) ---
- id: p1_focus_far
label: "[P1] Focus Far"
kind: action
command: "C2"
params: []
- id: p1_focus_near
label: "[P1] Focus Near"
kind: action
command: "C6"
params: []
- id: p1_start_focus_far
label: "[P1] Start Focus Far"
kind: action
command: "83"
params: []
- id: p1_start_focus_near
label: "[P1] Start Focus Near"
kind: action
command: "84"
params: []
- id: p1_get_focus_position
label: "[P1] Get Focus Position"
kind: query
command: "A3"
params: []
- id: p1_set_focus_position
label: "[P1] Set Focus Position"
kind: action
command: "A4 {pos}"
params:
- name: pos
type: string
description: "3-digit hex '000'(near)-'FFF'(far)"
- id: p1_af_on
label: "[P1] AF On"
kind: action
command: "EF"
params: []
- id: p1_af_off
label: "[P1] AF Off"
kind: action
command: "F0"
params: []
- id: p1_get_auto_focus
label: "[P1] Get Auto Focus"
kind: query
command: "AD"
params: []
notes: "Returns '1'+LF+CR (on) or '0' (off)."
# --- Iris (P1) ---
- id: p1_iris_open
label: "[P1] Iris Open / Brightness Up"
kind: action
command: "C1"
params: []
- id: p1_iris_close
label: "[P1] Iris Close / Brightness Down"
kind: action
command: "C5"
params: []
- id: p1_start_iris_open
label: "[P1] Start Iris Open"
kind: action
command: "85"
params: []
- id: p1_start_iris_close
label: "[P1] Start Iris Close"
kind: action
command: "86"
params: []
- id: p1_auto_iris_on
label: "[P1] Auto Iris On"
kind: action
command: "A7"
params: []
- id: p1_auto_iris_off
label: "[P1] Auto Iris Off"
kind: action
command: "A8"
params: []
- id: p1_get_auto_iris
label: "[P1] Get Auto Iris"
kind: query
command: "A6"
params: []
- id: p1_get_iris_position
label: "[P1] Get Iris Position"
kind: query
command: "A5"
params: []
- id: p1_set_iris_position
label: "[P1] Set Iris Position"
kind: action
command: "A9 {pos}"
params:
- name: pos
type: string
description: "3-digit hex '000'(close)-'FFF'(open)"
# --- Power / Presets (P1) ---
- id: p1_power_on
label: "[P1] Power On / PowerOn-Preset"
kind: action
command: "C8"
params: []
- id: p1_power_off
label: "[P1] Power Off"
kind: action
command: "C9"
params: []
- id: p1_get_power
label: "[P1] Get Power"
kind: query
command: "AB"
params: []
- id: p1_power_toggle
label: "[P1] Power Toggle"
kind: action
command: "BA"
params: []
- id: p1_recall_preset
label: "[P1] Recall Preset"
kind: action
command: "9A {n}"
params:
- name: n
type: string
description: "'1'-'3' within 3s after '?' echo"
- id: p1_store_preset
label: "[P1] Store Preset"
kind: action
command: "9B {n}"
params:
- name: n
type: string
description: "'1'-'3' within 3s after '?' echo"
- id: p1_preset_poweron
label: "[P1] Preset 0 PowerOn-Preset"
kind: action
command: "D5"
params: []
- id: p1_preset_1
label: "[P1] Preset 1"
kind: action
command: "CA"
params: []
- id: p1_preset_2
label: "[P1] Preset 2"
kind: action
command: "CB"
params: []
- id: p1_preset_3
label: "[P1] Preset 3"
kind: action
command: "FD"
params: []
- id: p1_save_preset_1
label: "[P1] Save Preset 1"
kind: action
command: "D8"
params: []
- id: p1_save_preset_2
label: "[P1] Save Preset 2"
kind: action
command: "D9"
params: []
- id: p1_save_preset_3
label: "[P1] Save Preset 3"
kind: action
command: "FE"
params: []
- id: p1_preset_max_wide
label: "[P1] Preset Max Wide"
kind: action
command: "E5"
params: []
- id: p1_preset_din_a4
label: "[P1] Preset DIN A4"
kind: action
command: "E6"
params: []
- id: p1_preset_din_a5
label: "[P1] Preset DIN A5"
kind: action
command: "E7"
params: []
- id: p1_preset_din_a6
label: "[P1] Preset DIN A6"
kind: action
command: "E8"
params: []
- id: p1_preset_din_a7
label: "[P1] Preset DIN A7"
kind: action
command: "E9"
params: []
- id: p1_preset_din_a8
label: "[P1] Preset DIN A8"
kind: action
command: "EA"
params: []
- id: p1_preset_max_tele
label: "[P1] Preset Max Tele (no digZoom)"
kind: action
command: "EB"
params: []
# --- Menu / Camera (P1) ---
- id: p1_unlock_menu
label: "[P1] Unlock Visualizer Menu"
kind: action
command: "DA"
params: []
- id: p1_menu_on_off
label: "[P1] Visualizer Menu On/Off"
kind: action
command: "CE"
params: []
- id: p1_unlock_extra_menu
label: "[P1] Unlock Extra Menu"
kind: action
command: "8B"
params: []
- id: p1_function_up
label: "[P1] Function Up"
kind: action
command: "D0"
params: []
- id: p1_function_down
label: "[P1] Function Down"
kind: action
command: "D1"
params: []
- id: p1_data_right_wb
label: "[P1] Data Right / White Balance"
kind: action
command: "D2"
params: []
- id: p1_white_balance
label: "[P1] White Balance"
kind: action
command: "97"
params: []
- id: p1_data_left
label: "[P1] Data Left"
kind: action
command: "D3"
params: []
- id: p1_help
label: "[P1] Help"
kind: action
command: "D6"
params: []
- id: p1_data_left_right
label: "[P1] Data Left + Data Right"
kind: action
command: "DC"
params: []
notes: "Preset menu-item to default value."
- id: p1_reset_menu
label: "[P1] Reset Menu"
kind: action
command: "F6"
params: []
# --- Image On/Off (P1) ---
- id: p1_image_toggle
label: "[P1] Image Toggle"
kind: action
command: "B9"
params: []
- id: p1_image_on
label: "[P1] Image On"
kind: action
command: "C0"
params: []
- id: p1_image_off
label: "[P1] Image Off"
kind: action
command: "C4"
params: []
# --- Reply Mode (P1) ---
- id: p1_reply_mode_off
label: "[P1] Reply Mode Off"
kind: action
command: "9C"
params: []
- id: p1_reply_one_byte
label: "[P1] Reply One Byte"
kind: action
command: "9D"
params: []
notes: "Replies $06 (valid) or $0F (invalid) per command."
- id: p1_reply_two_bytes
label: "[P1] Reply Two Bytes"
kind: action
command: "9E"
params: []
notes: "Repeats received byte + $06/$0F."
- id: p1_reply_string
label: "[P1] Reply String"
kind: action
command: "9F"
params: []
notes: "Replies 'OKAY'+LF+CR or 'ERROR'+LF+CR."
# --- Image Storing (P1, page 1) ---
- id: p1_memory_store
label: "[P1] Memory Store x"
kind: action
command: "31 8C {n}"
params:
- name: n
type: string
description: "'1'-'9' within 3s after '?' echo"
- id: p1_memory_recall
label: "[P1] Memory Recall x"
kind: action
command: "31 8D {n}"
params:
- name: n
type: string
description: "'1'-'9' within 3s after '?' echo"
- id: p1_memory_off
label: "[P1] Memory Off"
kind: action
command: "31 8E"
params: []
- id: p1_snapshot
label: "[P1] Snapshot"
kind: action
command: "31 8F"
params: []
notes: "Stores one memory after another until all 9 stored."
- id: p1_showall_toggle
label: "[P1] Show All On/Off"
kind: action
command: "31 88"
params: []
- id: p1_showall_on
label: "[P1] Show All On"
kind: action
command: "31 89"
params: []
- id: p1_showall_off
label: "[P1] Show All Off"
kind: action
command: "31 8A"
params: []
- id: p1_erase_memory
label: "[P1] Erase Memory"
kind: action
command: "31 A5"
params: []
- id: p1_get_showall
label: "[P1] Get Show All"
kind: query
command: "31 8B"
params: []
- id: p1_freeze_toggle
label: "[P1] Freeze On/Off"
kind: action
command: "D7"
params: []
- id: p1_freeze_on
label: "[P1] Freeze On"
kind: action
command: "31 A6"
params: []
- id: p1_freeze_off
label: "[P1] Freeze Off"
kind: action
command: "31 A7"
params: []
- id: p1_get_freeze
label: "[P1] Get Freeze"
kind: query
command: "31 A8"
params: []
# --- Image Turn (P1, page 1) ---
- id: p1_image_turn
label: "[P1] Image Turn"
kind: action
command: "31 84"
params: []
- id: p1_portrait_on
label: "[P1] Portrait On"
kind: action
command: "31 85"
params: []
notes: "Image turn -90°."
- id: p1_image_turn_off
label: "[P1] Image Turn Off"
kind: action
command: "31 86"
params: []
- id: p1_get_image_turn
label: "[P1] Get Image Turn"
kind: query
command: "31 87"
params: []
notes: "Returns '0'(0°), '1'(-90°), '2'(180°), '3'(+90°) + LF + CR."
# --- Miscellaneous (P1) ---
- id: p1_blank_echo
label: "[P1] Blank Echo"
kind: action
command: "20"
params: []
notes: "Echoes blank; readiness poll."
- id: p1_version
label: "[P1] Visualizer Type + Software Version"
kind: query
command: "76"
params: []
notes: "Returns e.g. 'EYE-12 V1.10a '+LF+CR."
- id: p1_debug_on
label: "[P1] Debug Mode On"
kind: action
command: "FA"
params: []
- id: p1_status
label: "[P1] Status"
kind: query
command: "3F"
params: []
notes: "Debug mode only."
- id: p1_debug_off
label: "[P1] Debug Mode Off"
kind: action
command: "FB"
params: []
- id: p1_ascii_input
label: "[P1] ASCII Text Input Mode"
kind: action
command: "5F"
params: []
notes: "Initiates 3-digit decimal ASCII command input."
- id: p1_stop_all
label: "[P1] Stop All"
kind: action
command: "80"
params: []
notes: "Stops zoom/focus/iris movement."
- id: p1_key_lock_on
label: "[P1] Key Lock On"
kind: action
command: "AF"
params: []
- id: p1_key_lock_off
label: "[P1] Key Lock Off"
kind: action
command: "B0"
params: []
- id: p1_get_key_lock
label: "[P1] Get Key Lock"
kind: query
command: "AE"
params: []
- id: p1_get_status
label: "[P1] Get Status"
kind: query
command: "A0"
params: []
notes: "Returns all settings as single-line ASCII string."
- id: p1_switch_ir_code
label: "[P1] Switch IR Code"
kind: action
command: "DD"
params: []
notes: "Cycles A→B→C→D."
# --- Output Signal (P1, page 1) ---
- id: p1_positive_on
label: "[P1] Switch Positive On"
kind: action
command: "31 97"
params: []
- id: p1_negative_on
label: "[P1] Switch Negative On"
kind: action
command: "31 98"
params: []
- id: p1_negative_blue_on
label: "[P1] Switch Negative Blue On"
kind: action
command: "31 99"
params: []
- id: p1_get_pos_neg
label: "[P1] Get Positive/Negative"
kind: query
command: "31 9A"
params: []
notes: "Returns '0'(Pos), '1'(Neg), '2'(Neg/Blue)."
- id: p1_color_on
label: "[P1] Switch Color On"
kind: action
command: "31 9B"
params: []
- id: p1_bw_on
label: "[P1] Switch Black/White On"
kind: action
command: "31 9C"
params: []
- id: p1_get_bw
label: "[P1] Get Black/White"
kind: query
command: "31 9D"
params: []
- id: p1_detail_off
label: "[P1] Detail Off"
kind: action
command: "E1"
params: []
- id: p1_detail_medium
label: "[P1] Detail Medium"
kind: action
command: "E2"
params: []
- id: p1_detail_high
label: "[P1] Detail High"
kind: action
command: "E3"
params: []
# --- Output Resolution (P1, page 1) ---
- id: p1_resolution_up
label: "[P1] Resolution Up"
kind: action
command: "31 90"
params: []
notes: "Both outputs (RGB+DVI)."
- id: p1_resolution_down
label: "[P1] Resolution Down"
kind: action
command: "31 91"
params: []
- id: p1_resolution_auto
label: "[P1] Resolution Auto"
kind: action
command: "31 92"
params: []
- id: p1_get_resolution
label: "[P1] Get Resolution"
kind: query
command: "31 A9"
params: []
# --- Trigger (P1) ---
- id: p1_trigger_on
label: "[P1] Trigger On"
kind: action
command: "91"
params: []
- id: p1_trigger_off
label: "[P1] Trigger Off"
kind: action
command: "92"
params: []
- id: p1_trigger_edge_negative
label: "[P1] Trigger Edge Negative"
kind: action
command: "93"
params: []
- id: p1_trigger_edge_positive
label: "[P1] Trigger Edge Positive"
kind: action
command: "94"
params: []
Feedbacks
# Existing GET-based feedbacks preserved; additions appended.
- id: power_state
type: enum
values: [off, on]
description: GET 00 30 00 - returns 00 30 01 yz
- id: zoom_position
type: integer
description: GET 00 20 00 - 2-byte position 0x0000-0xFFFF
- id: focus_position
type: integer
description: GET 00 21 00 - 2-byte position
- id: digital_zoom_position
type: integer
description: GET 00 28 00 - 2-byte position
- id: digital_zoom_mode
type: enum
values: [off, "2x", "4x"]
- id: auto_focus_state
type: enum
values: [off, on, one_push_af_running]
- id: auto_iris_state
type: enum
values: [off, on]
- id: iris_priority
type: enum
values: [auto, manual]
- id: arm_state
type: enum
values: [down, up, macro_11x, macro_12x, undefined]
- id: mirror_position
type: object
description: X and Y positions (GET 00 24 00, 00 25 00, 00 26 00)
- id: preset_recall
type: integer
description: Returns preset number 00-0xEF
- id: light_state
type: enum
values: [off, light_on_lb_off, lb_on_light_off, slidebox_on]
- id: lamp_blown
type: enum
values: [no_lamp_blown, lamp1_blown, lamp2_blown]
- id: lamp1_hours
type: integer
description: Hours in hex
- id: lamp2_hours
type: integer
description: Hours in hex
- id: resolution_rgb_state
type: integer
description: Current RGB resolution index
- id: resolution_dvi_state
type: integer
description: Current DVI resolution index
- id: freeze_state
type: enum
values: [off, on]
- id: color_mode_state
type: enum
values: [black_white, presentation, natural, video_conference, manual]
- id: white_balance_state
type: enum
values: [auto, one_push, manual]
- id: gain_state
type: integer
description: dB value or auto code
- id: shutter_state
type: integer
description: Step index or variable
- id: brightness_state
type: integer
description: Offset value −10 to +10
- id: saturation_state
type: integer
description: 0-172%
- id: ethernet_dhcp_state
type: enum
values: [off, on]
- id: ethernet_ip_state
type: string
description: 4 hex octets
- id: subnet_mask_state
type: string
description: 4 hex octets
- id: gateway_ip_state
type: string
description: 4 hex octets
- id: multicast_running
type: enum
values: [no, yes]
- id: model_info
type: string
description: GET 00 11 - model string
- id: serial_number
type: string
description: GET 00 12 - serial number
- id: firmware_version
type: string
description: GET 00 13 - e.g. "V1.10a"
- id: features
type: string
description: GET 00 16 - 8-byte feature bitmask
- id: reply_mode_state
type: enum
values: [off, command]
# ============================================================
# ADDED feedbacks (previously missing GET targets)
# ============================================================
- id: zoom_macro_state
type: enum
values: [off, "11x", "12x"]
description: GET 00 2b 00 - returns 00 2b 01 yz
- id: digital_zoom_warning_state
type: enum
values: [stop, message, none]
description: GET 00 2a 00 - returns 00 2a 01 yz
- id: height_adjustment_state
type: enum
values: [stop, running]
description: GET 00 2d 00 - returns 00 2d 01 yz
- id: preset_special_function_key
type: object
description: GET 00 42 01 {preset} - returns 00 42 02 {preset} {function}
- id: list_of_sfk_functions
type: string
description: GET 00 43 00 - variable list of supported SFK functions (0xFF-terminated)
- id: store_mirror_pos_state
type: enum
values: [off, on]
description: GET 00 4d 00 - returns 00 4d 01 yz
- id: power_on_preset_state
type: enum
values: [off, on]
description: GET 00 34 00
- id: display_logo_state
type: enum
values: [off, on]
description: GET 00 35 00
- id: mains_on_state
type: enum
values: [standby, power_on]
description: GET 00 36 00
- id: auto_power_off_time_state
type: integer
description: "GET 00 37 00 - FF=Off, 1E=30min, 3C=1h, 78=2h, B4=3h, F0=4h"
- id: lamp_voltage_state
type: enum
values: [longlife, economic, bright]
description: GET 00 a1 00
- id: laser_state
type: integer
description: GET 00 a2 00 - returns 00 a2 01 yz
- id: image_turn_state
type: enum
values: ["0deg", "-90deg", "180deg", "+90deg"]
description: GET 00 83 00
- id: image_turn_rotation_state
type: enum
values: [cycle, "-90deg", "180deg", "+90deg"]
description: GET 00 84 00
- id: keylock_state
type: enum
values: [off, on]
description: GET 00 80 00
- id: ir_code_state
type: integer
description: GET 00 81 00 - yz see SET
- id: osd_level_state
type: enum
values: [quiet, talk, verbose]
description: GET 00 82 00
- id: text_enhancer_state
type: enum
values: [off, on]
description: GET 00 85 00
- id: image_state
type: enum
values: [off, on]
description: GET 00 86 00
- id: lcd_brightness_state
type: integer
description: GET 00 87 00 - 0x00-0xFF
- id: debug_state
type: enum
values: [off, on]
description: GET 00 88 00
- id: baudrate_state
type: integer
description: GET 00 89 00 - yz see SET
- id: number_ir_codes_state
type: integer
description: GET 00 18 00
- id: mounting_position_state
type: enum
values: [regular, flipped]
description: GET 00 19 00
- id: menu_state
type: enum
values: [off, on]
description: GET 00 98 00
- id: menu_unlock_state
type: enum
values: [off, on]
description: GET 00 9a 00
- id: menu_extra_unlock_state
type: enum
values: [off, on]
description: GET 00 9b 00
- id: video_format_state
type: enum
values: [ntsc, pal, off]
description: GET 00 52 00
- id: detail_state
type: enum
values: [off, low, medium, high]
description: GET 00 53 00
- id: pos_neg_blue_state
type: enum
values: [positive, negative, blue]
description: GET 00 54 00
- id: color_bw_state
type: enum
values: [color, black_white]
description: GET 00 55 00
- id: ext_int_state
type: enum
values: [intern, extern]
description: GET 00 57 00
- id: autosense_state
type: enum
values: [off, on]
description: GET 00 58 00
- id: extern_freeze_output_state
type: integer
description: GET 00 59 00 - returns 00 59 01 xy
- id: preview_output_state
type: enum
values: [preview, regular]
description: GET 00 5a 00
- id: image_mirror_state
type: enum
values: [off, horizontal, vertical, h_plus_v]
description: GET 00 5b 00
- id: memory_state
type: enum
values: [off, on]
description: GET 00 90 00
- id: showall_state
type: enum
values: [off, on]
description: GET 00 93 00
- id: erase_memory_state
type: enum
values: [manually, standby]
description: GET 00 94 00
- id: trigger_mode_state
type: enum
values: [off, on]
description: GET 00 6a 00
- id: trigger_edge_state
type: enum
values: [positive_edge, negative_edge]
description: GET 00 6b 00
- id: back_light_compensation_state
type: enum
values: [off, medium, high]
description: GET 00 6c 00
- id: gamma_normal_mode_state
type: integer
description: GET 00 68 00 - 0x00-0x03
- id: gamma_text_mode_state
type: integer
description: GET 00 69 00 - 0x00-0x03
- id: ethernet_mode_state
type: enum
values: [off, image_only, control_only, image_and_control, fw_update_only, image_and_fw, control_and_fw, image_control_and_fw]
description: GET 00 74 00
- id: multicast_mode_state
type: enum
values: [off, auto, continuous]
description: GET 00 75 00
- id: multicast_format_state
type: integer
description: GET 00 79 00 - yz see SET
- id: multicast_framerate_state
type: enum
values: [low, medium, high]
description: GET 00 7A 00
- id: multicast_resolution_table
type: string
description: GET 00 7B 00 - returns 00 7B XY ab cd ef .. (max 255)
- id: adjuster
type: string
description: GET 00 14 00 - returns 00 14 0X ab cd ef .. (max 255)
- id: production_date
type: string
description: GET 00 15 00 - returns 00 15 02 wxyz (week, year). e.g. "36,07"
- id: resolution_table
type: string
description: GET 00 17 00 - returns 00 17 yz ab cd ef .. (max 224 bytes, 16*14 byte entries)
- id: description_string
type: string
description: GET 00 18 00 - returns 00 18 yz ab cd ef .. (max 255)
- id: hd_tv_mask_position
type: integer
description: GET 00 19 00 - returns 00 19 01 ab (-50 to 50)
- id: firmware_erase_flash_state
type: integer
description: GET 00 b0 00 - 0x00-0x64 = 0%-100% firmware erased
- id: osd_transparency_state
type: enum
values: [off, on]
description: GET 00 c0 00
- id: osd_size_state
type: enum
values: [small, large]
description: GET 00 c1 00
- id: osd_horizontal_position_state
type: integer
description: GET 00 c2 00 - 0-100%
- id: osd_vertical_position_state
type: integer
description: GET 00 c3 00 - 0-100%
- id: osd_status_position_state
type: enum
values: [top, bottom]
description: GET 00 c4 00
- id: osd_selection_bar_color_state
type: integer
description: GET 00 c5 00
- id: osd_selected_text_color_state
type: integer
description: GET 00 c6 00
- id: osd_menu_text_color_state
type: integer
description: GET 00 c7 00
- id: osd_menu_headline_color_state
type: integer
description: GET 00 c8 00
- id: osd_menu_status_text_color_state
type: integer
description: GET 00 c9 00
# --- Block Inquiry (single command returns packed multi-value block) ---
- id: block_positions
type: object
description: "GET 00 10 01 00 - returns packed zoom/digital-zoom/focus/iris/mirror positions (see source byte map)"
- id: block_flags_unit_info
type: object
description: "GET 00 10 01 01 - returns flags + serial + version + model (see source byte map)"
- id: block_menu1
type: object
description: "GET 00 10 01 02 - returns packed menu-1 settings (see source byte map)"
- id: block_menu2
type: object
description: "GET 00 10 01 03 - returns packed menu-2 settings (see source byte map)"
- id: block_menu_ethernet
type: object
description: "GET 00 10 01 04 - returns packed ethernet menu settings (see source byte map)"
# --- Picture Transfer ---
- id: picture_header
type: object
description: "GET 00 b8 01 {yz} - returns 00 18 12 ... 20-byte header (width/height/flags/DMA size)"
- id: picture_block
type: object
description: "GET 00 b9 0a {ab cd ef gh ij kl mn op qr st} - returns 00 b9 01 yz (0x00=OK, 0x01=Failed)"
Variables
# Existing variables preserved.
- id: zoom_position
type: integer
get: "00 20 00"
set: "01 20 02 yz wx"
range: [0, 65535]
- id: focus_position
type: integer
get: "00 21 00"
set: "01 21 02 yz wx"
range: [0, 65535]
- id: digital_zoom_position
type: integer
get: "00 28 00"
set: "01 28 02 yz wx"
range: [0, 65535]
- id: mirror_x_position
type: integer
get: "00 25 00"
set: "01 25 02 yz wx"
range: [0, 65535]
- id: mirror_y_position
type: integer
get: "00 26 00"
set: "01 26 02 yz wx"
range: [0, 65535]
- id: light_focus_position
type: integer
get: "00 27 00"
set: "01 27 02 yz wx"
range: [0, 65535]
- id: r_gain
type: integer
get: "00 66 00"
set: "01 66 01 yz"
range: [0, 127]
description: Manual WB R Gain, offset representation −64 to +63
- id: b_gain
type: integer
get: "00 67 00"
set: "01 67 01 yz"
range: [0, 127]
description: Manual WB B Gain, offset representation −64 to +63
- id: shutter_speed_variable
type: integer
get: "00 63 00"
set: "01 63 02 yz wx"
range: [0, 65535]
description: Exposure time in lines
- id: ethernet_ip
type: string
get: "00 71 00"
set: "01 71 04 yz wx uv st"
- id: subnet_mask
type: string
get: "00 72 00"
set: "01 72 04 yz wx uv st"
- id: gateway_ip
type: string
get: "00 73 00"
set: "01 73 04 yz wx uv st"
- id: multicast_ip
type: string
get: "00 77 00"
set: "01 77 04 yz wx uv st"
- id: multicast_port
type: integer
get: "00 78 00"
set: "01 78 02 yz wx"
description: Port 8800-9000 encoded as hex 2260-2328
# ADDED variables
- id: iris_position
type: integer
get: "00 22 00"
set: "01 22 02 yz wx"
range: [0, 65535]
notes: "Protocol-1 compat note: GET 00 22 only allows length-0x00 commands (Prot1 compat)."
- id: mirror_arm_position
type: integer
get: "00 24 00"
set: "01 24 02 yz wx"
range: [0, 65535]
Events
# UNRESOLVED: no unsolicited notification mechanism described in source.
# Device does not send spontaneous messages on serial by default;
# Reply Mode (01 AA 01 01) must be enabled to get responses.
Macros
# Blank echo polling: send 32 (0x20) until unit replies 32 - use to
# confirm unit is ready before sending next command.
# Example provided in source: "While the unit is not ready, there is no answer."
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety interlock procedures in source.
# Long-execution commands exist - poll Blank Echo before next command.
# Firmware update commands (01 B0-B4) are destructive; source documents no
# confirmation sequence beyond erase-flash → data-start → data → data-stop.
Notes
- Ethernet control uses port 50915 (stated explicitly for room control systems).
- PoE supported on EYE-12 (see respective user manual — not included in this source).
- Backward compatible with Protocol 1 (first nibble of first byte = 0 → Protocol 2; otherwise Protocol 1).
- Error code 0xFF = unknown command. Error numbers: 1=Timeout, 2=Invalid Cmd, 3=Invalid Parameter, 4=Invalid Length, 5=Fifo Full, 6=Firmware Update Error, 7=Access Denied.
- Shortcut modes for terminal: "/" = Short SET, "+" = Long SET, "*" = GET. 3-second input timeout. Protocol 1 also supports "_" ASCII decimal input mode.
- USB 2.0 backward compatible with 1.0/1.1 at lower speed.
- No parity on serial; configurable baud rates: 9600/19200/38400/57600/115200 (default 115200).
- Firmware version readable via GET 00 13 (Protocol 1: command 0x76 returns "EYE-12 V1.10a").
- Reply modes (Protocol 1): $9C=off, $9D=one-byte ($06/$0F), $9E=two-byte, $9F=string ("OKAY"/"ERROR"). Reply mode change takes effect immediately on the command that changed it.
- Protocol 1 commands split into page 0 (standard) and page 1 (select via $31, auto-reverts to page 0 after execution).
- Source contains data-entry conflicts: opcode 0x18 reused for both "Number of IR Codes" (01 18 01 yz) and "Description" (01 18 yz AB CD...); Multicast Format table has duplicated index values. Recorded verbatim, not reconciled.
Upgrade pass complete. Added ~70 Protocol 2 SET actions (motor stop, macro, digital zoom, iris priority, height/light-mirror/light-focus, extended power/light/misc/menu/output/image-storing/exposure/color/ethernet/OSD, firmware update), full Protocol 1 legacy command set (~90 single-byte entries incl. page select, zoom/focus/iris/power/preset/menu/image/reply/image-storing/image-turn/misc/output-signal/resolution/trigger), ~50 missing GET feedbacks (block inquiry 00 10 01 00-04, picture transfer, all extended-state queries), iris_position + mirror_arm_position variables. Existing IDs/shapes preserved verbatim. Source conflicts (opcode 0x18 double-use, multicast format dup indices) recorded not reconciled.
Provenance
source_domains:
- wolfvision.com
- res.cloudinary.com
- manua.ls
source_urls:
- http://www.wolfvision.com/wolf/protocoll_eye12_scb12.pdf
- "https://wolfvision.com/media/1086/download/vz-wolfprot-doc.pdf?v=8"
- "https://res.cloudinary.com/iwh/image/upload/q_auto,g_center/assets/1/26/Documents/WolfVision/VZ_P18/vz_p18_doc_5.pdf"
- https://wolfvision.com/wolf/commands_cynap_wolfvision/instructions/wolfprotprogguide.pdf
- https://www.manua.ls/wolfvision
retrieved_at: 2026-07-17T05:18:48.866Z
last_checked_at: 2026-07-22T08:03:55.482Z
Verification Summary
verdict: verified
checked_at: 2026-07-22T08:03:55.482Z
matched_actions: 220
action_count: 220
confidence: medium
summary: "All 220 spec actions (107 Protocol-2 SET opcodes + 113 Protocol-1 legacy single-byte codes, incl. page-select) match source literally with correct shapes; Feedbacks/Variables cover essentially the full GET/Block-Inquiry/Picture-Transfer catalogue; transport values (port 50915, 115200 8N1) verbatim in source. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "USB control protocol details not documented beyond physical layer"
- "TCP/HTTP control base URL not stated beyond port 50915"
- "multicast port range 8800–9000 but exact default not stated"
- "no unsolicited notification mechanism described in source."
- "no safety interlock procedures in source."
- "Block-inquiry byte maps only partially decoded in source (bitfield diagrams garbled in extraction)"
- "Picture Transfer protocol (00 b8 / 00 b9) documented but block layout complex; only header shape captured"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0