# 紫云广播同步屏(broadcast-client)产品介绍 ## 1. 产品定位 **紫云广播同步屏**(工程名 `broadcast-client`)是面向政务大厅、办税服务厅等场景的**大厅信息展示与叫号播报桌面客户端**。它在办事窗口外的 LED 条屏、同步屏或综合大屏上,实时展示窗口编号、叫号提示、滚动字幕、时钟及综合业务信息,并通过 Socket 接收排队系统推送,与窗口呼叫终端联动。 产品基于 **Tauri 2 + Vue 3 + TypeScript** 构建,支持**同步屏**与**综合屏**两种展示模式,提供可视化配置界面、Socket 服务、系统托盘与内网 APT 升级能力,适配 **Linux 桌面(含麒麟 V10)** 的 amd64 / arm64 部署。 --- ## 2. 典型应用场景 | 场景 | 说明 | |------|------| | 窗口条屏 | 在屏幕顶部横条展示多窗口编号与「请 XX 号办理」等动态文案 | | 叫号联动 | 接收后台 `CALL` 类 Socket 报文,按 `windowId` 更新对应窗口区域文字 | | 滚动字幕 | 配置横幅区域,持续滚动宣传或提示语 | | 时钟展示 | 将某窗口区域切换为 `hh:mm` 时钟,用于非叫号时段 | | 综合大屏 | 全屏展示大厅名称、多行叫号文字、底部字幕及可选视频轮播 | | 多屏分工 | 通过勾选「同步屏 / 综合屏 / 语音播报」控制各通道是否启用 | --- ## 3. 核心功能 ### 3.1 同步屏(BroadcastView) 同步屏面向**超宽横条**显示设备,核心能力包括: **标尺与分段显示** - 逻辑画布宽度可达数千像素(可配置),高度默认 64px 量级。 - 当物理屏幕宽度小于逻辑宽度时,按「横向切片、纵向堆叠」自动分段,保证超宽内容在窄屏上完整可见。 - 标尺刻度:10px 小格、50px 中格、100px 大格,便于运维对齐物理 LED 布局。 **窗口区域** - 可配置多个「窗口区域」,每个区域包含: - **窗口号区域**:显示窗口编号,支持圆圈边框、字号、颜色、粗细等样式。 - **文本区域**:分为静态文本与动态文本;动态文本由 Socket 报文驱动更新。 - 支持将区域切换为**时钟模式**(仅显示时间,样式沿用动态文本配置)。 - 子元素支持跨分段连续显示,避免在切断处出现错位或缺失。 **滚动字幕** - 独立配置字幕区域的位置、尺寸、文字内容、字号颜色与滚动速度,文字自左向右循环滚动。 **窗口行为** - 无边框、黑色背景、置顶显示;支持最小化后从任务栏恢复。 - 右键菜单:打开配置、最小化、退出等。 ### 3.2 综合屏(CompositeView) 综合屏面向**大厅全屏电视或投影**,布局分为: | 区域 | 占比(约) | 内容 | |------|------------|------| | 头部 | 12% | 大厅名称(可配字号、颜色) | | 中部 | 76% | 左右分栏:左侧文字叫号区;右侧可选文字区或视频轮播区 | | 底部 | 12% | 滚动字幕 | **文字叫号逻辑** - 展示报文中的 `voiceText`(语音文案同步为可见文字)。 - 按配置行数从上往下堆叠:新叫号占据第一行,旧内容下移;超出行数时淘汰最早一条。 - 无视频时,左右文字区可分担溢出内容。 **视频轮播** - 可配置多个视频 URL(分号分隔)、音量,支持轮播播放。 **交互** - 启动后全屏显示;**双击**在全屏与窗口化之间切换。 ### 3.3 Socket 叫号服务 - 配置界面可启动本地 Socket 服务(默认监听 **9501** 端口)。 - 界面以**红绿灯**指示服务运行状态。 - 典型报文示例(`action: "CALL"`): ```json { "action": "CALL", "windowId": 1, "windowName": "A12窗口", "ledAddress": "192.168.1.100", "timestamp": 1712567890000, "payload": { "ticketNumber": "A001", "displayText": "请 A001 号办理", "voiceText": "请 A001 号到 A12 窗口办理", "flash": true } } ``` - `windowId` 对应配置中的窗口区域编号;`displayText` 更新同步屏动态文本;综合屏使用 `voiceText` 参与文字区展示。 ### 3.4 可视化配置(ConfigView) - 独立配置窗口:可拖动、白底、折叠面板组织各配置项。 - 支持配置:主画布尺寸、分段列表(手动添加/编辑每段长度与起点)、标尺开关、窗口区域、滚动字幕、综合屏参数、Socket 与输出通道勾选等。 - 配置持久化至 `broadcast-config.json`,启动时加载并**实时生效**同步屏布局。 - 保存配置后可启动 Socket 服务;支持「同步屏 / 综合屏 / 语音播报」多选输出(语音通道按产品规划扩展)。 ### 3.5 系统托盘与生命周期 - 托盘图标:**双击**激活应用;右键菜单可打开配置窗口、退出应用。 - 退出时从系统托盘移除图标,兼容麒麟 V10 等桌面环境。 - 未勾选「同步屏」时,同步屏窗口不显示且不渲染内容,仅保留综合屏或其他已启用通道。 ### 3.6 日志与升级 - Socket 服务启动、停止、收包与处理过程写入本地日志(文件名含时间戳,支持大小与保留天数限制)。 - 支持内网 **APT 检查更新** 与紫云软件源自动配置(与 call-client 同源发布体系)。 --- ## 4. 与呼叫终端、后台的关系 ```text 排队叫号后台 ──HTTP──► call-client(窗口呼叫、办理) │ └──Socket(9501)──► broadcast-client(同步屏 / 综合屏展示) ``` - **call-client**:办事员在窗口侧发起呼叫,后台可向条屏推送叫号报文。 - **broadcast-client**:在条屏或大厅屏上呈现叫号结果,无需办事员手动刷新页面。 - 两者可独立部署:仅展示大厅时可只装广播客户端;完整方案建议组合部署。 --- ## 5. 部署与运行环境 | 项目 | 说明 | |------|------| | 操作系统 | Linux 桌面(推荐麒麟 V10;亦支持 Windows 开发调试) | | 安装方式 | `.deb` 包或内网 APT 仓库 | | 架构 | amd64、arm64 | | 网络 | 需开放 Socket 监听端口(默认 9501),并保证叫号推送源可达 | | 配置目录 | `~/.config/com.ziyun.broadcastclient/broadcast-config.json` | | 日志目录 | 同配置目录下 `socket-service-*.log` | | 显示建议 | 同步屏:超宽横屏或分段拼接屏;综合屏:1080p 及以上电视/投影 | | 当前版本 | 0.1.1(以 `tauri.conf.json` 为准) | --- ## 6. 技术特点(简述) - **分段渲染引擎**:`segmentService`、`childSliceService` 等模块将超宽逻辑坐标映射到物理屏幕,保证窗口区与子元素在切段处视觉连续。 - **数据驱动 UI**:配置变更即驱动重算布局,无需重启进程即可更新同步屏。 - **多视图单入口**:通过 URL hash / query 区分同步屏、综合屏、配置页,Tauri 多窗口复用同一前端构建产物。 - **轻量 Tauri 壳**:适合 7×24 小时常驻大厅设备,资源占用低于传统 Electron 方案。 --- ## 7. 产品价值总结 紫云广播同步屏将排队叫号结果**自动、醒目、可配置**地呈现给大厅群众:窗口条屏解决「看哪号、去哪窗」的问题,综合屏解决「大厅级信息汇总与宣传」的问题。可视化配置与 Socket 接入降低了现场布线后的调试成本,与紫云呼叫终端共同构成**窗口办理 + 大厅引导**的完整智慧办税展示方案。