#硬件抽象层 #抽象层 #无线电 #SDR #API 绑定

bin+lib soapysdr

封装 SoapySDR 的库,SoapySDR 是许多软件定义无线电设备的硬件抽象层,包括 rtl-sdr、HackRF、USRP、LimeSDR、BladeRF 和 Airspy

7 个不稳定版本

0.4.0 2023 年 10 月 21 日
0.3.3 2023 年 7 月 8 日
0.3.2 2022 年 2 月 23 日
0.3.1 2021 年 10 月 17 日
0.1.0 2018 年 11 月 13 日

#88 in 硬件支持

Download history 90/week @ 2024-05-02 93/week @ 2024-05-09 76/week @ 2024-05-16 128/week @ 2024-05-23 136/week @ 2024-05-30 127/week @ 2024-06-06 160/week @ 2024-06-13 267/week @ 2024-06-20 133/week @ 2024-06-27 289/week @ 2024-07-04 285/week @ 2024-07-11 370/week @ 2024-07-18 351/week @ 2024-07-25 340/week @ 2024-08-01 404/week @ 2024-08-08 330/week @ 2024-08-15

1,466 每月下载量
用于 6 个 crates (5 个直接)

BSL-1.0 OR Apache-2.0

80KB
1.5K SLoC

SoapySDR 的 Rust 绑定

SoapySDR 为许多软件定义无线电设备提供了硬件抽象层。

API 文档 | 变更日志

依赖项

此库需要 Cargo 无法处理的依赖项

  • libsoapysdr 0.6, 0.7 或 0.8
  • libclang 5.0+ (用于 bindgen)
  • pkg-config

Ubuntu

(在 Ubuntu 22.04 上测试)

sudo apt install libsoapysdr-dev libclang-dev llvm-dev pkg-config

# Choose the appropriate drivers for your hardware:
sudo apt install soapysdr-module-rtlsdr soapysdr-module-hackrf soapysdr-module-uhd soapysdr-module-lms7

Nix

nix-shell

(见 shell.nix)

Windows

安装预构建的 PothosSDR 和 LLVM,然后

  • LIBCLANG_PATH 环境变量设置为 rust-bindgen 的 LLVM bin 目录
  • 将 PothosSDR bin 目录添加到系统 PATH

警告

许多 SoapySDR 驱动模块存在错误处理和线程安全错误。此库提供了安全的 Rust 包装,假设驱动程序满足 SoapySDR 核心API合约的(未充分记录)意图,但如果 SoapySDR 加载违反此合约的模块,并且您对它们进行非典型操作,您可能会遇到意外行为。有关详细信息,请参阅 此 SoapySDR 问题

工具

此 crate 附带了两个小型工具,用作示例代码。

soapy-sdr-info

显示设备详细信息,如 SoapySDRUtil

cargo run --release --features=binaries --bin soapy-sdr-info

soapy-sdr-stream

从设备记录数据。

例如,从 FM 波段捕获 15 秒钟的数据

cargo run --release --features=binaries --bin soapy-sdr-stream -- -d driver=rtlsdr -r out.cfile -f 96M -s 1M -n 15M

生成的文件包含 32 位小端复杂浮点样本,可以用 inspectrum 打开。

许可证

根据以下任一项许可

贡献

除非您明确说明,否则您根据Apache-2.0许可证定义提交给作品中的任何有意贡献,均应双重许可,如上所述,不附加任何额外条款或条件。

依赖项

~0.3–3.5MB
~56K SLoC