Skip to content
  • Greg Zuro's avatar
    Add pool/session model, VXI-11 (AD007) controller, and 8840A status fixes · b9a4231e
    Greg Zuro authored
    Controllers are now pluggable by type with per-backend discovery:
    - vxi11 backend (Tektronix AD007) via pyvisa-py, single-link discipline to
      avoid wedging the gateway; NetFinder stays the Prologix discovery.
    - bench_discover aggregates all backends; discovery.scan_vxi11 (RPC/portmap).
    
    Instruments live in a persistent pool (pool.toml + learned pool-state.json),
    addressed by logical name and decoupled from the bridge:
    - resolve() = pinned -> learned -> (opt-in) scan; auto-relocate OFF by default
      so normal reads never sweep a fragile gateway.
    - named, savable sessions (sessions.json).
    - MCP server reworked to 15 flat tools (pool_*, session_*, instrument_*).
    
    Fluke 8840A driver:
    - decode G0/G5/G6/G7 status (G7 '10nn' error codes); _status_query rejects a
      free-running measurement that races a status read.
    - self_test: clear errors, fire Z0, wait silently ~30s, read G7 once
      (any command during Z0 is itself error 60). Verified against the front panel.
    
    This unit has no AC option (F2/F5/F6 are no-ops).
    
    Entire-Checkpoint: eab5a5a181e9
    b9a4231e