#sdr #ffi #hardware-abstraction-layer #bindings #radio #abstraction-layer #defined

sys soapysdr-sys

SoapySDR的C API绑定,SoapySDR是一个中立供应商的软件定义无线电硬件抽象层

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 硬件支持

Download history 140/week @ 2024-04-25 92/week @ 2024-05-02 111/week @ 2024-05-09 83/week @ 2024-05-16 134/week @ 2024-05-23 143/week @ 2024-05-30 129/week @ 2024-06-06 162/week @ 2024-06-13 275/week @ 2024-06-20 130/week @ 2024-06-27 253/week @ 2024-07-04 288/week @ 2024-07-11 408/week @ 2024-07-18 429/week @ 2024-07-25 380/week @ 2024-08-01 402/week @ 2024-08-08

每月1,679次下载
7 个crate中使用(通过 soapysdr

BSL-1.0/Apache-2.0

7KB
104

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许可证定义,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。


lib.rs:

此包提供了对SoapySDR C API的绑定。请参阅其头文件以获取API文档。

无运行时依赖

~0–2.5MB
~39K SLoC