6 releases (stable)
Uses old Rust 2015
2.2.0 | Apr 7, 2022 |
---|---|
2.1.0 | Nov 13, 2019 |
2.0.1 | Jan 17, 2018 |
2.0.0 | Jan 15, 2018 |
#457 in Hardware support
62 downloads per month
Used in rtltcp
11KB
162 lines
rtlsdr_mt – High-level, multithreading interface to RTL-SDR
This crate provides a high-level interface to the RTL-SDR that separates controlling the device and reading samples, for integration into multithreaded applications.
Example
This example reads incoming samples, printing the first I/Q pair, in the main thread while incrementing the receive frequency by 1kHz every second in a subthread.
let (mut ctl, mut reader) = rtlsdr_mt::open(0).unwrap();
ctl.enable_agc().unwrap();
ctl.set_ppm(-2).unwrap();
ctl.set_center_freq(774_781_250).unwrap();
std::thread::spawn(move || {
loop {
let next = ctl.center_freq() + 1000;
ctl.set_center_freq(next).unwrap();
std::thread::sleep(std::time::Duration::from_secs(1));
}
});
reader.read_async(4, 32768, |bytes| {
println!("i[0] = {}", bytes[0]);
println!("q[0] = {}", bytes[1]);
}).unwrap();
Usage
This crate can be used through cargo by adding it as a dependency in Cargo.toml
:
[dependencies]
rtlsdr_mt = "2.0.0"
and importing it in the crate root:
extern crate rtlsdr_mt;
Dependencies
~57KB