Skip to main content
Lager Rust crate 让嵌入式开发者以一等公民的方式访问 Lager Net。一整套硬件在环(HIL)测试可以和您的固件放在一起,用 cargo test 运行,完全不需要 Python。 这个 crate 是 Lager Box API 的纯 HTTP/JSON 客户端。它覆盖:
  • 电源、电池仿真器、电子负载和太阳能仿真器
  • GPIO、ADC、DAC、热电偶、功率计和能量分析仪
  • SPI、I2C、USB 集线器端口、机械臂、摄像头和路由器
  • 流式 UART
  • Box 级别的能力:Box 自带的 BLE 适配器、WiFi 接口,以及 BluFi ESP32 配网
调试探针 Net(烧录 / 擦除 / 复位 / 内存读取 / RTT)与 Box 的调试服务通信。
该包在 crates.io 上以 lager-net 名义发布,因为 lager 这个名字已被一个无关的 crate 占用。库目标的名称仍然是 lager,所以您的代码写的是 use lager::LagerBox;。完整的 API 参考在 docs.rs/lager-net

快速上手

把这个 crate 加到您固件工程的 dev-dependencies 中:
该 crate 需要 Rust 1.75 或更高版本,基于 2021 edition 构建。 写一个测试:
运行它:
LagerBox::connect("hostname-or-ip") 同样可用,也接受 host:port 或完整 URL。

Feature

两种客户端执行的是完全相同的请求构造器和响应解析器,因此这两条传输路径不会各自跑偏。

错误

所有调用都返回 lager::Result<T>,配套单一的 Error 枚举:

要求

  • 一台软件足够新、能提供 POST /net/command 的 Lager Box —— 请检查 lager.status()?.capabilities.net_command,或者运行 lager update
  • Rust 1.75 或更高版本。
示波器 / 逻辑分析仪的工作流尚未在 Box HTTP API 上开放,因此 Scope 以有文档记录的占位实现发布,它的方法返回 Error::NotSupportedByBox。Box API 支持之后这里就会跟上;端点草案记录在该 crate 的 MISSING_ENDPOINTS.md 中。

参考

入门

  • 客户端与 Box —— 构造 LagerBox、发现、Box 锁、安全限值
  • Net 类型 —— 全部句柄的索引
  • 错误 —— 每一个 Error 变体及其触发时机

固件与调试

  • 调试探针 —— 烧录、擦除、复位、读取内存
  • RTT —— 固件日志,以及驱动 RTT 控制台
  • USB DFU —— 不用调试探针进行烧录

电源与仿真

测量

I/O 与通信

实用工具

指南