串口与 TCP / UDP 通信
通信控件适合展厅中控、设备联动和工业设备对接。需要先从设备厂商取得通信协议,包括连接方式、端口参数、指令字节、结束符及校验规则;它不会自动识别设备协议。
整个过程是:通信初始化建立连接 → 通信发送选择这条连接并发送指令 → 根据回包或设备动作确认结果。 管理端用于配置,实际连接从播放节目的显示端发起。
先选择连接方式
| 方式 | 使用场景 | 需要填写 |
|---|---|---|
| TCP | 网络中控主机、带 TCP 接口的设备 | 对方地址、端口。显示端作为连接发起方。 |
| UDP | 使用 UDP 指令的局域网设备 | 对方地址、端口。先确认路由、防火墙和对方协议。 |
| 系统串口 | 设备自带串口,或系统已识别的串口适配器 | 端口路径、波特率等。 |
| Android USB 串口 | Android USB Host 连接受支持的 USB 串口设备 | USB 匹配条件、串口参数及系统授权。 |
串口执行适用于具备相应能力的 Android、Windows、Linux 或 macOS 显示端。Web 和 iOS 管理端可以编辑参数,不能据此认为 Web/iOS 播放时可执行串口。是否可用仍取决于系统、驱动、硬件和设备权限。
1. 添加“通信-初始化”
在节目子屏幕中添加内置控件“通信-初始化”,起一个易识别的名字,例如“展厅控制器”。选择 TCP、UDP 或串口后填写参数。让该控件在需要通信的播放期间保持运行;如果还要显示回包,给它留出可见区域。建议把初始化控件和操作按钮放在不同子屏幕,让两者同时运行;不要放在同一子屏幕的轮播序列中,切走初始化控件会关闭其连接。
TCP / UDP
填写目标设备在显示端所在网络中可访问的 IP 或主机名及端口。管理电脑能访问该地址,不代表显示端也能访问。127.0.0.1 指显示端自己,仅在服务确实运行于同一设备时使用。
系统串口
常见路径示例:Windows COM3,Android/Linux /dev/ttyS1,macOS /dev/cu.usbserial-...。这些只是示例,必须使用实际端口。
| 参数 | 说明 |
|---|---|
| 波特率 | 默认 9600,按对方设备协议设置。 |
| 数据位、停止位、校验、流控 | 默认 8 数据位、1 停止位、无校验、无流控;两端必须匹配。 |
| 端口权限 | Android/Linux 需系统允许访问对应节点;应用不会自动提权或修改系统权限。 |
同一端口只保留一个初始化控件,多个发送控件共用这条连接,避免互相占用。
Android USB 串口
使用支持 USB Host 的设备和受支持的适配器,现场允许 Android 的 USB 授权。VID/PID 可选填,使用 0—65535 的十进制数;接口编号默认 -1 表示自动选择。留空自动匹配时,应只连接一个符合条件的设备;多个候选设备时填写明确条件。
管理端编辑参数不会替显示端请求 USB 授权,也不会自动列出显示端的硬件。Genymotion 参数截图只演示配置,不能代替实物串口测试。
2. 配置“通信-发送”
通过交互素材的点击事件添加“通信-发送”,将“通信目标”设为前面的初始化控件,再填写内容。不要把通信发送当作独立连接重复配置地址。
| 内容格式 | 示例 | 实际含义 |
|---|---|---|
| 文本 | PING | 按 UTF-8 发送这四个字符。 |
| 十六进制 | 50 49 4E 47 0D 0A | 发送 PING 后跟回车、换行两个字节。 |
以上仅用于说明格式,不是通用设备开关指令。十六进制中的空格可用于阅读;应用不会自动追加回车、换行或 CRC。若厂商要求结束符或校验字节,请按协议填写完整内容。
3. 需要回包时开启接收显示
在初始化控件开启接收数据显示,选择文本或十六进制。回包会显示在初始化控件所在区域,适合现场调试;保留最近约 8 KiB,内容增加时自动滚动,可清空。
接收内容只属于当前播放会话,退出或修改连接参数后会清空,不是长期日志。TCP 和串口是字节流,一次显示的片段不保证是一条完整业务消息。UDP 接收的是配置远端发回到当前发送端口的数据,不是独立的固定端口监听服务。
4. 到实际显示端验证
- 先使用无危险动作的测试指令,确认接线、参数和网络。
- 投放节目,让初始化控件运行,再点击发送按钮。
- 检查设备实际动作或厂商定义的应答,必要时使用十六进制查看原始字节。
- 断线后恢复连接并再次手动触发;不要依赖断线期间的指令自动补发。
“发送成功”表示数据交给了连接或驱动,不能证明设备已执行。无回包时依次检查连接目标、串口占用/权限、参数、结束符及厂商协议;需要日志时见远程维护。
