新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/9 22:04:18来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

C语言复合字面量完全指南:C99语法、存储期与悬垂指针陷阱 2026/9/9 22:37:27

C语言复合字面量完全指南:C99语法、存储期与悬垂指针陷阱

说实话,我第一次在别人代码里见到 (struct point){ .x 10, .y 20 } 这种写法时,第一反应是“这玩意是什么?C语言什么时候能这样写了?”查了标准才发现,这是 C99 引入的复合字面量(compound literal&…

阅读更多 →
战地医疗AI系统测试实战:从环境模拟到失效安全设计的关键经验 2026/9/9 22:37:27

战地医疗AI系统测试实战:从环境模拟到失效安全设计的关键经验

炸现场里急救帐篷的灯光通常不够亮,而且总在晃。我盯着屏幕上那个分割模型的输出,血泊里一块弯折的金属碎片被识别成了“骨折断端”。这个错误如果发生在常规诊断场景,顶多是让医生多看一眼CT,问题不大;但如果发生在这…

阅读更多 →
代码覆盖率提升实战:从统计口径到门禁落地 2026/9/9 22:37:27

代码覆盖率提升实战:从统计口径到门禁落地

代码覆盖率这事,圈子里一直有个争论:有人觉得它是衡量测试质量的黄金指标,有人觉得它就是个自欺欺人的数字游戏。我做了这么多年开发和测试基建,两个极端都见过。有一种团队,覆盖率定在80%,大家天天为了补用…

阅读更多 →
No module named ‘utils‘报错别急着pip install,先查这三点 2026/9/9 22:37:27

No module named ‘utils‘报错别急着pip install,先查这三点

一看到 No module named utils,先别急着 pip install老实说,这大概是 Python 社区里被问得最多、又最容易被“误诊”的报错之一。报错文本只有一行:ModuleNotFoundError: No module named utils,但真正的问题往往不是“缺一个叫 u…

阅读更多 →
从最优控制到轨迹规划:倒立摆上翻与车辆路径规划实践 2026/9/9 22:37:27

从最优控制到轨迹规划:倒立摆上翻与车辆路径规划实践

最优控制、轨迹规划、倒立摆上翻控制、车辆运动学约束路径规划、离散点参数化——这些东西很多人是分开学的,但实际做项目时会发现它们全串在一条线上:规划层算出一条可执行路径,控制层负责把它跑出来,中间还夹着一堆离散点怎么变…

阅读更多 →
从冒泡到哈希:排序与查找算法实战全解析 2026/9/9 22:34:26

从冒泡到哈希:排序与查找算法实战全解析

排序和查找算法,是所有写代码的人绕不开的两座山。从大学期末考到社招技术面,从给Excel里的IP地址排个序到在上亿条日志里定位一条记录,背后翻来覆去就是这么几个经典套路。我从2013年开始正经写项目,到现在手写过冒泡排序、快速排…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞