Scope 是一个有文档记录的占位实现。除 name() 之外的每个方法都返回 Error::NotSupportedByBox。这个类型之所以存在,是为了让今天照着它写的代码能够编译通过,并且在 Box 长出背后的端点之后继续编译通过。
句柄
Scope 是少数几个既没有生命周期参数、也没有异步版本的句柄之一:目前还没有需要它去做的客户端工作。
方法
错误会原样带上原因:
原因
这个 crate 是 Box 在 9000 端口上那套 API 的纯 HTTP/JSON 客户端。它驱动的每种 Net 类型,都需要在那里有一条路由。 对示波器来说,Box 现在已经有了这条路由。POST :9000/net/command 为 PicoScope 和 Rigol 提供 scope 角色。它覆盖通道启用、垂直和水平刻度、探头衰减、耦合、边沿触发配置、采集控制和测量。剩下的工作在 crate 这一侧。Scope 句柄还没有使用这些操作,因此上面的方法仍然返回 Error::NotSupportedByBox。
两侧都还不支持逻辑分析仪的工作:/net/command 没有 logic 角色。
流式采集保持现状。它是经由 WebSocket 中继传输的二进制帧流,而不是请求/响应式的 JSON,因此不适合放在这些方法后面。待办清单在 MISSING_ENDPOINTS.md 中。
替代做法
示波器和逻辑相关的工作请用 Python API 或 CLI,其余一切用 Rust。它们驱动的是同一台 Box 和同一批 Net。lager scope,或者把那一部分用 Python 写。
说明
- 该占位实现返回的是
Error::NotSupportedByBox,这与Error::UnsupportedByBox是不同的变体。NotSupportedByBox表示该 crate 对此根本没有路由;UnsupportedByBox表示确实存在这条路由,只是这台 Box 太旧。请参阅 错误。 - 逻辑分析仪 Net 在 Rust 中完全没有句柄 —— 没有
lager.logic(...)。 - 这里的一切都与 Box 版本无关。即便 Box 运行的是最新软件,返回的仍然是这个占位错误。

