设置 RS485 波特率
设置支持 RS485 的设备的串口波特率。该接口会向设备下发配置命令,并等待设备确认。
注意
baudRate 是写入设备的波特率,单位为 bps,取值范围为 1 到 65535。
适用范围
- 仅支持具备 RS485 能力且支持波特率配置的设备。
- 建议先调用 查询设备列表 获取
deviceId,再调用 查询设备类型定义列表 确认设备能力。 - 设置波特率会影响后续 RS485 透传通信,请确认总线从站使用相同波特率。
限流
平台会对配置类命令实施限流,防止设备被高频配置影响稳定性。收到 429 RATE_LIMITED 时,应根据 Retry-After 响应头或响应体中的 retryAfterSeconds 再重试。
同步等待
- 首次请求最多同步等待约
10秒。 - 如果设备在等待窗口内确认配置,返回
status=SUCCESS,并在result.baudRate中返回本次写入值。 - 如果等待窗口内未收到确认,返回
status=TIMEOUT,表示本次配置未确认成功;此时通常不会返回result。 - 如果调用方复用同一个
Idempotency-Key重试,而原请求仍在等待设备确认,则可能返回SENT。
端点
http
PUT /wlte/v1/devices/{deviceId}/rs485/baud-rate权限要求
| Scope | 必须 | 说明 |
|---|---|---|
device:config | 是 | 修改指定设备的 RS485 波特率配置 |
请求
完整地址:
http
PUT {baseUrl}/wlte/v1/devices/{deviceId}/rs485/baud-rate请求头:
http
Authorization: Bearer {accessToken}
Content-Type: application/json
Accept: application/json
Idempotency-Key: <调用方生成的唯一字符串>路径参数:
| 参数 | 类型 | 必填 | 规则 |
|---|---|---|---|
deviceId | string | 是 | 不能为空 |
请求体:
json
{
"baudRate": 9600
}字段规则:
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
baudRate | integer | 是 | 波特率,单位 bps,取值范围 1 到 65535 |
Idempotency-Key
Idempotency-Key 是必填请求头,由调用方生成的唯一字符串,用于标识一次配置意图。服务端通过它防止网络重试或应用层重试导致同一配置命令被重复执行。
| 场景 | 操作 |
|---|---|
| 设置一次新的 RS485 波特率 | 生成新 key |
| 请求发出后网络超时,未收到任何响应 | 复用原 key 重试同一请求 |
收到 429 RATE_LIMITED 后需要重试同一请求 | 复用原 key 重试同一请求 |
baudRate 或目标设备发生变化 | 生成新 key |
重复请求行为:
- 同一客户端、相同 key + 相同请求体:返回原始命令
id和当前状态,不会重复执行。 - 相同 key 但请求体不同:返回
409 IDEMPOTENCY_CONFLICT。 - 服务端至少保留约
48小时的幂等记录;超过有效期后相同 key 会被视为新请求。
成功响应
HTTP 状态码:
text
202 Accepted响应体(设备已确认):
json
{
"code": "COMMAND_ACCEPTED",
"message": "Command accepted.",
"requestId": "req_001",
"data": {
"id": "cmd_001",
"deviceId": "rek053537488",
"type": "RS485_BAUD_RATE_SET",
"status": "SUCCESS",
"result": {
"baudRate": 9600
},
"createdAt": "2026-06-11T00:00:00Z"
}
}响应体(等待窗口超时):
json
{
"code": "COMMAND_ACCEPTED",
"message": "Command accepted.",
"requestId": "req_001",
"data": {
"id": "cmd_001",
"deviceId": "rek053537488",
"type": "RS485_BAUD_RATE_SET",
"status": "TIMEOUT",
"createdAt": "2026-06-11T00:00:00Z"
}
}响应 data 结构
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | 命令唯一标识;需持久化,后续用于查询命令结果 |
deviceId | string | 是 | 设备唯一标识 |
type | string | 是 | 命令类型,固定为 RS485_BAUD_RATE_SET |
status | string | 是 | 命令状态,枚举:SENT、SUCCESS、FAILED、TIMEOUT |
result | object | 否 | 命令结果。超时或失败时可能不存在 |
result.baudRate | integer | 否 | 本次写入的 RS485 波特率,单位 bps |
createdAt | string | 是 | 命令创建时间,RFC3339 UTC |
查询命令结果
如果首次响应未返回最终结果,或调用方需要在后续流程中确认状态,可使用响应中的 data.id 调用 查询命令结果。
如需读取服务端已缓存的当前 RS485 波特率,可调用 查询设备配置。result.baudRate 表示本次配置命令确认写入的值。
错误响应
可能返回:
400 INVALID_REQUEST401 AUTH_REQUIRED401 AUTH_INVALID401 AUTH_EXPIRED403 AUTH_SCOPE_DENIED404 DEVICE_NOT_FOUND409 IDEMPOTENCY_CONFLICT422 COMMAND_REJECTED422 DEVICE_OFFLINE429 RATE_LIMITED503 GATEWAY_UNAVAILABLE500 INTERNAL_ERROR
