Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

ZenPulse

Galaxy Watch 7 实时压力监测原生表盘系统。

Version Platform Built with Download Downloads

免责声明:本项目仅供个人学习、研究与交流用途,不能用于任何商业用途。本项目所产生的数据及分析结果仅供参考,并非医疗器械,不能用于任何疾病的诊断、治疗或预防。


界面预览

原生表盘 (Watchface) 主仪表盘 (Dashboard) 控制面板 (Control Sheet) 洞察与趋势 (Trend)

核心设计理念

本项目主要由手表端应用(Wear)和原生表盘(Watchface)组成,秉承“隐私优先、智能省电、原生体验”的设计哲学。

Wear 模块 (:wear)

“无感监测,实时闭环”

Wear 模块负责直接与底层传感器(Samsung Health Sensor SDK)交互,是整个系统的数据引擎与核心体验区。

  • 智能连续采样 (Smart Continuous):在佩戴状态下,利用 Foreground Service 维持心跳间隔(IBI)采集,实时计算 RMSSD 及压力分数。
  • 极致省电策略:采用 Duty Cycling(强制休眠)、离腕停采、就寝停采等策略,在保障数据连续性的同时最大限度延长续航。
  • 纯粹的数据可视化:引入动态压力气泡和“Now Bar”胶囊状态栏,直观呈现压力水平。本模块不包含强制的深呼吸等干预会话,保持体验纯粹。
  • 本地与隐私优先:所有的基线(Baseline)计算与压力映射均在手表本地实时完成,不依赖云端。

Watchface 模块 (:watchface)

“无缝融合,原生展示”

Watchface 模块是一个基于 WFF (Watch Face Format XML v2) 重构的独立原生表盘。

  • 双原生样式融合:提供高度可定制的 UI 样式切换,包括 Style A(状态胶囊显示当前分值)和 Style B(5 点历史趋势),与系统表盘列表完美契合。
  • 原生组件通信 (Complications):深度打通 Wear 模块的数据链路,表盘内嵌的标准槽位与主卡片可以直接拉取并展示实时压力状态。
  • AOD 极低功耗:支持 Ambient Mode(暗屏模式),通过线框化渲染及像素漂移技术,实现极低功耗的常亮显示并有效防烧屏。

详细功能与界面说明

为了让用户对系统的运行有清晰的预期,以下对核心机制进行深度解析。

1. 仪表盘界面与交互元素

手表端 Core 界面 (Dashboard) 元素包含丰富的交互信息:

  • 动态压力气泡:位于屏幕正中,是一个拟人化的气泡。当你处于不同的压力区间时,气泡会展现出不同的微动效(如 Excellent 时的平缓呼吸放大、High 时的剧烈抖动)。如果它显示为虚线圆圈并转动,代表系统正处于 校准中 (Calibrating) 状态(历史数据不足 12 条,暂不输出正式分数)。
  • 采样彗星尾:环绕着气泡的弧形光效进度条,代表当前 60 秒采样窗口的收集进度。
  • 状态指示灯 (Status Light):左上角闪烁的微小圆点。
    • 绿色呼吸闪烁:表示传感器正在积极采样中。
    • 黄色/橙色闪烁:表示由于活动中 (In Motion) 或主动暂停等原因,采样暂缓。
  • 彩色压力游标 (Spectrum Slider):气泡下方的一条横向彩虹条(蓝->绿->黄->红),直观地展示你的当前压力分数 (1-100) 在整个谱系中的相对位置。
  • 控制面板 (Control Sheet):点击左上角的按钮,可展开底部控制面板,内含:
    • 常亮微光 (AOD) 开关:开启后,手表在息屏时进入线框渲染的极低功耗模式,同时启动像素漂移防止烧屏。
    • 暂停/恢复采样:允许你随时手动切断或恢复后台传感器的采集。
    • 开发者设置:提供数据注入与预览调试。

2. 压力算法说明 (Algorithm v2)

ZenPulse 采用科学且严谨的 v2 版本压力算法,整个计算过程完全在手表端离线进行:

  • 数据采集与过滤:通过底层传感器获取原始的 IBI(心跳间隔)数据,进行严格的运动门控和伪差过滤,剔除干扰信号,最后计算出 RMSSD(心率变异性核心指标)。
  • 30日基线校准:系统会收集你最近 30 天的有效静止样本 (REAL Valid Still Sample) 并计算中位数,作为你个人的生理基线 (Baseline)。算法采用留一法 (leave-one-out) 防止当前极值污染历史基线。
  • 压力分数与区间:将当前 RMSSD 与你的个人基线进行比值计算。根据比值,生理压力被划分为四个区间 (Zone):
    • Excellent (1-20分):极佳状态,身体处于放松或恢复中。
    • Normal (21-60分):正常状态,日常平稳。
    • Elevated (61-80分):轻度升高,身体处于一定负荷中。
    • High (81-100分):高压状态,建议注意休息。

    注:分数越高,代表生理负荷或身体压力越大。

3. 智能采样与省电策略 (Duty Cycling)

为了在全天候监测和手表续航之间取得完美平衡,应用内置了一套被称为 Duty Cycling 的智能采样策略:

  • 采样窗口:在日常佩戴中,传感器以约 60秒 为一个采样窗口获取有效数据。
  • 运动门控 (Motion Gate):当你处于行走或剧烈运动 (In Motion) 时,由于光电传感器噪声大,采样将被自动冻结,避免脏数据影响你的分数。
  • 3分钟强制休眠:在成功获取到一次有效压力分数后,系统将自动进入长达 3分钟 的强制休眠(此举节电超过 75%),随后再次苏醒采样。
  • 午休降频 (Nap Duty Cycle):在白天,如果识别到你处于午休状态,传感器的休眠时间将拉长至 15分钟
  • 情景停采模式(零功耗)
    • 离腕停采 (Off-wrist Paused):系统一旦侦测到手表被脱下,物理传感器触发后彻底关断,不再空转亮绿光。
    • 就寝停采 (Bedtime Paused):当手表进入系统的“就寝模式”或识别为夜间睡眠时间段时,全面停止压力采样。这不仅避免了夜间绿光闪烁惊扰睡眠,更能节省大量的夜间待机电量。

如何使用与部署

本项目目前为开发者个人项目,可通过 Gradle 编译并通过 ADB 部署至手表。

1. 设备与环境准备

  • 手表开发者模式:在手表上进入 设置 -> 关于手表 -> 软件信息 -> 连续点击 软件版本 7 次开启 Wear OS 开发者模式,并开启 无线调试 (Wireless Debugging)
  • 开启健康平台开发者模式 (DEV mode): 在手表上进入 设置 -> 应用程序 -> 健康平台 (Health Platform) -> 连续点击 版本号 10 次,直至界面提示出现 DEV mode(开发者模式已开启)。

2. 编译 APK

在项目根目录下通过 Gradle 构建手表 App 与原生表盘 APK:

# 编译 Wear 手表主程序 Release APK
./gradlew :wear:assembleRelease

# 编译 WFF 原生表盘 Release APK
./gradlew :watchface:assembleRelease

3. 通过 ADB 安装至手表

确保电脑与手表处于同一局域网下,使用 ADB 命令配对、连接并安装:

# 1. 首次配对(在手表“无线调试 -> 配对新设备”中查看 IP、配对端口及 6 位配对码)
adb pair <手表IP地址>:<配对端口> <配对码>

# 2. 连接手表(在手表“无线调试”主界面查看 IP 和连接端口)
adb connect <手表IP地址>:<连接端口>

# 3. 安装 Wear 手表端主程序
adb install -r wear/build/outputs/apk/release/wear-release.apk

# 4. 安装 WFF 原生表盘
adb install -r watchface/build/outputs/apk/release/watchface-release.apk

4. 权限配置要求

首次启动 Wear App 时,请在手表界面上确认授予以下核心权限:

  • 身体传感器 / 心率数据权限 (BODY_SENSORS):用于读取心率与原始 IBI (心跳间隔) 数据。
  • 通知权限 (POST_NOTIFICATIONS):用于高压异常告警通知及后台采样 Foreground Service 的持续状态显示。
  • 后台保活与前台服务权限:确保传感器采样在后台休眠策略下正常调度运行。

5. 应用表盘

安装完成后,在手表的表盘选择列表或手机端的 Galaxy Wearable App 表盘列表中,找到并应用 ZenPulse 原生表盘。


Author: zonkidd

About

Galaxy Watch 7 Real-time Stress Monitoring System & Native Watch Face Format (WFF v2) for Wear OS.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors