You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tauri-client/docs/broadcast-client-产品介绍.md

162 lines
7.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 紫云广播同步屏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 接入降低了现场布线后的调试成本,与紫云呼叫终端共同构成**窗口办理 + 大厅引导**的完整智慧办税展示方案。