尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

RuView 怎么用 sleep-monitor.js 跑整晚睡眠监测并回放已录数据?

RuView 怎么用 sleep-monitor.js 跑整晚睡眠监测并回放已录数据? RuView 怎么用 sleep-monitor.js 跑整晚睡眠监测并回放已录数据【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuViewRuView 的scripts/sleep-monitor.js是一个基于 CSI 的睡眠分期脚本ADR-077它消费 ESP32 节点上报的生命体征数据呼吸率 BR、心率 HR、运动能量按 5 分钟滑动窗口把每个窗口分类为 Awake / Light / REM / Deep 四个阶段输出 ASCII 睡眠图hypnogram和汇总统计总睡眠时长、睡眠效率、各阶段占比。它有两条使用路径实时模式监听 UDP 端口、整晚持续分类回放模式--replay读取已录好的.csi.jsonl文件离线分析不需要在线硬件。脚本是纯 Node.js 实现无外部依赖。需要说明该脚本是消费级信息工具不是医疗器械输出不能用于临床诊断脚本输出头部和 ADR-077 均带有此声明。准备条件Node.js环境。ADR-077 说明这组脚本是Pure JS, no native dependencies, runs on any platform with Node.js。实时模式的前提房间里有按 ADR-018 二进制协议通过 UDP 5006 端口上报 vitals 包magic0xC5110002融合包为0xC5110004的 ESP32-S3 节点。ADR-077 的 Context 一节描述的基础设施是 2 个 ESP32-S3 节点以约 1 Hz/节点 上报呼吸率、心率、运动能量和存在分数采集周期按 6–8 小时整晚设计。回放模式的前提本地已有一个.csi.jsonl录制文件。回放时脚本逐行解析 JSON只处理type为vitals的记录并从记录中读取以下字段见 sleep-monitor.js 的parseVitalsJsonl字段用途timestamp记录时间戳秒node_id节点编号用于按节点分缓冲breathing_bpm呼吸率缺失按 0 计heartrate_bpm心率缺失按 0 计motion_energy运动能量缺失按 0 计项目文档中的录制文件约定放在data/recordings/目录下sensing server 的 Recording 接口创建.csi.jsonl文件见 ADR-043。命令行参数以下参数及默认值来自 sleep-monitor.js 源码中的parseArgs定义strict: true未定义的选项会被拒绝参数短写默认值说明--port-p5006实时模式监听的 UDP 端口--replay-r无回放模式指定.csi.jsonl文件路径--json—false以 JSON 行输出便于程序化消费--interval-i5000分析间隔单位毫秒--window-w300滑动窗口长度单位秒默认 5 分钟带--replay时进入回放模式否则进入实时 UDP 监听模式。文档冲突提示docs/user-guide.md 的 Health Wellness 一节给出的实时命令是node scripts/sleep-monitor.js --port 5006 --bind 192.168.1.20但脚本源码的parseArgs并未定义--bind选项且strict: true下传入未定义选项会报错。请按源码支持的实际参数执行即不带--bind。实时模式整晚运行在项目根目录执行node scripts/sleep-monitor.js --port 5006绑定成功后脚本会打印Sleep Monitor listening on UDP :5006 (window 300s)。此后它会持续接收 vitals 包并按--interval默认 5000 ms周期性在终端刷新当前状态包括Current stage当前窗口分类出的阶段窗口内的 BR 均值/方差、HR 均值/CV、Motion 均值、样本数Window: N samplesASCII hypnogram 与实时汇总Duration / Sleep / Efficiency及四阶段百分比。数据积累前会显示Collecting data...每个节点缓冲至少需要 3 个样本才会产生统计。运行整晚后按 CtrlC 退出时脚本会打印一行会话汇总Session: 411.3 min | Sleep: 372.9 min | Efficiency: 90.7%上面的数值仅为格式示例实际输出取决于当晚数据。如果下游需要程序化采集加--json即可此时不再清屏刷新而是每产生一个窗口分析结果就输出一行 JSON字段为timestamp、stage、br_mean、br_var、hr_mean、hr_cv、motion_mean。回放模式分析已录数据回放不需要任何在线硬件node scripts/sleep-monitor.js --replay data/recordings/overnight-1775217646.csi.jsonl路径data/recordings/overnight-1775217646.csi.jsonl是 ADR-077 验证一节使用的示例录制文档描述为 113k 帧、约 40 分钟的 overnight 录制。仓库中不一定存在该文件请把路径替换为你自己录制生成的.csi.jsonl文件不存在时脚本会打印File not found: path并以退出码 1 结束。回放逐行读取 JSONL按数据内时间戳推进每当累计满一个--interval的数据时间就做一次窗口分类默认非 JSON输出逐窗口一行[03:14:07] Light | BR 14.2 (var 3.10) | HR 58.4 | Motion 0.85读完整个文件后打印SLEEP SESSION SUMMARYhypnogramWAwake LLight RREM DDeep字符条、Total recorded、Total sleep、Efficiency、Entries分析窗口数、各阶段占比与时长最后一行是Processed N vitals packets。加--json则每个窗口输出一行 JSONtimestamp、stage、br_mean、br_var、hr_mean、hr_cv、motion_mean文件末尾追加一行{type:summary, ...}汇总可直接交给其他程序处理。需要调整分析粒度时--window改变窗口长度默认 300 秒--interval改变分析触发间隔。注意 ADR-077 对算法的设计描述是5-minute windows, 1-minute stride与脚本源码默认--interval 50005 秒不完全一致具体以脚本源码的默认值为准两个参数都可以按数据量调整。结果验证回放结束后如何判断结果是合理的处理计数最后一行Processed N vitals packets告诉你文件里有多少条 vitals 记录被消费。如果N为 0说明该 JSONL 中没有type: vitals的记录回放只认这种记录只含其他类型帧的文件会得到空 hypnogram 和Processed 0 vitals packets文件类型或来源需要检查。hypnogram 形态ADR-077 给出的验证预期是overnight 数据应表现出从活动awake到静息状态的过渡、运动能量随时间下降、睡眠片段内 BR 趋于稳定。可以对照这些现象判断回放是否正常还原了数据的时间结构。汇总数值Total recorded应接近录制文件首末时间戳跨度Efficiency是 TST / 在床时间ADR-077 的定义各阶段百分比之和为 100%。阶段判定的实现依据ADR-077 给出的分期阈值表每个 5 分钟窗口计算 BR 均值与方差、HR 均值与 CV、运动能量均值后分类判级次序为 Awake REM Light Deep阶段BR (BPM)BR 方差HR 模式运动Deep (N3)6–12很低2.0慢而规律无Light (N1/N2)12–18中等2.0–8.0正常极少REM15–25高8.0不规律偏高仅眼球CSI 运动很低Awake18 或 6任意可变中等–较高具体阈值与判级代码实现在 sleep-monitor.js 的VitalsBuffer.classify中两者数值略有出入精确行为以源码为准。限制脚本头部与 ADR-077 均声明这是消费级信息工具非诊断用途无 EEG 的睡眠分期是近似结果consumer-grade accuracy。ADR-077 的 Consequences 一节列出的限制vitals 精度取决于 ESP32 CSI 质量RSSI、多径1 Hz 采样的 HRV 分析相比 ECG 较粗糙。回放是离线分析结果不会写回任何文件--json的输出需由调用方自行重定向保存。【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表