Skip to main content
Scope is a documented stub. Every method except name() returns Error::NotSupportedByBox. The type exists so that code written against it compiles today and keeps compiling when the box grows the endpoints behind it.

Handle

Scope is one of the few handles with no lifetime and no async twin: there is no client work for it to do yet.

Methods

The error carries the reason verbatim:

Why

The crate is a pure HTTP/JSON client of the box’s API on port 9000. Every other net type has a route there. Scope and logic-analyzer work does not: lager scope and lager logic still run over the legacy exec path on port 5000 and a dedicated oscilloscope streaming daemon on ports 8082-8085, neither of which is an HTTP/JSON API this crate can speak. Closing the gap needs analog and logic roles in the box’s /net/command ROLE_ACTIONS, covering trigger configuration, a single capture returning the trace as JSON, and scalar measurements. Streaming capture can stay on the dedicated daemon. The work list lives in MISSING_ENDPOINTS.md.

What to do instead

Use the Python API or the CLI for scope and logic work, and Rust for everything else — they drive the same box and the same nets.
For a scalar an assertion actually needs, an ADC net often suffices and is available today. Where a real waveform is required, drive lager scope from the test’s shell step, or write that portion in Python.

Notes

  • The stub returns Error::NotSupportedByBox, which is a different variant from Error::UnsupportedByBox. The first means the crate has no route for this at all; the second means this particular box is too old for a route that does exist. See Errors.
  • A logic net has no Rust handle whatsoever — there is no lager.logic(...).
  • Nothing here depends on box version. A box running the newest software still returns the stub error.