获取设备列表
接口说明
查询当前应用下的玩具车设备列表,支持分页查询。返回设备基本信息、状态和使用情况。
请求
http
GET /device/openList请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| token | header | string | 是 | 授权token,通过 /app/token 接口获取 |
| page | query | integer | 否 | 页码,从1开始,默认1 |
| pageSize | query | integer | 否 | 每页数量,默认10 |
| name | query | string | 否 | 设备名称,模糊搜索 |
| status | query | string | 否 | 设备状态,ONLINE-在线/OFFLINE-离线 |
| sn | query | string | 否 | 设备序列号 |
请求示例
bash
curl -X GET "http://182.254.182.254:9090/device/openList?page=1&pageSize=10&status=ONLINE" \
-H "token: <your_access_token>"javascript
const response = await fetch(
'http://182.254.182.254:9090/device/openList?page=1&pageSize=10&status=ONLINE',
{
method: 'GET',
headers: {
'token': '<your_access_token>'
}
}
);
const data = await response.json();响应
成功响应
状态码:200
json
{
"status": 200,
"desc": "操作成功!",
"time": 1640995200,
"data": {
"items": [
{
"id": 12345,
"name": "玩具车001",
"userId": 1001,
"sn": "TOY_CAR_001",
"appName": "我的应用",
"appId": "RC_APP25090001",
"deviceType": "智能玩具车",
"status": "ONLINE",
"useStatus": "IDLE",
"bindTime": 1640995200000,
"createTime": 1640995200000
}
],
"pager": {
"page": 1,
"pageSize": 10,
"total": 100,
"totalPages": 10
}
}
}响应字段
| 名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| status | integer | 是 | 响应状态:200-成功,401-需要重新授权,404-接口不存在,500-错误信息 |
| desc | string | 是 | 响应描述 |
| time | integer | 是 | 响应时间戳 |
| data | object | 是 | 响应数据 |
| data.items | array | 是 | 设备列表 |
| data.items[].id | integer | 是 | 设备ID |
| data.items[].name | string | 是 | 设备名称 |
| data.items[].userId | integer | 是 | 绑定的用户ID |
| data.items[].sn | string | 是 | 设备序列号 |
| data.items[].appName | string | 是 | 应用名称 |
| data.items[].appId | string | 是 | 应用ID |
| data.items[].deviceType | string | 是 | 设备类型名称 |
| data.items[].status | string | 是 | 设备状态:ONLINE-在线/OFFLINE-离线 |
| data.items[].useStatus | string | 是 | 使用状态:IDLE-空闲中/USING-使用中 |
| data.items[].bindTime | integer | 是 | 绑定时间 |
| data.items[].createTime | integer | 是 | 创建时间 |
| data.pager | object | 是 | 分页信息 |
| data.pager.page | integer | 是 | 当前页码 |
| data.pager.pageSize | integer | 是 | 每页数量 |
| data.pager.total | integer | 是 | 总记录数 |
| data.pager.totalPages | integer | 是 | 总页数 |
业务场景
- 设备管理:查看应用中所有已绑定的玩具车设备
- 状态监控:实时了解设备的在线状态和使用状态
- 设备筛选:根据设备类型、状态等条件筛选设备
- 控制准备:在发起控制前查询设备是否空闲可用
关键字段说明
status(设备状态)
- ONLINE:设备已连接,可以控制
- OFFLINE:设备未连接,无法控制
useStatus(使用状态)
- IDLE:设备未被使用,可以立即控制
- USING:设备正在被控制,无法同时被其他用户控制
推荐做法
在调用 /device/ctrlUrl 接口之前,先调用此接口查询设备的 useStatus 状态,选择 useStatus 为"IDLE"的设备进行控制。
使用建议
- 根据
status筛选在线设备(status=ONLINE) - 在返回结果中筛选
useStatus为 "IDLE" 的空闲设备 - 使用分页参数优化查询性能
- 定期刷新列表以获取最新状态
