Files
lzwcai-terminal-temi/README.md
Sucan 7043a92e8c docs: 更新 README 以提供更清晰的功能说明和结构
- 将标题从“开发与预览指南”改为更准确的“终端控制应用”
- 详细说明功能概览、页面说明和 MQTT 指令协议
- 补充特殊任务模式的行为说明
- 优化项目结构描述,使其更易于理解
- 保持运行环境与构建步骤的指导性
2026-03-13 16:20:50 +08:00

116 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Temi 终端控制应用
本项目是基于 Temi SDK 的 Android 应用,提供 MQTT 指令控制、导航/巡逻/接待流程,以及设置页管理网络 IP、当前位置与特殊任务模式。
## 1. 运行环境
### 推荐工具Android Studio
应用依赖 Gradle 与 Android 运行环境,无法通过浏览器直接预览。请使用 Android Studio 导入项目并运行到 Temi 机器人或模拟器。
### 运行方式
- 方式 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` 目的地(默认 “会议室”)
### 示例
```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
```