#radio #sdr #signal-processing #defined #tokio #run-time #channel

radiorust

使用 Tokio 运行时的软件定义无线电

21 个版本 (5 个重大更改)

0.5.0 2022 年 11 月 30 日
0.4.0 2022 年 11 月 18 日
0.3.1 2022 年 11 月 11 日
0.2.0 2022 年 11 月 4 日
0.0.8 2022 年 9 月 26 日

#668 in 硬件支持

每月 40 次下载

MIT/Apache 许可协议

195KB
4K SLoC

radiorust

radiorust 是一个软件定义无线电 (SDR) 库,它基于 Tokio 运行时和消息传递通道构建。

许可证

radiorust 根据 Apache 许可协议第 2.0 版和 MIT 许可协议双许可。使用风险自担。在贡献之前,您必须同意在上述许可证下作为 radiorust 的一部分发布您的作品。


lib.rs:

软件定义无线电

入门

要开始,请查看 blocks 模块,其中包含一组可用的信号处理块,并查看下面的 "Hello World" 示例。

Hello World 示例

以下示例需要启用 cpal 功能。

use radiorust::prelude::*;

#[tokio::main]
async fn main() {
    let morse_keyer = blocks::morse::Keyer::with_message(
        4096,
        48000.0,
        blocks::morse::Speed::from_paris_wpm(16.0),
        "<CT> Hello World <AR>",
    ).unwrap();
    let audio_modulator = blocks::FreqShifter::with_shift(700.0);
    audio_modulator.feed_from(&morse_keyer);
    let playback = blocks::io::audio::cpal::AudioPlayer::new(48000.0, None).unwrap();
    playback.feed_from(&audio_modulator);
    playback.wait_for_event(|event| {
        event.as_any().is::<blocks::morse::events::EndOfMessages>()
    }).await;
}

依赖关系

~5–33MB
~501K SLoC