152 lines
2.7 KiB
Markdown
152 lines
2.7 KiB
Markdown
# 边缘盒子
|
|
|
|
topic 中的 `location` 指景区编码, `point` 指景区内具体点位
|
|
|
|
## 1. 接收启动
|
|
|
|
Topic: `server/${location}/${point}/play`
|
|
|
|
Payload:
|
|
|
|
```json lines
|
|
{
|
|
// 设备超时时长(s)
|
|
"timeout": 30,
|
|
// 是否需要整体电源控制
|
|
"power": true,
|
|
// 游戏中背景音乐(支持 file:// 本地文件地址、 http(s):// 远程文件地址)
|
|
"bgm": "",
|
|
// 整体设备音量(0-1)
|
|
"volume": 0.5,
|
|
// 屏幕默认打印(设备待机时展示文本)
|
|
"default-print": "",
|
|
// 文本转语音整体控制
|
|
"tts": {
|
|
// 开始语音
|
|
"start": "",
|
|
// 结束语音
|
|
"end": "",
|
|
// 终止语音
|
|
"stop": "",
|
|
// 固定节点语音
|
|
"timer": [
|
|
{
|
|
// 时间节点(s)
|
|
"time": 10,
|
|
// 语音文字
|
|
"value": ""
|
|
},
|
|
...
|
|
]
|
|
},
|
|
// 屏幕打印控制
|
|
"print": [
|
|
{
|
|
// 时间节点(s)
|
|
"time": 10,
|
|
// 展示文字
|
|
"text": "",
|
|
// 持续时长(s)
|
|
"duration": 10
|
|
},
|
|
...
|
|
],
|
|
// 根据具体游戏特定
|
|
"game": {}
|
|
}
|
|
```
|
|
|
|
[游戏节点报文](./game.md)
|
|
|
|
#### 例: 入口欢迎播报
|
|
|
|
```json lines
|
|
{
|
|
"volume": 1,
|
|
"tts": {
|
|
"start": "欢迎前来挑战!"
|
|
}
|
|
}
|
|
```
|
|
|
|
## 2. 事件反馈
|
|
|
|
### 状态变更
|
|
|
|
Topic: `device/${location}/${point}/status`
|
|
|
|
Payload:
|
|
|
|
```text
|
|
0
|
|
```
|
|
|
|
> 0 待机; 1 使用中; -1 状态异常
|
|
|
|
## 3. 接收指令
|
|
|
|
### 终止
|
|
|
|
Topic: `server/${location}/${point}/command`
|
|
|
|
Payload:
|
|
|
|
```text
|
|
stop
|
|
```
|
|
|
|
### 终止后台
|
|
|
|
Topic: `server/${location}/${point}/command`
|
|
|
|
Payload:
|
|
|
|
```text
|
|
stop-bg
|
|
```
|
|
|
|
### 查询状态
|
|
|
|
Topic: `server/${location}/${point}/command`
|
|
|
|
Payload:
|
|
|
|
```text
|
|
status
|
|
```
|
|
|
|
> 设备接收到该指令会立即向 `device/${location}/${point}/status` 发送一次当前状态
|
|
|
|
## 4. 后台执行
|
|
|
|
Topic: `server/${location}/${point}/bg`
|
|
|
|
Payload:
|
|
|
|
```json lines
|
|
{
|
|
// 开始时间戳(s), default 0, 0表示立即执行
|
|
"start": 1730793361,
|
|
// 结束时间戳(s), default 0, 0表示无限执行
|
|
"end": 1730793368,
|
|
// 执行项
|
|
"items": [
|
|
{
|
|
// 开始时间戳(s), 默认根的时间戳, 只有在根执行时间内才会执行
|
|
"start": 1730793361,
|
|
// 结束时间戳(s), 默认根的时间戳, 只有在根执行时间内才会执行
|
|
"end": 1730793368,
|
|
// 间隔时间(s), default 0
|
|
"interval": 0,
|
|
// 事件类型(0: 音频; 1: 视频; 2: 网页; 3: TTS; 4: 继电器), default 0
|
|
"type": 3,
|
|
// 事件数据(TTS为文字, 继电器为端口号, 其他都为地址链接。支持 file:// 本地文件地址、 http(s):// 远程文件地址)
|
|
"data": "",
|
|
},
|
|
...
|
|
]
|
|
}
|
|
```
|
|
|
|
> 同一个类型的后台任务只能有一个,当有新的任务到达时会覆盖之前的任务
|