RuView BFLD 实现路线图:从 802.11 波束赋形反馈(BFI)到隐私分级的 WiFi 感知安全层
【免费下载链接】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
BFLD(Beamforming Feedback Layer for Detection,波束赋形反馈检测层)是 RuView 生态中负责"检测射频数据何时具备身份识别能力"的安全层:它位于原始 802.11ac/ax 波束赋形反馈(BFI)与家庭自动化、MQTT、Matter、云端等所有下游消费者之间,为每一帧计算身份泄露风险并决定什么可以离开节点。本文以 docs/research/BFLD/06-implementation-plan.md 的实现计划为骨架,结合v2/crates/wifi-densepose-bfld/当前源码与测试落地状态,完整讲解新 crate 的模块布局、公共 API、跨 crate 复用映射、ESP32 固件改动方案、7 条验收标准对应的 Rust 测试,以及 P1–P6 六阶段约 10.5 人周的发布路线图。读完本文,你将掌握 BFLD 从"计划"到"可验证实现"的完整工程路径,并能直接在仓库中定位每一层的源码与测试证据。
1. BFLD 在整个管线中的位置与设计意图
BFLD 在数据流上位于两个既有 crate 之间:
wifi-densepose-signal(BFI 归一化、时间窗口) ↓ wifi-densepose-bfld(BFLD:身份泄露估算 + 隐私分级) ← 本文主题 ↓ wifi-densepose-sensing-server(MQTT / Home Assistant 集成)关键设计约束(来自 06-implementation-plan.md 第 1 节):
- 不依赖训练管线与神经网络推理:默认构建下不依赖
wifi-densepose-train与wifi-densepose-nn,这两条路径通过 feature flags 按需激活,保证 BFLD 可作为轻量安全层独立编译与部署; - 不产生身份,只防护身份泄露:BFLD 不做身份识别,而是持续测量每一帧的
identity_risk_score(身份泄露风险),并将privacy_class字节随帧输出,让下游消费者基于标签而非原始测量值决策; - 三个结构性不变量(I1/I2/I3):原始 BFI 永不离开节点(I1)、身份嵌入仅存于内存(I2)、跨站点身份关联在密码学上不可能(I3)。详见 v2/crates/wifi-densepose-bfld/README.md。
这三条不变量在 v2/crates/wifi-densepose-bfld/src/lib.rs 中有直接的类型系统落地:PrivacyClass::Raw.allows_network() == false使 I1 成为编译期可检查的性质;IdentityEmbedding不实现Serialize/Clone/Copy且Drop时清零存储,使 I2 成为内存卫生约束而非文档承诺;SignatureHasher基于站点级 BLAKE3 密钥哈希与每日纪元轮换实现 I3。
2. 新 crate 结构与模块布局
实现计划(原文档第 1.1 节)为v2/crates/wifi-densepose-bfld/规划的模块布局如下:
v2/crates/wifi-densepose-bfld/ Cargo.toml src/ lib.rs # Public API: BfldPipeline, BfldFrame, BfldEvent frame.rs # BfldFrame struct, serialization, CRC32, magic bytes extractor.rs # BFI packet capture interface, Phi/Psi parsing, # 802.11ac/ax CBFR format decoder features.rs # Feature computation: mean_angle_delta, # subcarrier_variance, temporal_entropy, # doppler_proxy, path_stability, # cross_antenna_correlation, burst_motion_score, # stationarity_score, identity_separability_score identity_risk.rs # identity_risk_score formula, EmbeddingRingBuf, # in-RAM-only lifecycle enforcement privacy_gate.rs # privacy_class assignment, field masking, # #[must_classify] lint check emitter.rs # BfldEvent construction, JSON serialization mqtt.rs # MQTT topic publishing, ACL, per-class topic routing tests/ frame_roundtrip.rs # BfldFrame serialization + CRC32 determinism privacy_gate.rs # Per-class field suppression assertions hash_rotation.rs # Cross-site isolation + daily rotation proofs identity_risk.rs # Risk score bounded [0,1], local-only embedding acceptance.rs # All 7 acceptance criteria as named tests benches/ pipeline_throughput.rs # Frame processing at 40 Hz仓库实际落地状态对照:截至当前仓库,该 crate 已从"计划"演进为实体代码(版本0.3.1),v2/crates/wifi-densepose-bfld/src/ 下包含frame.rs、identity_risk.rs、privacy_gate.rs、emitter.rs、signature_hasher.rs、embedding.rs、embedding_ring.rs、coherence_gate.rs、pipeline.rs、pipeline_handle.rs、mqtt_topics.rs、ha_discovery.rs、soul_match.rs、soul_channels.rs、privacy_mode.rs、veil.rs(veil特性门控)等 20 余个模块;extractor.rs(BFI 抓包/Phi-Psi 解析)与独立的features.rs尚未按原计划文件拆分——特征计算对应现存的identity_features.rs,CBFR 解析则属于 ADR-123 中 Pi 5/Nexmon 捕获适配器(docs/adr/ADR-123-bfld-capture-path-nexmon-and-esp32.md)的范围。测试目录下已存在frame_roundtrip.rs、identity_risk_score.rs、privacy_gate_demote.rs、signature_hasher.rs、presence_latency.rs、motion_publish_rate.rs、mqtt_topic_routing.rs等 50 余个测试文件,与计划中的测试矩阵一一呼应。
3. 公共 API 与数据模型
3.1 计划中的 API 草图
原文档第 1.2 节给出的入口 API 设计:
pub struct BfldPipeline { config: BfldConfig, extractor: BfiExtractor, feature_engine: FeatureEngine, identity_risk: IdentityRiskEngine, privacy_gate: PrivacyGate, emitter: BfldEmitter, } impl BfldPipeline { pub fn new(config: BfldConfig) -> Result<Self, BfldError>; pub fn process_frame(&mut self, raw: RawBfiCapture) -> Option<BfldEvent>; pub fn current_privacy_class(&self) -> PrivacyClass; pub fn enable_privacy_mode(&mut self); // forces class 3 } pub struct BfldEvent { pub timestamp_ns: u64, pub presence: bool, pub motion: f32, // 0.0..1.0 pub person_count: u8, pub identity_risk_score: Option<f32>, // None if privacy_class >= 2 pub rf_signature_hash: Option<[u8; 32]>, // None if privacy_class >= 2 pub zone_id: Option<ZoneId>, pub confidence: f32, pub privacy_class: PrivacyClass, } #[repr(u8)] pub enum PrivacyClass { Raw = 0, Derived = 1, Anonymous = 2, Restricted = 3, }3.2 源码中的落地 API
仓库中该 crate 的公共 API 已在此基础上演进(v2/crates/wifi-densepose-bfld/src/lib.rs):
BfldPipeline::new(BfldConfig)与pipeline.process(SensingInputs, Option<IdentityEmbedding>) -> Result<BfldEvent>为当前主要入口,其中SensingInputs承载timestamp_ns、presence、motion、person_count、sensing_confidence、sep、stab、consist、risk_conf等输入,identity_risk_score与rf_signature_hash均遵循"privacy_class >= 2时置None"的语义;PrivacyClass增加了能力查询方法:allows_network()(Raw 为 false,落实 I1)、allows_matter()(仅 Anonymous/Restricted 可通过 Matter 边界)、as_u8()/TryFrom<u8>(0..=3 序列化与反序列化,非法字节返回BfldError::InvalidPrivacyClass);BfldError枚举覆盖了InvalidMagic、UnsupportedVersion、Crc、PrivacyViolation(网络 sink 拒绝 Raw 帧,落实 I1)、TruncatedFrame、MalformedSection、InvalidDemote(privacy class 的降级是单调的,禁止向信息量更大的低数值类移动)等错误路径;- 还提供了
BfldPipelineHandle(worker 线程 + 发布循环)与publish_availability_online/publish_discovery(Home Assistant MQTT Discovery 引导)等生产级入口。
3.3 Feature Flags(源码确认)
Cargo.toml 中的特性矩阵:
| Feature | 默认 | 引入依赖 | 启用内容 |
|---|---|---|---|
std | ✅ | 无额外依赖 | BfldFrame、BfldPayload、BfldPipeline、BfldPipelineHandle、BfldEvent、BfldEmitter、PrivacyGate、MQTT topic 路由、HA discovery |
serde-json | ✅ | serde+serde_json | BfldEvent::to_json()、rf_signature_hash的"blake3:<hex>"自定义序列化、privacy_class字符串编码 |
mqtt | — | rumqttc(use-rustls-ring) | RumqttPublisher、connect_with_lwt、真实 broker 集成 |
soul-signature | — | — | Soul Signature 部署门控(ADR-118 §1.4、ADR-120 §2.7、ADR-121 §2.6),启用 privacy_class = 1 的派生模式 |
veil | — | wifi-veil | WiFi Veil 咨询集成(ADR-294),产出均为 SYNTHETIC / L0 合成数据 |
--no-default-features剥离后保留 no_std 兼容核心:BfldFrameHeader、PrivacyClass、Sink特性族、CoherenceGate、SignatureHasher、IdentityEmbedding、EmbeddingRing、风险评分函数与GateAction。测试命令为cargo test -p wifi-densepose-bfld --no-default-features(no_std 核心)、cargo test -p wifi-densepose-bfld(std + serde-json)、cargo test -p wifi-densepose-bfld --features mqtt(含 rumqttc 冒烟),设置BFLD_MQTT_BROKER=tcp://localhost:1883环境变量可解锁真实 broker 的mosquitto_integration测试套件。
4. 跨 crate 复用映射:不重复造轮子
4.1 RuvSense 模块(wifi-densepose-signal)
原文档第 2.1 节复用映射,对应源码目录 v2/crates/wifi-densepose-signal/src/ruvsense/:
| 模块 | BFLD 用途 | 说明 |
|---|---|---|
coherence_gate.rs | identity_risk.rs | 依据相干性评分接受/拒绝帧,门控进入风险计算的嵌入 |
multistatic.rs | features.rs | 跨视角一致性的注意力加权融合 |
cross_room.rs | privacy_gate.rs | 环境指纹——确认site_salt与当前房间几何对应 |
longitudinal.rs | identity_risk.rs | 时间稳定性的 Welford 统计 |
adversarial.rs | extractor.rs | 物理上不可能的信号检测——标记可能来自被攻陷 AP 的帧(A5 威胁) |
不在复用范围内的模块:pose_tracker.rs、intention.rs、gesture.rs、tomography.rs、field_model.rs——它们工作在身份风险层之上,与 BFLD 的职责边界清晰。
4.2 RuVector v2.0.4 Crates
| Crate | BFLD 用途 | 理由 |
|---|---|---|
ruvector-attention | identity_risk.rs | 子载波维度的空间注意力,用于嵌入计算 |
ruvector-mincut | features.rs | 人员分离评分,作为person_count特征的输入 |
ruvector-temporal-tensor | extractor.rs | BFI 角度序列的时间窗口化与压缩 |
未使用的:ruvector-attn-mincut、ruvector-solver——BFI 管线不需要频谱图与稀疏插值。
4.3 跨视角融合(wifi-densepose-ruvector)
对应源码目录 v2/crates/wifi-densepose-ruvector/src/viewpoint/:
| 模块 | BFLD 用途 |
|---|---|
coherence.rs | 跨视角相位相干性 → 风险评分中的cross_perspective_consistency分量 |
geometry.rs | Fisher 信息 / Cramer-Rao 界 → 置信度估计 |
attention.rs | GeometricBias 加权注意力 → 多 AP BFI 融合 |
fusion.rs | MultistaticArray聚合根——BFLD 订阅此处的领域事件 |
复用策略的核心思想:BFLD 不做重复的信号处理实现,而是把 RuvSense 的物理层信号质量把关、RuVector 的注意力/时序原语与 viewpoint 的跨视角几何作为自己的"零件库"。
5. ESP32 固件评估与主机侧 BFI 捕获路径
5.1 ESP32-S3 能力评估结论
原文档第 3.1 节的评估基于 firmware/esp32-csi-node/main/ 中的csi_collector.c:ESP32-S3 的 WiFi 驱动通过esp_wifi_csi_set_config()与wifi_csi_cb_t回调输出 Espressif HT20 CSI——这是供应商自定义格式,每子载波含幅度+相位,不是包含 Phi/Psi 角的 VHT/HE 压缩波束赋形帧(CBFR)。
关键结论:ESP32-S3 没有公开 API 生成或捕获 CBFR 帧(Espressif 802.11 实现内部虽会接收/处理 CBFR 用于自身波束赋形,但不会通过 CSI 回调暴露)。因此 BFLD 的 BFI 捕获必须走主机侧嗅探,而非固件修改。
5.2 主机侧捕获路径(推荐硬件)
推荐捕获硬件为 Raspberry Pi 5 + BCM43456 芯片 + Nexmon CSI patch——该设备在仓库中已存在为cognitum-v0(Pi 5,Tailscale IP 100.77.59.83,记录于 CLAUDE.local.md)。捕获流程四步:
- Nexmon 监视模式抓取目标信道全部 802.11 帧;
- 过滤提取 CBFR 帧(frame type = Action,subtype = VHT/HE CBFR);
- 由
vendor/rvcsi/适配器处理 Nexmon PCap 格式(该适配器已处理现有 CSI 提取器),在其旁新增 BFI 提取器; - 帧通过既有 UDP 流路径(
stream_sender.c/ sensing-server)转发至 BFLD 管线。
5.3 需要的固件改动(最小化)
firmware/esp32-csi-node/main/ 中唯一必需的固件改动在stream_sender协议层:给流头部增加一个包类型字节以区分 CSI 帧与 BFI 帧。BFI 帧来源于 Pi 侧主机而非 ESP32,ESP32 原有数据流保持不动:
// stream_sender.h — add packet type #define STREAM_PKT_TYPE_CSI 0x01 #define STREAM_PKT_TYPE_BFI 0x02 // new: BFI frames from host capture这体现了 BFLD 的整体工程取向:尽量零侵入地嵌入既有架构,固件改动被压缩到最小、只触及协议头标识,而全部安全逻辑集中在主机侧 crate 内。
6. 测试计划:7 条验收标准映射到 Rust 测试
原文档第 4 节给出了完整验收矩阵,规划为tests/acceptance.rs中的命名测试;当前仓库中这些测试已分散落地为独立测试文件(如tests/presence_latency.rs、tests/motion_publish_rate.rs、tests/pipeline_determinism.rs、tests/event_privacy_gating.rs、tests/signature_hasher.rs、tests/frame_roundtrip.rs):
| AC | 验收标准 | acceptance.rs中的测试 | 仓库对应测试文件 |
|---|---|---|---|
| AC1 | 商用 WiFi 5/6 捕获(80/160 MHz,最低 2×2 MIMO) | ac1_commodity_wifi_capture:断言BfiExtractor能解析 80 MHz VHT CBFR 样例 fixture | tests/frame_roundtrip.rs、tests/frame_header_size.rs等帧格式测试 |
| AC2 | 从首个非空 BFI 帧起,存在检测延迟 ≤ 1s | ac2_presence_latency:重放 10 帧窗口,断言首个presence=true的BfldEvent在 1,000 ms 墙钟时间内产生 | tests/presence_latency.rs |
| AC3 | 运动评分在motion/statetopic 上以 ≥ 1 Hz 发布 | ac3_motion_hz:mock MQTT sink,5 Hz 输入,断言每秒至少 1 个运动事件 | tests/motion_publish_rate.rs |
| AC4 | 序列化输出中永不出现原始 BFI 字节 | ac4_raw_bfi_absent:fuzz 1,000 个随机BfiCapture,断言任何privacy_class的序列化BfldFrame中都不含 bfi_matrix 字节 | tests/event_privacy_gating.rs、tests/event_gating_irreversibility.rs |
| AC5 | 隐私模式抑制全部身份派生字段 | ac5_privacy_mode:启用 privacy_mode,断言BfldEvent的identity_risk_score与rf_signature_hash均为None | tests/privacy_gate_demote.rs、tests/privacy_class_capability.rs |
| AC6 | 相同输入产生确定性帧哈希 | ac6_deterministic_hash:同一BfiCapture运行 100 次,断言输出哈希全部相同 | tests/pipeline_determinism.rs、tests/signature_hasher.rs |
| AC7 | CSI 可选融合:无csi_matrix时管线仍可运行 | ac7_csi_optional:以Nonecsi_matrix 运行BfldPipeline,断言不 panic 且产生存在事件 | tests/emitter_pipeline.rs、tests/pipeline_facade.rs |
此外tests/hash_rotation.rs必须包含两项密码学性质证明:
cross_site_isolation:两个不同site_salt的BfldPipeline接收相同输入 → 哈希必须不同;daily_rotation:相同盐,午夜前后 1 秒的帧 → 哈希必须不同。
这两条测试与 docs/research/BFLD/04-privacy-gating.md 第 2 节描述的哈希轮换算法直接对应:site_salt为首启时由 BLAKE3 密钥哈希从节点 MAC 派生(存 NVS、永不传输),day_epoch为 UTC 日纪元(floor(timestamp_ns / 86_400_000_000_000)),ephemeral为当前窗口 24 字节固定长度特征摘要,rf_signature_hash = BLAKE3(key = site_salt, input = day_epoch_bytes(8) ‖ ephemeral_features(24))。因为 BLAKE3 是键控 PRF,站点 A、B 在相同输入下产生相互独立的伪随机哈希,跨站点重识别在结构上不可能;而在同站同日内,同一人的相近ephemeral特征产生相近哈希,允许会话内聚类但无法恢复身份——"哈希不是身份,而是(站点、日)范围内的假名"。仓库中tests/pipeline_i3_isolation.rs、tests/gate_clock_skew.rs、tests/identity_embedding.rs、tests/embedding_ring.rs等测试进一步印证了 I1/I2/I3 的落地验证。
7. 分阶段发布路线图(P1–P6)
原文档第 5 节的六阶段规划,附仓库现状标注:
P1 — 帧格式 + 提取器桩(2 周)
交付物:frame.rs的BfldFrame结构、序列化、CRC32、magic、版本;extractor.rs的 802.11ac VHT + 802.11ax HE 的 CBFR 解析器;AC1、AC6 测试通过;Cargo.toml接入 workspace。投入:1 名工程师 2 周。仓库现状:frame.rs的 86 字节头格式(BFLD_MAGIC、BFLD_VERSION、BFLD_HEADER_SIZE)、CRC-32/ISO-HDLC 与frame_roundtrip.rs、frame_header_size.rs、crc32_polynomial.rs、reserved_flags.rs等测试已落地;CBFR 解析器属于 ADR-123 捕获适配器范畴。
P2 — 特征提取 + 身份风险(3 周)
交付物:features.rs的 9 个命名特征(mean_angle_delta、subcarrier_variance、temporal_entropy、doppler_proxy、path_stability、cross_antenna_correlation、burst_motion_score、stationarity_score、identity_separability_score);identity_risk.rs的风险公式、EmbeddingRingBuf、相干性门控集成;AC4、AC7 测试通过;接入ruvector-attention与ruvector-temporal-tensor。投入:1 名工程师 3 周。仓库现状:identity_risk.rs(含score函数与GateAction)、identity_features.rs(含RISK_FACTOR_BYTES)、embedding_ring.rs(RING_CAPACITY,默认 600 帧约 10 分钟 @1Hz 的内存环形缓冲,永不落盘)、coherence_gate.rs均已实现,测试覆盖tests/identity_risk_score.rs、tests/identity_features_encoder.rs、tests/embedding_ring.rs、tests/coherence_gate.rs。
P3 — 隐私门控 + MQTT(2 周)
交付物:privacy_gate.rs的 privacy_class 分配、字段掩码、#[must_classify]lint;mqtt.rs的分级 topic 路由、discovery 负载、ACL 文档;AC2、AC3、AC5 测试通过;hash_rotation.rs测试通过;确定性证明包(verify_bfld.py等价物)。投入:1 名工程师 2 周。仓库现状:privacy_gate.rs(含单调降级demote,见BfldError::InvalidDemote)、privacy_mode.rs(PrivacyAction、PrivacyAttestationProof、PrivacyModeRegistry)、mqtt_topics.rs、ha_discovery.rs、rumqttc_publisher.rs均已实现;测试覆盖tests/privacy_gate_demote.rs、tests/privacy_class_capability.rs、tests/mqtt_topic_routing.rs、tests/ha_discovery.rs、tests/ha_discovery_publish.rs、tests/mosquitto_integration.rs、tests/rumqttc_lwt.rs。默认发布姿态为 class 2(anonymous),隐私模式强制 class 3,与 04-privacy-gating.md 第 1 节的四级数据暴露表一致:class 2 抑制identity_risk_score与rf_signature_hash,class 3 进一步抑制motion与person_count,而bfi_matrix (raw)与identity_embedding在任何类下都"NEVER"出现。
P4 — Home Assistant 集成(1 周)
交付物:全部 6 个实体的 MQTT discovery 负载;3 个 HA blueprints;sensor.bfld_identity_risk标记为 diagnostic 且默认隐藏;更新wifi-densepose-sensing-server纳入 BFLD 事件路由。投入:0.5 名工程师 1 周。仓库现状:ha_discovery.rs的render_discovery_payloads/publish_discovery与availability.rs的在线/离线 retained 消息已实现;blueprints 位于v2/crates/cog-ha-matter/blueprints/bfld/(presence-lighting、motion-HVAC、identity-risk-anomaly 三个运维蓝图),测试覆盖tests/ha_blueprints.rs、tests/availability_topic.rs、tests/ha_discovery_publish.rs。
P5 — Matter 暴露(1 周)
交付物:cog-ha-mattercrate 更新以将BfldFrame过滤为 Matter attribute 报告;OccupancySensing cluster 由presence填充;在 Matter 边界强制身份字段拒绝清单。投入:0.5 名工程师 1 周。代码级支撑:PrivacyClass::allows_matter()只对 Anonymous/Restricted 返回true(lib.rs),Sink特性族中MatterSink与NetworkSink的类型区分(tests/sink_enforcement.rs)使"身份字段不得越过 Matter 边界"成为编译期约束。
P6 — cognitum 联邦(1 周)
交付物:mqtt.rs中联邦 topic 与本地 topic 的路由;cognitum-rvf-agent 订阅 BFLD 事件的文档;端到端测试:Pi 5(cognitum-v0)接收联邦事件且身份字段缺失。投入:0.5 名工程师 1 周。
总投入估算:6 个阶段合计约 10.5 人周,1 名工程师约 3 个日历月。该估算来自原实现计划,可作为排期基准;当前仓库已实现 P1–P3 的大部分交付物,P4–P6 的接口(discovery 负载、Matter 过滤、联邦路由)也已有源码雏形。
8. 可审计性与验证路径
BFLD 的安全主张强调"可验证"而非"可信承诺",仓库提供了三层审计手段:
- CI 确定性哈希检查:运行
python python/wifi_densepose/verify_bfld.py,必须打印VERDICT: PASS;若某个被篡改的二进制将原始 BFI 夹带进 payload,输出哈希将与提交的期望哈希不一致。 - 网络级审计(tcpdump):在节点或镜像端口抓取
port 1883 or port 8883的流量,搜索 BFI 帧 magic 字节BF 1D 00 01(即0xBF1D_0001大端序列)——正常情况下不应出现,因为privacy_class >= 2时角度矩阵已被剥离;随后用strings bfld_audit.pcap | grep -v "presence\|motion\|person_count" | wc -l核验 MQTT 负载中只有存在/运动/人数键。 - 节点自检命令:
wifi-densepose bfld audit --duration 60s,输出形如60 frames processed. 0 frames with raw_bfi in payload. 0 frames with identity_embedding in payload. privacy_class distribution: {2: 57, 3: 3}。
此外 docs/research/BFLD/04-privacy-gating.md 第 5 节规定了未来字段的"默认拒绝"流程:任何新增BfldFrame字段必须带有#[privacy_class(minimum = N)]类注解(或privacy_gate.rs中等价运行时检查),并由单元测试断言"类 < N 时含该字段、类 ≥ N 时省略",最后由 crate 内自定义#[must_classify]lint 保证——任何没有分类注解的公共字段产生编译警告并升级为 CI 错误。
9. 相关文档导航
BFLD 是 RuView 中少见的"研究文档包 + ADR + 实体代码 + 测试矩阵"四层齐备的模块,可按以下路径继续深入:
- 设计总包:docs/research/BFLD/README.md(执行摘要与 11 文件索引)及 docs/research/BFLD/ 下的 SOTA 综述(01)、架构意图(02)、威胁模型(03)、隐私门控机制(04)、自动化集成(05)、评测方案(07);
- 本文核心:docs/research/BFLD/06-implementation-plan.md;
- 实现代码:v2/crates/wifi-densepose-bfld/(README、src、tests,含 no_std 核心与 MQTT/HA 集成);
- 架构决策:ADR-118(总体与 I1/I2/I3)、ADR-119(帧格式与线协议)、ADR-120(隐私类与哈希轮换)、ADR-121(身份风险评分)、ADR-122(HA/Matter 暴露)、ADR-123(Nexmon/ESP32 捕获路径),见 docs/adr/;
- 固件侧:firmware/esp32-csi-node/main/(
csi_collector.c的 CSI 回调现状与stream_sender的包类型扩展点); - 复用源:v2/crates/wifi-densepose-signal/src/ruvsense/ 与 v2/crates/wifi-densepose-ruvector/src/viewpoint/。
总结:BFLD 的工程价值在于把"隐私"从策略口号变成可编译、可测试、可审计的结构性约束——通过PrivacyClass类型系统、Sink标记特性族、SignatureHasher键控轮换哈希与EmbeddingRing的内存生命周期共同实现。本文梳理的实现计划(模块布局、复用映射、固件改动、7 条 AC、P1–P6 路线)既是该 crate 从零到一的施工蓝图,也与当前仓库中 0.3.1 版本的实体代码形成了完整的"计划 ↔ 实现 ↔ 验证"闭环。
【免费下载链接】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),仅供参考