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 硬件支持
1,466 每月下载量
用于 6 个 crates (5 个直接)
80KB
1.5K SLoC
SoapySDR 的 Rust 绑定
SoapySDR 为许多软件定义无线电设备提供了硬件抽象层。
依赖项
此库需要 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 License,版本 2.0,(LICENSE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- Boost 软件许可 1.0,(与 SoapySDR 本身相同,LICENSE-BSL 或 http://opensource.org/licenses/BSL-1.0)
贡献
除非您明确说明,否则您根据Apache-2.0许可证定义提交给作品中的任何有意贡献,均应双重许可,如上所述,不附加任何额外条款或条件。
依赖项
~0.3–3.5MB
~56K SLoC