#streaming #oscilloscope #pico-scope #pico-technology

pico-driver

为Pico Technology示波器驱动程序提供的非官方Rust绑定和包装器

7个版本

0.3.1 2021年5月12日
0.3.0 2021年4月14日
0.2.1 2021年3月26日
0.1.4 2020年11月18日

#889硬件支持

Download history 2/week @ 2024-02-05 18/week @ 2024-02-26 17/week @ 2024-03-04 17/week @ 2024-03-11 17/week @ 2024-03-18 6/week @ 2024-03-25 37/week @ 2024-04-01 4/week @ 2024-04-08 6/week @ 2024-04-15

54 每月下载量
用于 5 crates

MIT 许可证

1MB
27K SLoC

pico-driver

Pico Technology示波器驱动程序的通用、安全包装器。

这是一个子crates,你可能不想直接使用。尝试使用顶级 pico-sdk crates,它公开了这里的一切。

Pico Technology的每个示波器都依赖于一个本地驱动程序进行通信,而这个驱动程序将根据设备产品系列而有所不同。这些驱动程序中的每一个都有一个接口,该接口可能只是几个函数参数的不同,或者API有显著差异。

PS2000DriverPS2000ADriverPS3000ADriverPS4000DriverPS4000ADriverPS5000ADriverPS6000DriverPS6000ADriver 通过实现 PicoDriver trait 对应的加载器进行包装,并通过实现一个安全、通用的API公开。这些可以通过一个 Resolution 来构造,它告诉包装器从哪里解析动态库。 LoadDriverExt trait 提供了一个通过 try_loadtry_load_with_resolutionDriver 枚举直接加载驱动程序的快捷方式。

示例

使用原始安全绑定打开和配置第一个可用的设备

use pico_common::{ChannelConfig, Driver, PicoChannel, PicoCoupling, PicoInfo, PicoRange};
use pico_driver::{LoadDriverExt, Resolution};

// Load the ps2000 driver library with the default resolution
let driver = Driver::PS2000.try_load()?;
// Load the ps4000a driver library from the applications root directory
let driver = Driver::PS4000A.try_load_with_resolution(&Resolution::AppRoot)?;

// Open the first device
let handle = driver.open_unit(None)?;
let variant = driver.get_unit_info(handle, PicoInfo::VARIANT_INFO)?;

let ch_config = ChannelConfig {
    coupling: PicoCoupling::DC,
    range: PicoRange::X1_PROBE_2V,
    offset: 0.0
};

driver.enable_channel(handle, PicoChannel::A, &ch_config)?;

许可证:MIT

依赖项

~2.2–3MB
~58K SLoC