刷新设备 PTT 配置(pushPttConfig)

验证状态:已源码核验、未联调;适用基线:源码归纳 @ 2026-09-14

用途与场景

让中心按当前群组绑定关系为指定设备重新生成 PTT 配置并投递到设备(device/{deviceNo}/ptt/deliver/v1)。这是一个异步受理接口:HTTP 成功只代表刷新命令进入内部消息链;设备是否收到、是否应用,取决于设备 PTT 在线状态与设备端行为。

使用位置

页面/功能 角色或空间分支
进入对讲房间后对绑定设备集合做 softFail 刷新(deviceNos 来自群组详情 devices[].deviceNo 去重集合) 需要 talk-group-data-acquisition-device:read 或 administrator

端点

POST /main-service/main-api/basedata/talk-group/pushPttConfig — 让中心按当前群组绑定关系为指定设备重新生成 PTT 配置并投递到设备(device/{deviceNo}/ptt/deliver/v1)。

端点全量事实(参数、请求/响应字段、错误码、权限点)见清单层 basedata · talk-group 对讲组;业务语义(wire 惯例、限频、租户声明等)见基础数据业务 · talk-group 对讲组。MQTT 侧投递通道(device/{deviceNo}/ptt/deliver/v1,Web 直发与中心投递共用)见 device-ptt-deliver 正本MQTT 主题清单 · 中心不消费的接入面

动线与完成判据

层级 判据
传输/受理 HTTP status=200 && data=true
配置生成 服务端同步于消息消费线程生成;失败按固定 internal error 记录且不重试(at-most-once)
设备接收 不由本接口观测:下发走 device/{deviceNo}/ptt/deliver/v1,设备端接收与执行行为缺证(见 device-ptt-deliver 正本 的缺口说明)

错误与边界

  • deviceNos 全空白抛 ApiException业务拒绝;认证/权限适用认证失败/权限失败
  • 消费链无重试:单台设备投递失败只记 warn 计数(failureCount),不影响其他设备。
  • 离线设备被静默跳过;上线后不会被本命令自动补发,需要再次触发刷新(群组保存/更新/删除链会自动触发)。
  • defaultTalkGroupId 不在设备绑定列表中时按空串处理(不报错)。

调用关系与资源清理

  • 同链正本:投递 topic device/{deviceNo}/ptt/deliver/v1 的 Web 侧发布正本是 device-ptt-deliver(Web join/kick 命令与中心配置投递共用该设备 topic,形态不同,各自独立成页)。
  • 群组数据变化触发的自动刷新见 新建群组编辑群组删除群组 的异步链说明。

已知缺口

  1. 设备端(固件)对 ptt/deliver 配置报文的接收与应用缺证:设备固件源码不在本工作区。
  2. groups[].roomPin 明文下发是设计事实(GetPttFunction.toProtocolItem),但传输面(Broker ACL、TLS)未核验。
  3. 未执行真实 JMS/Broker/设备联调。