Summary
Pilot MS3 Pro is a multimedia playback software supporting UDP and TCP control. The software runs on a media server and accepts commands from a central control device. Default UDP port is 18959 (configurable); default TCP port is 19958 (configurable). UDP data reporting uses port 18961 (fixed). The protocol uses a TLV-based binary frame format with little-endian encoding.
Transport
protocols:
- udp
- tcp
addressing:
port: 18959 # default UDP port; configurable
tcp_port: 19958 # default TCP port; configurable
reporting_port: 18961 # UDP data reporting port; fixed
auth:
type: none # inferred: no auth procedure in source
Traits
- routable # inferred: program/layer selection commands present
- levelable # inferred: volume adjustment commands present
- queryable # inferred: program list and layer list retrieval commands present
Actions
- id: add_program
label: Add Program
kind: action
params:
- name: program_count
type: integer
description: Total number of programs
- name: program_index
type: integer
description: Program index in program list (0-based)
- name: program_id
type: integer
description: Program ID (0-based)
- name: program_name
type: string
description: Program name (UTF-8, up to 127 chars)
- name: is_empty
type: integer
description: "0 = empty program, 1 = non-empty"
- id: delete_program
label: Delete Single Program
kind: action
params:
- name: program_id
type: integer
description: Program ID to delete (0-based)
- id: detect_software
label: Detect Software
kind: action
params:
- name: soft_name
type: string
description: Sender software name (UTF-8, up to 63 chars)
- id: retrieve_program_list
label: Retrieve Program List
kind: action
params:
- name: soft_name
type: string
description: Sender software name (UTF-8, up to 63 chars)
- id: send_program_fade
label: Send Specified Program to Screen (Fade In/Fade Out)
kind: action
params:
- name: soft_name
type: string
description: Sender software name (UTF-8, up to 63 chars)
- name: program_id
type: integer
description: Program ID to display (0-based)
- id: send_program_cut
label: Send Specified Program to Screen (Cut)
kind: action
params:
- name: soft_name
type: string
description: Sender software name (UTF-8, up to 63 chars)
- name: program_id
type: integer
description: Program ID to display (0-based)
- id: pause_program
label: Pause Specified Program
kind: action
params:
- name: program_id
type: integer
description: Program ID to pause (0-based)
- id: enable_ftb
label: Enable FTB
kind: action
params: []
- id: disable_ftb
label: Disable FTB
kind: action
params: []
- id: enable_global_sound
label: Enable Global Sound
kind: action
params: []
- id: disable_global_sound
label: Disable Global Sound
kind: action
params: []
- id: adjust_global_volume
label: Adjust Global Volume
kind: action
params:
- name: volume
type: integer
description: Volume level (0-100)
- id: enable_layer_sound
label: Enable Specified Layer Sound
kind: action
params:
- name: layer
type: integer
description: Layer index (0-based)
- id: disable_layer_sound
label: Disable Specified Layer Sound
kind: action
params:
- name: layer
type: integer
description: Layer index (0-based)
- id: increase_global_volume
label: Increase Global Volume
kind: action
params:
- name: volume
type: integer
description: Volume step (1)
- id: decrease_global_volume
label: Decrease Global Volume
kind: action
params:
- name: volume
type: integer
description: Volume step (1)
- id: turn_page
label: Turn Pages for PowerPoint/Excel/PDF/Word/Media Collections
kind: action
params:
- name: layer_index
type: integer
description: Layer index
- name: operation_type
type: integer
description: "1 = previous page, 2 = next page"
- id: pause_program_by_number
label: Pause Specified Program by Program Number
kind: action
params:
- name: program
type: integer
description: Program index (0-based)
- id: play_program_by_number
label: Play Specified Program by Program Number
kind: action
params:
- name: program
type: integer
description: Program index (0-based)
- id: stop_program_by_number
label: Stop Specified Program by Program Number
kind: action
params:
- name: program
type: integer
description: Program index (0-based)
- id: global_play_pause_stop
label: Global Play, Pause and Stop
kind: action
params:
- name: state
type: integer
description: "0 = Play, 1 = Pause, 2 = Stop"
- id: retrieve_layer_list
label: Retrieve Layer List
kind: action
params: []
- id: enable_test_pattern
label: Enable Test Pattern
kind: action
params: []
- id: disable_test_pattern
label: Disable Test Pattern
kind: action
params: []
- id: play_previous_next_program
label: Play Previous or Next Program
kind: action
params:
- name: state
type: integer
description: "0 = play previous, 1 = play next"
- id: pause_play_stop_timeline
label: Pause, Play, or Stop Timeline
kind: action
params:
- name: state
type: integer
description: "0 = Pause, 1 = Play, 2 = Stop, 3 = Play from beginning"
- id: jump_timeline_to_time
label: Jump to Specified Time on Timeline
kind: action
params:
- name: state
type: integer
description: Target time in milliseconds
- id: play_media_on_layer
label: Play Media on Specific Layer
kind: action
params:
- name: cow_index
type: integer
description: Column (program index)
- name: row_index
type: integer
description: Row (layer index)
- id: jump_timeline_to_cue
label: Jump Timeline to Specific Cue
kind: action
params:
- name: cue_index
type: integer
description: Timeline cue index (0-based)
Feedbacks
# All commands return a response TLV with a Tag matching the request
# Response format: Tag + Length + Value[] (empty for most commands)
#
# Retrieve Program List response contains:
# - ProgramCount: total number of programs
# - ProgramIndex: program ID index (0-based)
# - ProgramId: program ID (0-based)
# - ProgramName: program name (UTF-8, up to 127 chars)
# - IsEmpty: 0=empty, 1=non-empty
#
# Detect Software response contains:
# - HostName: media server name
# - Ip: media server IP
# - SoftName: multimedia playback software name
# - SoftVersion: software version
#
# Retrieve Layer List response contains:
# - LayerId: layer index (0-based)
# - LayerName: layer name (UTF-8, up to 31 chars)
Variables
# UNRESOLVED: no standalone settable parameters documented separately from actions
Events
# UNRESOLVED: no unsolicited event notifications described in source
Macros
# UNRESOLVED: no multi-step macro sequences documented in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source
Notes
The protocol frame structure uses a 4-byte head 0x55CC55CC followed by: Packet Type (2 bytes), Protocol Version (2 bytes), Sequence (2 bytes), Content Length (2 bytes). Content area uses nested TLV (Tag-Length-Value) encoding. Little-endian byte order is used throughout.
Program IDs start from 0 and are reordered on software restart. Program numbers are stable across delete/add operations. Layer numbers start from 0 (top to bottom on display).
UDP data reporting port 18961 is fixed and cannot be changed. Online and offline services only support UDP; other services may use TCP.
Provenance
source_domains:
- en-pixelhue001.oss-us-east-1.aliyuncs.com
source_urls:
- "https://en-pixelhue001.oss-us-east-1.aliyuncs.com/Specifications/Pilot%20MS3%20Pro%20Multimedia%20Playback%20Software%20Control%20Protocol-V2.5.0.pdf"
retrieved_at: 2026-04-30T04:45:41.485Z
last_checked_at: 2026-06-02T22:13:09.805Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:13:09.805Z
matched_actions: 29
action_count: 29
confidence: medium
summary: "All 29 spec actions traced to source (dip-safe re-verify). (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "serial port config (baud rate, data bits, parity, stop bits) not stated in source"
- "no standalone settable parameters documented separately from actions"
- "no unsolicited event notifications described in source"
- "no multi-step macro sequences documented in source"
- "no safety warnings or interlock procedures in source"
- "serial port configuration not documented, though protocol tables list \"UDP/TCP/Serial Port\" as supported"
- "authentication mechanism not described"
- "firmware version compatibility not stated"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0