278 lines
4.7 KiB
Markdown
278 lines
4.7 KiB
Markdown
|
# 翻转屏通信协议文档
|
|||
|
|
|||
|
本文档描述了翻转屏设备的通信协议格式。所有通信采用JSON格式,包括从控制端到设备的请求和从设备到控制端的响应。
|
|||
|
|
|||
|
## 通信基本结构
|
|||
|
|
|||
|
### 请求格式(控制端 → 设备)
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121, // 设备ID
|
|||
|
"JSON_id": 1, // 消息唯一标识
|
|||
|
"Flip-screen": { // 翻转屏指令
|
|||
|
"command_type": { // 具体命令类型
|
|||
|
// 命令参数
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 响应格式(设备 → 控制端)
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 1, // 与请求消息相同的标识
|
|||
|
"Flip-screen": { // 翻转屏响应
|
|||
|
"command_type": { // 与请求相同的命令类型
|
|||
|
"status": "success" // 操作状态: "success" 或 "failed"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0 // 错误码,0表示成功
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 功能指令详解
|
|||
|
|
|||
|
### 1. 平台控制(上升/下降)
|
|||
|
|
|||
|
#### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 2,
|
|||
|
"Flip-screen": {
|
|||
|
"platform_control": {
|
|||
|
"direction": "up" // 可选值: "up" 或 "down"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 2,
|
|||
|
"Flip-screen": {
|
|||
|
"platform_control": {
|
|||
|
"status": "success"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 2. 屏幕开关控制
|
|||
|
|
|||
|
#### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 3,
|
|||
|
"Flip-screen": {
|
|||
|
"screen_control": {
|
|||
|
"power": "on" // 可选值: "on" 或 "off"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 3,
|
|||
|
"Flip-screen": {
|
|||
|
"screen_control": {
|
|||
|
"status": "success"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 3. 灯模式控制
|
|||
|
|
|||
|
#### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 4,
|
|||
|
"Flip-screen": {
|
|||
|
"light_mode": {
|
|||
|
"mode": "auto" // 灯光模式: "auto", "manual", 等
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 4,
|
|||
|
"Flip-screen": {
|
|||
|
"light_mode": {
|
|||
|
"status": "success"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 4. 单个灯控制
|
|||
|
|
|||
|
#### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 5,
|
|||
|
"Flip-screen": {
|
|||
|
"light_control": {
|
|||
|
"light_id": 1, // 灯ID编号: 1-6
|
|||
|
"state": "on" // 可选值: "on" 或 "off"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 5,
|
|||
|
"Flip-screen": {
|
|||
|
"light_control": {
|
|||
|
"status": "success"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 5. 亮度调节
|
|||
|
|
|||
|
#### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 6,
|
|||
|
"Flip-screen": {
|
|||
|
"brightness_control": {
|
|||
|
"value": 70 // 亮度值: 0-100
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 6,
|
|||
|
"Flip-screen": {
|
|||
|
"brightness_control": {
|
|||
|
"status": "success"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 6. 节目控制
|
|||
|
|
|||
|
#### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 7,
|
|||
|
"Flip-screen": {
|
|||
|
"program_control": {
|
|||
|
"program_id": 1 // 节目ID
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 7,
|
|||
|
"Flip-screen": {
|
|||
|
"program_control": {
|
|||
|
"status": "success"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 错误处理
|
|||
|
|
|||
|
当指令执行失败时,设备会返回非零的错误码和错误信息:
|
|||
|
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 3,
|
|||
|
"Flip-screen": {
|
|||
|
"screen_control": {
|
|||
|
"status": "failed"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 1001,
|
|||
|
"error_msg": "Device not responding"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 错误码说明
|
|||
|
|
|||
|
| 错误码 | 描述 |
|
|||
|
|--------|------|
|
|||
|
| 0 | 成功 |
|
|||
|
| 1001 | 设备无响应 |
|
|||
|
| 1002 | 参数错误 |
|
|||
|
| 1003 | 设备忙 |
|
|||
|
| 1004 | 操作超时 |
|
|||
|
| 1005 | 设备未就绪 |
|
|||
|
|
|||
|
|
|||
|
## 设备状态查询
|
|||
|
|
|||
|
### 请求:
|
|||
|
```json
|
|||
|
{
|
|||
|
"board_id": 121,
|
|||
|
"JSON_id": 8,
|
|||
|
"Flip-screen": {
|
|||
|
"status_query": {
|
|||
|
"type": "all" // 查询类型: "all", "platform", "screen", "lights", "program"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 响应:
|
|||
|
```json
|
|||
|
{
|
|||
|
"JSON_id": 8,
|
|||
|
"Flip-screen": {
|
|||
|
"status": {
|
|||
|
"platform": {
|
|||
|
"position": "up" // "up" 或 "down"
|
|||
|
},
|
|||
|
"screen": {
|
|||
|
"power": "on", // "on" 或 "off"
|
|||
|
"brightness": 70 // 0-100
|
|||
|
},
|
|||
|
"lights": [
|
|||
|
{"id": 1, "state": "on", },
|
|||
|
{"id": 2, "state": "off",},
|
|||
|
{"id": 3, "state": "on", },
|
|||
|
{"id": 4, "state": "on", },
|
|||
|
{"id": 5, "state": "off",},
|
|||
|
{"id": 6, "state": "on", }
|
|||
|
],
|
|||
|
"program": {
|
|||
|
"current_id": 1,
|
|||
|
"available": [1, 2, 3, 4, 5]
|
|||
|
},
|
|||
|
"light_mode": "auto"
|
|||
|
}
|
|||
|
},
|
|||
|
"error_code": 0
|
|||
|
}
|
|||
|
```
|