发布

  • v1338 1f13aa96c2

    feat(adr-125 iter 2): real C6 feature_state UDP → HAP characteristic

    frostbyte_neo 发布于 2026-05-25 20:20:11 +00:00

    scripts/c6-presence-watcher.py parses the 60-byte
    rv_feature_state_t struct (RV_FEATURE_STATE_MAGIC = 0xC5110006)
    emitted by firmware/esp32-csi-node/main/rv_feature_state.[ch] at
    1-10 Hz from the real ESP32-C6 on ruv.net, validates the IEEE CRC32
    over bytes [0..end-4], gates on RV_QFLAG_PRESENCE_VALID, applies
    hysteresis (entry 0.40 / release 0.20) plus a 5 s idle-release
    fallback, and toggles /tmp/ruview-motion — the same touch-file
    contract that the already-paired HAP bridge consumes.

    E2E validated against real hardware (no mocks, no simulation):
    C6 (192.168.1.179, ch 5, RSSI -38)
    └─ UDP/5005 → mac-mini (192.168.1.166)
    └─ c6-presence-watcher.py (pid 8276)
    └─ /tmp/ruview-motion
    └─ hap-test-sensor.py (pid 84602)
    └─ HAP-1.1 over mDNS
    └─ iPhone Home app: RuView Test Motion = True

    10 s sample: pkts=63 valid=51 crc_bad=0 motion -> True

    Iter 3 next: insert wifi-densepose-bfld PrivacyGate between the
    UDP parse and the threshold so only class-2/3 frames cross the HAP
    boundary (ADR-118 §2.2 invariant I1 holds at the HomeKit edge —
    ADR-125 §2.1.d).

    Refs ADR-125, ADR-118, ADR-081.

    Co-Authored-By: claude-flow ruv@ruv.net

    下载附件