feat(设置页): 添加 Agent 过滤配置字段

- 在设置页添加 Agent ID 输入框,用于过滤流式播报消息
- 新增字符串资源 label_agent_filter 和 hint_agent_id
- 在 MQTT 管理器中处理 soul2user 主题消息,根据配置的 demp_id 进行过滤
- 更新 README 文档结构,将详细技术说明移至 technique.md 文件
This commit is contained in:
2026-03-16 10:58:19 +08:00
parent d8e875793d
commit 1e7a45f19c
7 changed files with 282 additions and 104 deletions

115
README.md
View File

@@ -1,114 +1,25 @@
# Temi 终端控制应用
本项目是基于 Temi SDK 的 Android 应用,提供 MQTT 指令控制、导航/巡逻/接待流程,以及设置页管理网络 IP、当前位置与特殊任务模式
基于 Temi SDK 的 Android 应用,通过 MQTT 指令控制机器人导航、接待、巡逻与语音播报
## 1. 运行环境
## 功能
- MQTT 指令控制导航与播报
- 接待与巡逻模式
- 设置页:网络 IP、当前位置、特殊任务模式
### 推荐工具Android Studio
应用依赖 Gradle 与 Android 运行环境,无法通过浏览器直接预览。请使用 Android Studio 导入项目并运行到 Temi 机器人或模拟器。
## 运行
- 推荐使用 Android Studio 连接 Temi 设备运行
- 模拟器仅用于 UI 预览
### 运行方式
- 方式 A连接 Temi 机器人(推荐)
- 确保 Temi 已开启开发者模式
- USB 连接或 ADB over Wi-Fi
- Android Studio 选择设备后 Run
- 方式 BAndroid 模拟器(仅 UI 预览)
- Temi 系统服务缺失Robot SDK 可能报错或不可用
---
## 2. 功能概览
- 主界面表情与状态反馈AnimatedEmojiView
- MQTT 控制机器人行为与 TTS 播报
- 接待模式:到达指定地点后检测到人出现确认按钮
- 巡逻模式:按指定或随机地点巡逻
- 特殊任务模式开关
- 设置页:网络 IP、当前位置、重启应用
---
## 3. 页面说明
### 主界面MainActivity
- 顶部设置按钮进入设置页
- 表情组件根据 TTS 和任务状态切换表情
- 接待模式触发时显示 “是的” 按钮,点击后前往目标地点
### 设置页SettingsActivity
- 网络 IP 配置:保存后作为 MQTT Broker 地址
- 当前位置下拉选择:来源于 Temi 已保存地点
- 特殊任务模式开关与指示灯
- 长按 3 秒重启应用
- 版本号显示(当前为硬编码字符串)
---
## 4. MQTT 指令协议
应用连接 `tcp://<IP>:1883`,订阅主题 `robot/cmd`,仅处理 JSON payload。
### 基础指令
- `recharge`:回充电桩
- `goto`:前往地点(字段 `location``target`
- `repose`:重新定位
- `stop`:停止移动并暂停 TTS保留队列与 stream buffer
- `continue`:继续播报(优先重播被中断语句)
- `terminate`:停止移动并清空所有 TTS 队列与 buffer
### 播报指令
- `speak`:立即播报(字段 `text``speech`,可选 `lang`
- `stream`:流式播报(字段 `text``content`,可选 `lang`
-`。!?!?\n` 分句进入队列
### 任务指令
- `patrol`:巡逻
- `flag=true` 随机抽取 3~6 个地点(排除 home base
- `flag=false` + `locations` 指定地点列表
- `reception`:接待
- `location` 接待地点(默认 “前台”)
- `text` 询问语(默认 “你是我要接待的贵宾吗?”)
- `destination` 目的地(默认 “会议室”)
### 示例
## MQTT
- Broker`tcp://<IP>:1883`
- 主题:`robot/cmd`
- 示例:
```json
{"action":"goto","location":"前台"}
```
```json
{"action":"speak","text":"欢迎光临","lang":"zh"}
```
```json
{"action":"patrol","flag":false,"locations":["前台","会议室","大厅"]}
```
---
## 5. 特殊任务模式
设置页开关 `special_task_mode` 控制以下行为:
- 跳过 Home Base 的开门/关门语音逻辑
- 跳过检测到人时的问候语
- 机器人到达地点时,不播报“已到达”提示(仅在当前无任务时生效)
---
## 6. 项目结构
- `MainActivity.kt`:主逻辑与事件监听
- `SettingsActivity.kt`:设置页逻辑
- `MqttManager.kt`MQTT 连接与指令解析
- `NavController.kt`:导航与巡逻封装
- `AnimatedEmojiView.kt`:表情动画绘制
- `LogManager.kt`Logcat 监听分发
- `HttpManager.kt`HTTP Workflow 请求封装(目前未在流程中启用)
- `activity_main.xml` / `activity_settings.xml`:主界面与设置页布局
---
## 7. 本地构建与安装
## 构建
```bash
.\gradlew.bat :app:installDebug
```