8个版本
0.7.5 | 2023年7月8日 |
---|---|
0.7.4 | 2023年2月19日 |
0.7.3 | 2021年10月17日 |
0.7.2 | 2021年4月17日 |
0.5.0 | 2017年3月19日 |
#1153 in 硬件支持
每月1,679次下载
在 7 个crate中使用(通过 soapysdr)
7KB
104 行
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许可证定义,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。
lib.rs
:
无运行时依赖
~0–2.5MB
~39K SLoC