# 用户使用流程和交互设计 ## 一、系统架构 ### 1.1 多设备多用户架构 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ 多设备多用户系统架构 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 云端服务 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ 用户中心 │ │ 家庭组 │ │ 设备管理 │ │ 治疗记录 │ │ │ │ │ │ - 账号 │ │ - 成员 │ │ - 绑定 │ │ - 历史 │ │ │ │ │ │ - 档案 │ │ - 共享 │ │ - 权限 │ │ - 统计 │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ ▲ │ │ │ HTTPS │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 手机APP (单实例) │ │ │ │ │ │ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ │ │ 多设备管理 (可连接多台设备) │ │ │ │ │ │ │ │ │ │ │ │ 设备1 设备2 设备3 │ │ │ │ │ │ ┌────┐ ┌────┐ ┌────┐ │ │ │ │ │ │ │AJY │ │AJY │ │AJY │ │ │ │ │ │ │ │001 │ │002 │ │003 │ │ │ │ │ │ │ └────┘ └────┘ └────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─────────────┼─────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ │ │ ┌─────────────┐ │ │ │ │ │ │ │ 蓝牙 BLE 5.0│ │ │ │ │ │ │ └─────────────┘ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ │ │ 多用户管理 (本地 + 家庭组共享) │ │ │ │ │ │ │ │ │ │ │ │ 本地用户 家庭组成员 │ │ │ │ │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │ │ │ │ │ 张三 │ │ 李四 │ │ 王五 │ │ 赵六 │ │ │ │ │ │ │ │(本人)│ │(配偶)│ │(父亲)│ │(母亲)│ │ │ │ │ │ │ └──────┘ └──────┘ └──────┘ └──────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ │ │ ┌─────────────┐ │ │ │ │ │ │ │ 家庭组共享 │ │ │ │ │ │ │ │ (邀请链接) │ │ │ │ │ │ │ └─────────────┘ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ ``` ### 1.2 应用场景 | 场景 | 用户角色 | 设备数量 | 用户数量 | 说明 | |------|---------|---------|---------|------| | 家庭场景 | 家庭成员 | 1-3台 | 2-6人 | 一台APP管理全家设备和用户 | | 门店场景 | 理疗师 | 多台 | 多人 | 医师管理多台设备,服务多个客户 | | 养老院场景 | 护理人员 | 多台 | 多人 | 护理员管理多台设备,服务多位老人 | | 个人场景 | 个人 | 1台 | 1人 | 单用户单设备基础使用 | ### 1.3 通信方式 | 通信 | 方式 | 用途 | |------|------|------| | APP ↔ 设备 | 蓝牙 BLE 5.0 | 实时控制、数据传输(一对多) | | APP ↔ 云端 | 4G/WiFi | 用户档案同步、家庭组管理、治疗记录 | | 设备 ↔ 云端 | 无(通过APP中转) | - | | 家庭组成员 | 云端同步 | 用户档案共享、治疗记录查看 | ### 1.3 蓝牙通信协议 ```typescript // 蓝牙服务UUID const SERVICE_UUID = '0000FFF0-0000-1000-8000-00805F9B34FB'; // 蓝牙特征值UUID const CHARACTERISTICS = { // 写入:APP发送命令到设备 COMMAND: '0000FFF1-0000-1000-8000-00805F9B34FB', // 通知:设备上报数据到APP DATA: '0000FFF2-0000-1000-8000-00805F9B34FB', // 写入:APP发送用户档案 USER_PROFILE: '0000FFF3-0000-1000-8000-00805F9B34FB', // 通知:设备上报穴位对照表 ACUPOINT_TABLE: '0000FFF4-0000-1000-8000-00805F9B34FB', }; // 命令类型 enum CommandType { // 连接认证 AUTH_REQUEST = 0x01, AUTH_RESPONSE = 0x02, // 用户管理 GET_USER_LIST = 0x10, CREATE_USER = 0x11, SELECT_USER = 0x12, DELETE_USER = 0x13, // 穴位定位 START_DETECTION = 0x20, DAZHUI_POSITION = 0x21, ACUPOINT_TABLE_SYNC = 0x22, // 艾灸控制 START_TREATMENT = 0x30, PAUSE_TREATMENT = 0x31, RESUME_TREATMENT = 0x32, END_TREATMENT = 0x33, // 设备状态 DEVICE_STATUS = 0x40, ERROR_REPORT = 0x41, } ``` --- ## 二、多设备多用户管理 ### 2.1 设备管理 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 设备管理流程 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【添加设备】 │ │ │ │ 1. 打开APP → 设备管理 → 添加设备 │ │ │ │ │ ▼ │ │ 2. 蓝牙扫描附近设备 │ │ ├─ 显示可用设备列表 │ │ └─ 按信号强度排序 │ │ │ │ │ ▼ │ │ 3. 选择设备 → 配对验证 │ │ ├─ 方式1: NFC感应(设备靠近手机) │ │ ├─ 方式2: 配对码(设备屏幕显示6位数字) │ │ └─ 方式3: 扫描设备二维码 │ │ │ │ │ ▼ │ │ 4. 设置设备名称和位置 │ │ ├─ 设备名称: "客厅艾灸椅"、"主卧艾灸椅" │ │ └─ 设备位置: 选择或自定义 │ │ │ │ │ ▼ │ │ 5. 设备绑定成功 → 显示在设备列表 │ │ │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【设备列表】 │ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ 我的设备 (3台) [+ 添加] │ │ │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 🔵 客厅艾灸椅 (AJY001) [默认设备] │ │ │ │ │ │ 状态: 空闲 | 电量: 85% | 最后使用: 今天 │ │ │ │ │ │ [连接] [设置] [解绑] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ ⚪ 主卧艾灸椅 (AJY002) │ │ │ │ │ │ 状态: 使用中(张三) | 电量: 62% | 剩余: 15分钟 │ │ │ │ │ │ [查看] [设置] [解绑] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ ⚪ 父母家艾灸椅 (AJY003) │ │ │ │ │ │ 状态: 离线 | 最后使用: 3天前 │ │ │ │ │ │ [连接] [设置] [解绑] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 2.2 用户管理 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 用户管理流程 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【用户来源】 │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 用户数据来源 │ │ │ │ │ │ │ │ 1. 本地创建 │ │ │ │ └─ 在当前APP上直接创建用户档案 │ │ │ │ │ │ │ │ 2. 家庭组共享 │ │ │ │ ├─ 创建家庭组,邀请成员加入 │ │ │ │ ├─ 成员接受邀请后,可共享用户档案 │ │ │ │ └─ 档案数据云端同步,多设备可见 │ │ │ │ │ │ │ │ 3. 链接分享 │ │ │ │ ├─ 生成用户档案分享链接 │ │ │ │ ├─ 接收者通过链接导入用户档案 │ │ │ │ └─ 适用于临时使用或转诊场景 │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【用户列表】 │ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ 用户管理 (5人) [+ 创建] │ │ │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 张三 (本人) [家庭组管理员] │ │ │ │ │ │ 男, 35岁 | 身高:175cm | 指纹: ✓ │ │ │ │ │ │ [编辑] [分享] [穴位对照表] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 李四 (配偶) [家庭组成员] │ │ │ │ │ │ 女, 33岁 | 身高:162cm | 指纹: ✓ │ │ │ │ │ │ [编辑] [分享] [穴位对照表] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 张父 (父亲) [家庭组成员] │ │ │ │ │ │ 男, 62岁 | 身高:170cm | 指纹: ✓ │ │ │ │ │ │ [编辑] [分享] [穴位对照表] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 张母 (母亲) [家庭组成员] │ │ │ │ │ │ 女, 60岁 | 身高:158cm | 指纹: ✓ │ │ │ │ │ │ [编辑] [分享] [穴位对照表] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 小明 (儿子) [本地创建] │ │ │ │ │ │ 男, 10岁 | 身高:140cm | 指纹: ✗ │ │ │ │ │ │ [编辑] [分享] [穴位对照表] [加入家庭组] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 2.3 家庭组管理 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 家庭组管理 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【创建家庭组】 │ │ │ │ 1. 我的 → 家庭组 → 创建家庭组 │ │ │ │ │ ▼ │ │ 2. 输入家庭组名称(如"张家") │ │ │ │ │ ▼ │ │ 3. 设置家庭成员权限 │ │ ├─ 管理员: 可添加/删除成员,管理所有用户档案 │ │ ├─ 成员: 可查看和使用共享的用户档案 │ │ └─ 访客: 仅可查看部分信息 │ │ │ │ │ ▼ │ │ 4. 生成邀请链接/二维码 │ │ ├─ 链接有效期: 7天 / 30天 / 永久 │ │ ├─ 邀请人数限制: 可设置 │ │ └─ 分享方式: 微信、短信、二维码 │ │ │ │ │ ▼ │ │ 5. 被邀请者接受 → 加入家庭组 │ │ │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【家庭组共享内容】 │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 共享内容范围 │ │ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ │ │ │ │ ✓ 用户档案(基本信息、体型数据、穴位对照表) │ │ │ │ ✓ 治疗记录(历史记录、效果评估) │ │ │ │ ✓ 设备访问权限(家庭成员可使用绑定的设备) │ │ │ │ │ │ │ │ ✗ 账号密码 │ │ │ │ ✗ 支付信息 │ │ │ │ ✗ 私密治疗记录(可标记为私密) │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【家庭组界面】 │ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ 家庭组: 张家 [设置] │ │ │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ │ │ │ │ 成员 (4人) [+ 邀请成员] │ │ │ │ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 张三 (管理员) 在线 │ │ │ │ │ │ 管理权限: 全部 [设为管理员] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 李四 (成员) 在线 │ │ │ │ │ │ 共享用户: 1个 [设为管理员] [移除] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 张父 (成员) 离线 │ │ │ │ │ │ 共享用户: 1个 [设为管理员] [移除] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │ 张母 (成员) 离线 │ │ │ │ │ │ 共享用户: 1个 [设为管理员] [移除] │ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ 共享设备 (2台) │ │ │ │ ├─ 客厅艾灸椅 (AJY001) │ │ │ │ └─ 主卧艾灸椅 (AJY002) │ │ │ │ │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ [邀请成员] [生成邀请链接] [解散家庭组] │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 2.4 用户档案分享 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 用户档案分享 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【分享方式】 │ │ │ │ 方式1: 家庭组内共享 │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 用户档案 → 分享 → 选择家庭组成员 → 确认 │ │ │ │ │ │ │ │ 被分享者可: │ │ │ │ ✓ 查看用户档案 │ │ │ │ ✓ 使用该用户档案进行艾灸 │ │ │ │ ✓ 查看治疗记录 │ │ │ │ ✗ 编辑用户档案 │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ 方式2: 链接分享 │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 用户档案 → 分享 → 生成分享链接 │ │ │ │ │ │ │ │ 设置: │ │ │ │ ├─ 有效期: 1小时 / 24小时 / 7天 │ │ │ │ ├─ 使用次数: 单次 / 多次 │ │ │ │ ├─ 权限: 仅查看 / 可使用 │ │ │ │ └─ 密码保护: 可选 │ │ │ │ │ │ │ │ 分享渠道: │ │ │ │ ├─ 微信 │ │ │ │ ├─ 短信 │ │ │ │ ├─ 邮件 │ │ │ │ └─ 二维码 │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ 【接收分享】 │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 接收者点击链接: │ │ │ │ │ │ │ │ 1. 未登录 → 跳转登录/注册页面 │ │ │ │ 2. 已登录 → 显示档案预览 │ │ │ │ 3. 确认导入 → 档案添加到用户列表 │ │ │ │ │ │ │ │ 提示: 该用户档案来自张三的分享,有效期7天 │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` --- ## 三、使用流程 ### 3.1 首次使用流程 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 首次使用(创建用户档案) │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 1. 下载安装APP │ │ │ │ │ ▼ │ │ 2. 注册/登录(手机号 + 验证码 或 微信一键登录) │ │ │ │ │ ▼ │ │ 3. 开启蓝牙,搜索附近设备 │ │ │ │ │ ▼ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ 4. 连接设备 │ │ │ │ - APP显示设备列表 │ │ │ │ - 用户选择要连接的设备 │ │ │ │ - 设备验证连接(NFC或蓝牙配对码) │ │ │ └──────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ 5. 创建用户档案 │ │ ├─ 输入基本信息(姓名、性别、年龄) │ │ ├─ 输入体型数据(肩宽、身长) │ │ ├─ 输入指寸数据(选填:一寸、1.5寸、三寸) │ │ │ └─ 提供测量教程和示意图 │ │ └─ 录入指纹(在设备指纹区按压2次) │ │ │ │ │ ▼ │ │ 6. 系统生成穴位对照表 │ │ ├─ 根据体型数据计算18个穴位位置 │ │ ├─ 显示经络图预览 │ │ └─ 通过蓝牙同步到设备存储 │ │ │ │ │ ▼ │ │ 7. 完成,进入主界面 │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 3.2 日常使用流程 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 日常使用(艾灸治疗) │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 1. 用户就座 │ │ │ │ │ ▼ │ │ 2. 打开APP │ │ ├─ 自动搜索已绑定设备 │ │ ├─ 显示可用设备列表(多设备场景) │ │ └─ 选择要使用的设备 │ │ │ │ │ ▼ │ │ 3. 蓝牙连接 │ │ ├─ 自动连接最近使用的设备 │ │ └─ 或手动选择其他设备 │ │ │ │ │ ▼ │ │ 4. 选择/识别用户 │ │ ├─ 方式1: 设备指纹识别 │ │ │ └─ 在指纹区按手指 → 自动识别用户 │ │ ├─ 方式2: APP用户列表选择 │ │ │ └─ 显示本地 + 家庭组共享用户列表 │ │ └─ 方式3: 扫码导入临时用户 │ │ └─ 适用于医患场景 │ │ │ │ │ ▼ │ │ 5. 设备检测大椎穴 │ │ ├─ 传感器扫描肩高 │ │ ├─ 确定大椎穴位置 │ │ └─ 上报到APP显示 │ │ │ │ │ ▼ │ │ 6. 选择治疗方案 │ │ ├─ 一键艾灸(默认方案) │ │ ├─ 专业模式(选择功效) │ │ ├─ 自定义模式(选择穴位) │ │ └─ 圣手模式(专家推荐方案) │ │ │ │ │ ▼ │ │ 7. 开始艾灸 │ │ ├─ 设备计算实际穴位坐标 │ │ ├─ 灸头移动到目标穴位 │ │ └─ APP显示实时状态 │ │ │ │ │ ▼ │ │ 8. 艾灸进行中(实时监控) │ │ ├─ 温度显示 │ │ ├─ 剩余时间 │ │ ├─ 当前穴位 │ │ └─ 暂停/继续/结束控制 │ │ │ │ │ ▼ │ │ 9. 艾灸结束 │ │ ├─ 设备自动熄火、清理 │ │ ├─ 座椅复位 │ │ └─ 治疗记录上传云端 │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 3.3 医师/门店场景流程 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 医师/门店场景使用流程 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 【场景说明】 │ │ - 医师/理疗师管理多台设备 │ │ - 服务多个客户 │ │ - 需要快速切换用户和设备 │ │ │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 1. 医师登录APP(专业版账号) │ │ │ │ │ ▼ │ │ 2. 查看设备状态面板 │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ 设备状态总览 │ │ │ ├──────────────────────────────────────────────────────────────┤ │ │ │ 设备1 (1号椅) │ 空闲 │ 可用 │ │ │ │ 设备2 (2号椅) │ 使用中 │ 客户: 李先生 剩余: 15分钟 │ │ │ │ 设备3 (3号椅) │ 使用中 │ 客户: 王女士 剩余: 8分钟 │ │ │ │ 设备4 (4号椅) │ 故障 │ 温度传感器异常 │ │ │ └──────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ 3. 客户就座 → 选择空闲设备 │ │ │ │ │ ▼ │ │ 4. 选择或创建客户档案 │ │ ├─ 老客户: 从用户列表选择 │ │ │ └─ 支持搜索姓名/手机号 │ │ ├─ 新客户: 快速创建档案 │ │ │ └─ 仅需基本信息,后续补充 │ │ └─ 临时客户: 使用临时模式 │ │ └─ 不保存档案,仅本次使用 │ │ │ │ │ ▼ │ │ 5. 快速选择治疗方案 │ │ ├─ 预设方案(常用组合) │ │ │ └─ 如"肩颈调理"、"腰背护理"等 │ │ ├─ 自定义方案 │ │ └─ 圣手推荐 │ │ │ │ │ ▼ │ │ 6. 开始治疗 → 监控进度 │ │ │ │ │ ▼ │ │ 7. 治疗结束 → 生成报告 │ │ ├─ 治疗详情报告 │ │ ├─ 效果评估记录 │ │ └─ 下次治疗建议 │ │ │ │ │ ▼ │ │ 8. 客户档案更新 │ │ ├─ 保存本次治疗记录 │ │ ├─ 更新客户健康档案 │ │ └─ 可分享给客户(链接或家庭组邀请) │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` │ │ │ │ ▼ │ │ 8. 艾灸结束 │ │ ├─ 设备自动熄火、清理 │ │ ├─ 座椅复位 │ │ └─ 治疗记录上传云端 │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` --- ## 三、APP界面设计 ### 3.1 界面结构 ``` ┌─────────────────────────────────────────────────────────────┐ │ APP 界面层级 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 启动页 │ │ │ │ - Logo + 品牌展示 │ │ │ │ - 自动检测蓝牙连接状态 │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 登录/注册页 │ │ │ │ - 手机号 + 验证码登录 │ │ │ │ - 微信一键登录 │ │ │ │ - 本机一键登录 │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 主界面(Tab 导航) │ │ │ │ ├─ 我的设备 │ │ │ │ ├─ 治疗记录 │ │ │ │ ├─ 穴位知识 │ │ │ │ └─ 我的 │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### 3.2 主要页面设计 #### 3.2.1 我的设备页(主页) ``` ┌────────────────────────────────────────┐ │ ∧ 我的设备 ⚙️ 设置 │ ├────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────┐ │ │ │ 🔵 艾灸椅-AJY001 │ │ │ │ 状态: 已连接 | 电量: 85% │ │ │ │ ──────────────────────────── │ │ │ │ 当前用户: 张三 │ │ │ │ 指纹识别 ✓ | 大椎穴已定位 ✓ │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ 选择治疗方案 │ │ │ │ │ │ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ │ │ 🔥 │ │ 🎯 │ │ ⚙️ │ │ 👨 │ │ │ │ │ │一键│ │专业│ │自定│ │圣手│ │ │ │ │ │艾灸│ │模式│ │义模│ │模式│ │ │ │ │ └────┘ └────┘ └────┘ └────┘ │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ 我的穴位对照表 │ │ │ │ [查看经络图] [编辑档案] │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ 设备状态 │ │ │ │ 艾材余量: 8个 | 废料舱: 20% │ │ │ │ 滤芯寿命: 45% | 座椅温度: 35℃ │ │ │ └──────────────────────────────────┘ │ │ │ │ ══════════════════════════════════ │ │ │ 我的设备 │ 记录 │ 知识 │ 我的 │ │ └────────────────────────────────────────┘ ``` #### 3.2.2 用户档案创建页 ``` ┌────────────────────────────────────────┐ │ ∧ 创建用户档案 │ ├────────────────────────────────────────┤ │ │ │ 步骤 1/3: 基本信息 │ │ ───────────────────────────────── │ │ │ │ 姓名 * [________________] │ │ │ │ 性别 * ○ 男 ○ 女 │ │ │ │ 年龄 * [____] 岁 │ │ │ │ ┌──────────────────────────────────┐ │ │ │ [下一步] │ │ │ └──────────────────────────────────┘ │ │ │ ├────────────────────────────────────────┤ │ ∧ 创建用户档案 │ ├────────────────────────────────────────┤ │ │ │ 步骤 2/3: 体型数据 │ │ ───────────────────────────────── │ │ │ │ 肩宽 * [____] 厘米 │ │ 💡 测量方法 > │ │ │ │ 身长 * [____] 厘米 │ │ 💡 从头顶到坐骨结节距离 │ │ │ │ ┌──────────────────────────────────┐ │ │ │ 指寸数据(选填,提升精度) │ │ │ ├──────────────────────────────────┤ │ │ │ 一寸 [____] 厘米 🖐️ 测量教程 │ │ │ │ 1.5寸 [____] 厘米 ✌️ 测量教程 │ │ │ │ 三寸 [____] 厘米 🖖 测量教程 │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ [下一步] │ │ │ └──────────────────────────────────┘ │ │ │ ├────────────────────────────────────────┤ │ ∧ 创建用户档案 │ ├────────────────────────────────────────┤ │ │ │ 步骤 3/3: 录入指纹 │ │ ───────────────────────────────── │ │ │ │ ┌──────────────────────────────────┐ │ │ │ │ │ │ │ 请在设备指纹区按压 │ │ │ │ │ │ │ │ ┌─────┐ │ │ │ │ │ 👆 │ │ │ │ │ │ 指纹 │ │ │ │ │ └─────┘ │ │ │ │ │ │ │ │ 已录入: 0/2 次 │ │ │ │ │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ [跳过] [完成] │ │ │ └──────────────────────────────────┘ │ │ │ └────────────────────────────────────────┘ ``` #### 3.2.3 治疗进行页 ``` ┌────────────────────────────────────────┐ │ ∧ 艾灸治疗中 ✕ │ ├────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────┐ │ │ │ │ │ │ │ ┌─────────────────┐ │ │ │ │ │ │ │ │ │ │ │ [经络图] │ │ │ │ │ │ │ │ │ │ │ │ 大椎穴 ● ←当前 │ │ │ │ │ │ 身柱穴 ○ │ │ │ │ │ │ 至阳穴 ○ │ │ │ │ │ │ │ │ │ │ │ └─────────────────┘ │ │ │ │ │ │ │ └──────────────────────────────────┘ │ │ │ │ 当前穴位: 大椎穴 │ │ ───────────────────────────────── │ │ │ │ 温度: 38℃ ━━━━━━━━━○━━━━ 目标: 38℃│ │ │ │ 剩余时间: 05:30 │ │ ┌──────────────────────────────────┐ │ │ │ ████████████████░░░░░░░░░░░░░ │ │ │ │ 30分钟 / 总计 │ │ │ └──────────────────────────────────┘ │ │ │ │ 手法: 温和灸 │ │ │ │ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ ⏸️ │ │ ▶️ │ │ ⏹️ │ │ │ │ 暂停 │ │ 继续 │ │ 结束 │ │ │ └────────┘ └────────┘ └────────┘ │ │ │ │ ══════════════════════════════════ │ │ │ 我的设备 │ 记录 │ 知识 │ 我的 │ │ └────────────────────────────────────────┘ ``` #### 3.2.4 穴位对照表页 ``` ┌────────────────────────────────────────┐ │ ∧ 我的穴位对照表 │ ├────────────────────────────────────────┤ │ │ │ 用户: 张三 | 置信度: 95% │ │ ───────────────────────────────── │ │ │ │ ┌──────────────────────────────────┐ │ │ │ │ │ │ │ ┌─────────────────┐ │ │ │ │ │ │ │ │ │ │ │ [人体背部图] │ │ │ │ │ │ │ │ │ │ │ │ ○ 大椎穴(基准)│ │ │ │ │ │ ○ 身柱穴 │ │ │ │ │ │ ○ 至阳穴 │ │ │ │ │ │ ○ 命门穴 │ │ │ │ │ │ ○ 腰阳关穴 │ │ │ │ │ │ │ │ │ │ │ │ 点击穴位查看详情│ │ │ │ │ │ │ │ │ │ │ └─────────────────┘ │ │ │ │ │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ 穴位列表 (18个) │ │ │ ├──────────────────────────────────┤ │ │ │ 大椎穴 │ 0cm │ 驱寒、祛湿 │ │ │ │ 身柱穴 │ -6.3cm │ 止咳平喘 │ │ │ │ 至阳穴 │ -14.7cm│ 宽胸理气 │ │ │ │ ... │ ... │ ... │ │ │ └──────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ [重新测量指寸] [编辑体型数据] │ │ │ └──────────────────────────────────┘ │ │ │ └────────────────────────────────────────┘ ``` --- ## 四、蓝牙交互协议详解 ### 4.1 连接流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ 蓝牙连接流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ APP 设备 │ │ │ │ │ │ │──── 1. 扫描设备 ──────────────▶│ │ │ │ │ │ │ │◀─── 2. 广播设备信息 ──────────│ │ │ │ (名称、UUID、RSSI) │ │ │ │ │ │ │ │──── 3. 连接请求 ─────────────▶│ │ │ │ │ │ │ │◀─── 4. 连接确认 ─────────────│ │ │ │ │ │ │ │──── 5. 发现服务 ─────────────▶│ │ │ │ │ │ │ │◀─── 6. 返回服务列表 ─────────│ │ │ │ │ │ │ │──── 7. 订阅通知特征 ─────────▶│ │ │ │ │ │ │ │──── 8. 认证请求 ─────────────▶│ │ │ │ (用户ID + Token) │ │ │ │ │ │ │ │◀─── 9. 认证结果 ─────────────│ │ │ │ │ │ │ │ ✓ 连接成功 │ │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### 4.2 数据包格式 ```typescript // 蓝牙数据包格式 interface BLEPacket { header: number; // 包头 0xAA length: number; // 数据长度 command: CommandType;// 命令类型 payload: Uint8Array; // 数据负载 checksum: number; // 校验和 footer: number; // 包尾 0x55 } // 示例:开始治疗命令 const startTreatmentPacket: BLEPacket = { header: 0xAA, length: 10, command: CommandType.START_TREATMENT, payload: new Uint8Array([ // 用户ID (4字节) 0x00, 0x00, 0x00, 0x01, // 方案ID (4字节) 0x00, 0x00, 0x00, 0x01, // 大椎穴X坐标 (2字节, 单位mm) 0x00, 0x00 ]), checksum: 0xXX, footer: 0x55 }; ``` ### 4.3 关键交互时序 #### 4.3.1 用户选择与穴位定位 ``` ┌─────────────────────────────────────────────────────────────┐ │ 用户选择与穴位定位时序 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ APP 设备 │ │ │ │ │ │ │──── GET_USER_LIST ───────────▶│ │ │ │ │ │ │ │◀─── 用户列表 ────────────────│ │ │ │ [张三, 李四, 王五] │ │ │ │ │ │ │ │ [用户选择"张三"] │ │ │ │ │ │ │ │──── SELECT_USER(id=张三) ────▶│ │ │ │ │ │ │ │ │── 加载张三的穴位对照表 │ │ │ │ │ │ │──── START_DETECTION ─────────▶│ │ │ │ │ │ │ │ │── 传感器扫描肩高 │ │ │ │ │ │ │◀─── DAZHUI_POSITION ─────────│ │ │ │ {x: 0, y: 150mm} │ │ │ │ │ │ │ │ [APP显示经络图] │ │ │ │ [标记大椎穴位置] │ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────┘ ``` #### 4.3.2 开始治疗 ``` ┌─────────────────────────────────────────────────────────────┐ │ 开始治疗时序 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ APP 设备 │ │ │ │ │ │ │ [用户选择"一键艾灸"] │ │ │ │ │ │ │ │──── START_TREATMENT ─────────▶│ │ │ │ { │ │ │ │ userId: "张三", │ │ │ │ dazhuiPos: {x,y}, │ │ │ │ acupoints: [ │ │ │ │ "dazhui", │ │ │ │ "shenzhu", │ │ │ │ ... │ │ │ │ ] │ │ │ │ } │ │ │ │ │ │ │ │ │── 计算实际穴位坐标 │ │ │ │── 启动自动上料 │ │ │ │── 自动点火 │ │ │ │ │ │ │◀─── DEVICE_STATUS ───────────│ │ │ │ { │ │ │ │ status: "running", │ │ │ │ currentAcupoint: "dazhui",│ │ │ │ temperature: 38, │ │ │ │ remainingTime: 1800 │ │ │ │ } │ │ │ │ │ │ │ │ [APP更新显示] │ │ │ │ │ │ │ │◀─── DEVICE_STATUS (定时上报) │ (每5秒) │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 五、离线模式设计 ### 5.1 离线能力 由于蓝牙直连设备,APP支持离线使用: | 功能 | 离线可用 | 说明 | |------|---------|------| | 连接设备 | ✓ | 蓝牙直连,无需网络 | | 用户管理 | ✓ | 用户档案存储在本地 | | 穴位对照表 | ✓ | 本地计算和存储 | | 艾灸治疗 | ✓ | 全流程离线操作 | | 治疗记录同步 | ✗ | 需要网络上传云端 | | 圣手模式 | ✗ | 需要网络获取专家方案 | ### 5.2 数据同步策略 ```typescript // 数据同步优先级 enum SyncPriority { IMMEDIATE = 'immediate', // 立即同步:用户档案、穴位对照表 DELAYED = 'delayed', // 延迟同步:治疗记录 ON_DEMAND = 'on_demand', // 按需同步:统计数据 } // 同步策略 const SYNC_STRATEGY = { // 有网络时:立即上传 online: { userprofile: SyncPriority.IMMEDIATE, treatmentRecord: SyncPriority.IMMEDIATE, acupointTable: SyncPriority.IMMEDIATE, }, // 无网络时:本地存储,网络恢复后同步 offline: { userProfile: 'local_only', treatmentRecord: 'queue_for_sync', acupointTable: 'local_only', } }; ``` --- ## 六、安全设计 ### 6.1 蓝牙安全 ```typescript // 蓝牙配对流程 interface BLESecurity { // 1. 设备绑定(首次) bonding: { method: 'numeric_comparison'; // 数字比较配对 displayCode: string; // APP和设备显示相同6位数字 userConfirm: boolean; // 用户确认数字一致 }; // 2. 后续连接(自动) autoConnect: { method: 'bonded_device'; // 已绑定设备 encryption: 'LESC'; // LE安全连接 }; // 3. 数据加密 encryption: { algorithm: 'AES-CCM'; keySize: 128; }; } ``` ### 6.2 用户数据安全 - 用户档案加密存储在本地 - 云端数据传输使用 HTTPS - 敏感数据(指纹)不上传云端 --- ## 七、异常处理 ### 7.1 蓝牙断连处理 ```typescript // 蓝牙断连处理流程 async function handleBLEDisconnection() { // 1. 检测断连 // 2. 尝试重连(3次) // 3. 重连失败 → 提示用户 // 4. 设备自动熄火(安全机制) } ``` ### 7.2 设备故障上报 ```typescript interface DeviceError { code: string; message: string; action: 'retry' | 'contact_support' | 'restart_device'; } const ERROR_CODES = { E001: { message: '温度传感器故障', action: 'contact_support' }, E002: { message: '艾材不足', action: 'retry' }, E003: { message: '废料舱已满', action: 'retry' }, E004: { message: '点火失败', action: 'retry' }, E005: { message: '滤芯需更换', action: 'contact_support' }, }; ``` --- ## 八、参考文档 - Bluetooth SIG: Bluetooth Core Specification 5.0 - Apple: Core Bluetooth Programming Guide - Android: Bluetooth LE Guide - GB/T 12346-2006《腧穴名称与定位》